论坛首页 Java企业应用论坛

图形验证码

浏览 8050 次
锁定老帖子 主题:图形验证码
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-19   最后修改:2009-02-19
OO

参考:《struts2权威指南》



 

当用户提交请求时,Action从Session中取出图形验证码字符串,并与用户输入的图形验证码字符串进行比较。

除此之外,在上面用户登陆的Action中可以看到如下所示的代码:

 

//清空用户Session的随机验证码字符串

session.put("rand",null);

 

表示一旦系统取出了Session中的rand属性,立即将Session中的rand属性清空,强制系统用户Session的随机验证码字符串立即失效,从而提供更好的安全性

 

为了让用户看不清验证码时,可以再次生成一个新的验证码字符串,我们在验证码的旁边放一个超链接:

看不清?<a href="#" onclick="refresh()">单击此处刷新</a>

 

<script>

    function refresh(){

        //重新获取验证码图片的src属性

        document.getElementById("authImg").src="/checkCodeImg?now="+new Date();

    }

</script>

 

上面的JS函数非常简单。但发送请求时还发送了一个now请求参数,理论上,发送请求参数没有任何意义!实际上,这个请求参数非常有意义,因为大部分浏览器都会缓存服务器相应,如果浏览器认为浏览者的请求没有改变,它“自作聪明”地直接从缓存中取出服务器响应来欺骗浏览者,为了避免浏览器直接从缓存取出该验证码图片,我们每次发送请求时都发送一个now请求参数,改参数的值为当前时间------每次时间不同,浏览器也就不会从缓存中读取该图片了。

 

最后web.xml:



 

  • 大小: 96.1 KB
  • 大小: 96.6 KB
  • 大小: 75 KB
  • 大小: 26.6 KB
   发表时间:2009-09-07  
也可以直接把验证码的生成代码放到JSP页面里,这样就不用写SERVERLET的配置了..呵呵.
0 请登录后投票
   发表时间:2009-09-09  
晕死,怎么不把代码贴出来,干嘛要用图片贴出来?
0 请登录后投票
   发表时间:2009-09-09  
LZ好阴险啊  ^_^  赞一个
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics