Educoder java生成验证码 第3关:使用Kaptcha组件生成验证码
任务描述
本关任务:使用Kaptcha组件生成验证码,并校验验证码是否正确。
相关知识
之前两关我们已经了解了验证码的制作流程,不过我们在开发中一般不会去自己从零开始编写验证码,而是会使用到开源的组件,本关我们就来使用Kaptcha来生成验证码,并且编写一个页面校验用户的验证码是否输入正确。
Kaptcha 组件的使用
先来看要实现的效果:
首先制作用户填写验证码的页面captchacode.jsp
<script type="text/javascript">function reloadCode() {var date = new Date().getTime();document.getElementById("code").src = "<%=request.getContextPath() %>/imageKaptcha?d="+date;}</script><form action="checkCaptcha.jsp" method = "post"><img alt="验证码" src="imageKaptcha" id = "code"><a href = "javascript:reloadCode();">看不清</a><input type = "text" name = "captcha"><input type = "submit" value = "submit"></form>
接着我们写一个检查验证码输入是否正确的类checkCaptchaServlet.java
request.setCha\fracterEncoding("utf-8");// 获取Kaptcha jar包里面的KAPTCHA_SESSION_KEYString trueCaptcha = (String)session.getAttribute(Constants.KAPTCHA_SESSION_KEY);String inputCaptcha = request.getParameter("captcha");if(trueCaptcha.toLowerCase().equals(inputCaptcha.toLowerCase())) {out.write("验证码输入正确");} else {out.write("验证码输入错误");}
然后配置好web.xml就ok了。下面我们来看看怎么配置web.xml
<servlet><servlet-name>myCaptcha</servlet-name><!-- jar中的 KaptchaServlet的路径--><servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class></servlet><!--配置kaptcha 校验验证码是否正确的 servlet--><servlet><servlet-name>CheckCaptcha</servlet-name><servlet-class>com.servlet.CheckCaptchaServlet</servlet-class></servlet><servlet-mapping><servlet-name>myCaptcha</servlet-name><!-- 对于index.jsp中img的src --><url-pattern>/imageKaptcha</url-pattern></servlet-mapping><!--第三关:配置kaptcha 校验验证码的 servlet--><servlet-mapping><servlet-name>CheckCaptcha</servlet-name><url-pattern>/checkCaptcha</url-pattern></servlet-mapping>
做完上述步骤之后,运行项目,打开网页,即可查看验证码。
输入正确的验证码点击submit:
经过上述步骤我们就使用Kaptcha组件生成验证码了。
扩展:Kaptcha还有很多其他的设置可以实现图片边框,边框颜色,中文验证码等操作,限于篇幅在这里就不在赘述。

浙公网安备 33010602011771号