以上两篇文章的内容介绍了有关JSP中产生数字验证码跟中文验证码的源代码并做了分析,本文中介绍如何对以上产生的数字跟中文验证码进行使用,以及如何解决中文验证码的乱码无法正确验证的问题。
对验证码的使用分为两个部分,分别为验证码的调用和验证过程,以下分别做说明介绍。
三、在JSP中调用验证码
使用验证码直接在图片处调用产生验证码的JSP文件即可,同时在刷新验证码按钮处的js代码中使用JSP验证码文件,页面源码如下。
<form id="dForm" method=post action="val.jsp">
<ul class="sFrm">
<li><b></b><img id="code" border=0 src="Num.jsp"/><input type="button" value="看不清,换一张" onClick="document.getElementById('code').src='ColorChinese.jsp'"><div class="clear0"></div></li>
<li><b>验证码</b><input type="text" name="input" maxlength=8 value="" styleClass="sIpt itemFm"><div class="clear0"></div></li>
<li class="bar"><b></b><input type="submit" value="验证测试" styleClass="logbtn3"></li>
</ul>
</form>
四、在JSP中验证码的验证过程以及中文乱码处理
获取用户输入的验证码并与Session中的验证码比较,相同即通过,否则拒绝,对于JSP中中文验证码的处理注意要在页面中定义JSP页面编码跟获取Session的字符编码一致,此处使用的是统一的GB2312编码,否则将出现验证码无法成功验证的情况。
val.jsp
<%@ page language="java" pageEncoding="GB2312" %>
<%
request.setCharacterEncoding("gb2312");
//获取Session会话中缓存的验证码
String rand = (String)session.getAttribute("rand");
//获取用户输入的验证码
String input = request.getParameter("input");
if(rand==null||input==null)
{
//无输入验证码处理代码
}
if (rand.equals(input)) {
//验证码对比成功
}
else {
//验证码失败处理代码
}
%>