编程语言
首页 > 编程语言> > Educoder Java生成验证码 第3关:使用Kaptcha组件生成验证码

Educoder Java生成验证码 第3关:使用Kaptcha组件生成验证码

作者:互联网

任务描述

本关任务:使用Kaptcha组件生成验证码,并校验验证码是否正确。

相关知识

之前两关我们已经了解了验证码的制作流程,不过我们在开发中一般不会去自己从零开始编写验证码,而是会使用到开源的组件,本关我们就来使用Kaptcha来生成验证码,并且编写一个页面校验用户的验证码是否输入正确。

Kaptcha 组件的使用

先来看要实现的效果:

首先制作用户填写验证码的页面captchacode.jsp

  1. <script type="text/javascript">
  2. function reloadCode() {
  3. var date = new Date().getTime();
  4. document.getElementById("code").src = "<%=request.getContextPath() %>/imageKaptcha?d="+date;
  5. }
  6. </script>
  7. <form action="checkCaptcha.jsp" method = "post">
  8. <img alt="验证码" src="imageKaptcha" id = "code"><a href = "javascript:reloadCode();">看不清</a>
  9. <input type = "text" name = "captcha">
  10. <input type = "submit" value = "submit">
  11. </form>

接着我们写一个检查验证码输入是否正确的类checkCaptchaServlet.java

  1. request.setCha\fracterEncoding("utf-8");
  2. // 获取Kaptcha jar包里面的KAPTCHA_SESSION_KEY
  3. String trueCaptcha = (String)session.getAttribute(Constants.KAPTCHA_SESSION_KEY);
  4. String inputCaptcha = request.getParameter("captcha");
  5. if(trueCaptcha.toLowerCase().equals(inputCaptcha.toLowerCase())) {
  6. out.write("验证码输入正确");
  7. } else {
  8. out.write("验证码输入错误");
  9. }

然后配置好web.xmlok了。下面我们来看看怎么配置web.xml

  1. <servlet>
  2. <servlet-name>myCaptcha</servlet-name>
  3. <!-- jar中的 KaptchaServlet的路径-->
  4. <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
  5. </servlet>
  6. <!--配置kaptcha 校验验证码是否正确的 servlet-->
  7. <servlet>
  8. <servlet-name>CheckCaptcha</servlet-name>
  9. <servlet-class>com.servlet.CheckCaptchaServlet</servlet-class>
  10. </servlet>
  11. <servlet-mapping>
  12. <servlet-name>myCaptcha</servlet-name>
  13. <!-- 对于index.jsp中img的src -->
  14. <url-pattern>/imageKaptcha</url-pattern>
  15. </servlet-mapping>
  16. <!--第三关:配置kaptcha 校验验证码的 servlet-->
  17. <servlet-mapping>
  18. <servlet-name>CheckCaptcha</servlet-name>
  19. <url-pattern>/checkCaptcha</url-pattern>
  20. </servlet-mapping>

做完上述步骤之后,运行项目,打开网页,即可查看验证码。

输入正确的验证码点击submit

经过上述步骤我们就使用Kaptcha组件生成验证码了。

扩展:Kaptcha还有很多其他的设置可以实现图片边框,边框颜色,中文验证码等操作,限于篇幅在这里就不在赘述。

标签:Educoder,String,Kaptcha,验证码,生成,组件,输入
来源: https://www.cnblogs.com/Tim161718/p/16329937.html