验证码既可以在JSP实现也可以在Servlet里实现,原理是一样的
遇到的问题就是刷新验证码时没反应,问题解决如下:
function refresh(){
var date = new Date();
document.getElementById("valid").src="validate.jsp?d="+date.getTime();//调用刷新验证码,也可以传个随机参数,用Random,主要是为了清空缓存,使验证码更新;
}
<div style="margin-top: 15px;display: inline;">
验证码:
<input type="text" name="authcode" value="" />
<img alt="验证码" src="validate.jsp" id="valid" name="valid">
</div>
<span style="cursor: pointer;color:BLUE;background-color: black;" οnclick="refresh();">[看不清楚,换一张]</span>
<div style="margin-left: 25px; margin-top: 15px;">
<input type="button" id="lb" style="width:50px" οnclick="check();" value="确定"/>
其中validate.jsp 是生成验证码的页面,我试过在验证码生成页面validate.jsp设置
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
或
response.setHeader("cache-control","no-cache");
response.setHeader("pragma","no-cache");
response.setHeader("expires","0");
然而并没有卵用,照理说response.setHeader("cache-control","no-cache")。。。。;;之后,问题应该与传递个随机参数(系统时间之类)一样可以解决,但是他就是不行,也许是不同浏览器缓存的不同(问题是我试过了三个浏览器还是不行。一个是火狐,一个是IE、360),也许是有一两次可以吧,这点我也不是很懂,知道的大哥大姐小弟小妹还请多多指教下。。。。