?以上两篇文章的内容介绍了有关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
??? {
????? ?//验证码失败处理代码
??? }
%>?
???以上为在JSP页面中的验证码生成以及使用处理的源码分析,在接下来的文章中将介绍下在Servlet中使用验证码程序。