本文主要内容为:利用JAVA图片制作验证码。
设计思路:
1、拷贝AuthImageServlet.class图片验证码
2、配置web.xml
3、JSP中,调用封装好的AuthImageServlet,实现加载验证码的功能,
4、取出寄存在Session中的验证码,在Action中判断验证码的正确性
相比较上1篇博客《工作笔记5.JAVA文本框验证码》而言,图片验证码增加了安全性。
在Action中,通过取出Session中的验证码与输入的验证码是不是匹配进行判断。
步骤:
1、拷贝AuthImageServlet.class图片验证码
下载地址: http://pan.baidu.com/s/1bnF7dcr
2、配置web.xml
<servlet>
<servlet-name>AuthImageServlet</servlet-name>
<servlet-class>cn.bjjczb.jyzgcx.util.AuthImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AuthImageServlet</servlet-name>
<url-pattern>/servlet/AuthImageServlet</url-pattern>
</servlet-mapping>
3、JSP中,调用封装好的AuthImageServlet,实现加载验证码的功能
<script type="text/javascript">
function changeCode() {
var imgNode = document.getElementById("vimg");
//重新加载验证码,到达刷新的目的
imgNode.src = "${pageContext.request.contextPath}/servlet/AuthImageServlet?t=" + Math.random(); // 避免阅读器缓存的问题
}
</script>
验证码:
<input type="text" id="creditCodes" name="creditCodes" class="dz" style="width: 110px;"/>
<img id="vimg" src="${pageContext.request.contextPath}/servlet/AuthImageServlet" class="code" style="vertical-align: middle;" width="83" height="21" />
<a href="#" onclick="changeCode();">刷新</a>
4、取出寄存在Session中的验证码,在Action中判断验证码的正确性
/** 登录 */
public String login() throws Exception {
// 获得寄存在Session中的验证码
String creditCode = (String) session.getAttribute("rand");
//比较深输入的"验证码creditCodes"与creditCode是不是匹配(疏忽大小写)
if (creditCodes.equalsIgnoreCase(creditCode)) {
//验证码输入正确
} else {
//验证码输入毛病
}
}
//用于获得页面中用户输入的验证码
private String creditCodes;
public String getCreditCodes() {
return creditCodes;
}
public void setCreditCodes(String creditCodes) {
this.creditCodes = creditCodes;
}