迷彩风情的gravatar头像
迷彩风情2014-03-03 17:12:19

jsp中生成验证码,不用session也可以(主要是:思想)

jsp中生成的验证码和存在session里面的验证码不一致的处理

今天在调试项目的时候发现,在提交表单的时候的验证码有问题,问题是这样的:就是通过debug模式查看得知:jsp页面生成的验证码和表单输入的页面输入的一样,但是到后台执行的时候,你会发现他们是不一样的,现在上图看看:

 

1.这是表单提交的时候:

jsp中生成验证码,不用session也可以(主要是:思想)

 

2.这是后台debug调试得到的Session里面生成的验证码:

jsp中生成验证码,不用session也可以(主要是:思想)

3.这是后台得到手动输入的验证码:

jsp中生成验证码,不用session也可以(主要是:思想)

这样的问题还是头一次出现,以前没遇到过,经过google,baidu,最后得知是这样的:因为加载jsp页面比加载session快一些

 

那怎么办才能解决这个办法呢,

又经过多次搜索,思考,实践,终于想出了个好办法

1.在jsp页面用js生成验证码并保存在变量中,验证码作为参数传到java(继承了HttpServlet)类

 

2.根据jsp页面中传过来的验证码画出一个有干扰线或干扰点的图片

 

3.在WEB-INF/web.xml中配置 servlet

 

4.在jsp页面调用配置好的servlet,一般是通过<img src="servlet名" id="code"/>调用

 

5.提交数据之前验证

<form onsubmit="return validate();"……/>

 

局部刷新验证码:<a href="#" onclick="javascript:show();return false;">看不清,换一张!</a>-----return false;很重要啊

下面直接附上我的例子:

截图如下:

jsp中生成验证码,不用session也可以(主要是:思想)

最后:代码是在MyEclipse10.0里面建立的,下载下来可以直接运行:


打赏

文件名:CheckCode.zip,文件大小:11.253K下载
  • /
      • /CheckCode
        • /CheckCode/.classpath
          • /CheckCode/.myeclipse
          • /CheckCode/.mymetadata
          • /CheckCode/.project
            • /CheckCode/.settings
              • /CheckCode/.settings/.jsdtscope
              • /CheckCode/.settings/org.eclipse.jdt.core.prefs
              • /CheckCode/.settings/org.eclipse.wst.common.component
              • /CheckCode/.settings/org.eclipse.wst.common.project.facet.core.xml
    最代码最近下载分享源代码列表最近下载
    阿三在中国 LV72019年8月13日
    月亮星星星星星星
    dsddfafsdfasdfs LV12018年12月25日
    星星
    yuanduo LV12018年9月9日
    星星
    唐唐丶 LV302018年8月11日
    太阳月亮月亮月亮星星星星
    taoyi123 LV162017年8月4日
    太阳
    感动常在 LV122017年7月8日
    月亮月亮月亮
    lalalaslun LV12017年3月5日
    星星
    否极泰来 LV62016年12月1日
    月亮星星星星
    好我累个去哦 LV132016年11月4日
    月亮月亮月亮星星
    wneely LV12016年7月29日
    星星
    最代码最近浏览分享源代码列表最近浏览
    ytfghzxc LV35月27日
    星星星星星星
    hedeyi5月22日
    暂无贡献等级
    whh1237 LV13月17日
    星星
    dongzhan LV112020年12月22日
    月亮月亮星星星星星星
    残留的回忆 LV32020年12月7日
    星星星星星星
    Qwertyvrs LV102020年12月7日
    月亮月亮星星星星
    kelvin007008 LV72020年11月19日
    月亮星星星星星星
    lin0072020年10月30日
    暂无贡献等级
    忘久久 LV32020年10月23日
    星星星星星星
    沫戏回首 LV102020年10月15日
    月亮月亮星星星星
    顶部客服微信二维码底部
    >扫描二维码关注最代码为好友扫描二维码关注最代码为好友