当前位置: 代码迷 >> JavaScript >> JSP汉语验证码
  详细解决方案

JSP汉语验证码

热度:344   发布时间:2012-06-26 10:04:13.0
JSP中文验证码

?以上两篇文章的内容介绍了有关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中使用验证码程序。

  相关解决方案