//禁用缓存,每次访问此页面,都重新生成
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
//生成验证码的实例对象
ImageEnsure ie = new ImageEnsure();
//调用里面的方法,返回的是生成的验证码中的字符串
String str = ie.getEnsure(0,0,response.getOutputStream());
//获得session,并把字符串保存在session中,为后面的对比做基础
HttpSession session = request.getSession();
session.setAttribute("strEnsure", str);然后把servlet内嵌到具体的网页中,具体嵌入就是用DreamWeaver在需要插入验证码的地方插入图像,地址就指向此servlet即可。
输入验证码并提交后,在新的页面中可以按如下方法判断:
<body>
<%
//session的默认存在时间为20分钟,如果20分钟不输入验证码,session将会消失,因此要做下判断
if(session.getAttribute("strEnsure")==null)
...{
%>
<jsp:forward page="ImageErr.jsp"/>
<%
}else...{
//获取在session中保存的生成验证码的数字
String ensure = (String)session.getAttribute("strEnsure");
//获取在页面的表单中输入的验证码
String code = request.getParameter("txtimage");
//判断输入的验证码,跟保存的生成的验证码是否一样
if(ensure.equals(code) && code != null)
...{
%>
<jsp:forward page="searchword?method=add"/>
<%
}else...{
%>
<jsp:forward page="ImageErr.jsp"/>
<%
}
}
%>
</body>