浏览 8050 次
锁定老帖子 主题:图形验证码
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-19
最后修改:2009-02-19
参考:《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:
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-09-07
也可以直接把验证码的生成代码放到JSP页面里,这样就不用写SERVERLET的配置了..呵呵.
|
|
返回顶楼 | |
发表时间:2009-09-09
晕死,怎么不把代码贴出来,干嘛要用图片贴出来?
|
|
返回顶楼 | |
发表时间:2009-09-09
LZ好阴险啊 ^_^ 赞一个
|
|
返回顶楼 | |