谷歌验证码 kaptcha 使用步骤如下:
1、 导入谷歌验证码的 jar 包
kaptcha-2.3.2.jar
2、 在 web.xml 中去配置用于生成验证码的 Servlet 程序
1 <servlet> 2 <servlet-name>KaptchaServlet</servlet-name> 3 <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class> 4 </servlet> 5 <servlet-mapping> 6 <servlet-name>KaptchaServlet</servlet-name> 7 <url-pattern>/kaptcha.jpg</url-pattern> 8 </servlet-mapping>
3、 在表单中使用 img 标签去显示验证码图片并使用它
1 <label>验证码:</label> 2 <input class="itxt" type="text" name="code" style="width: 60px; margin-left: 15px;margin-left: 15px" id="code"/> 3 <img alt="" id="code_img" src="kaptcha.jpg" style="float: right;width: 160px;margin-right: 49px">
4、使用jQuery,来使验证码可以更新
1 <script type="text/javascript"> 2 $(function () { 3 $("#code_img").click(function () { 4 // 在事件响应的 function 函数中有一个 this 对象。 这个 this 对象, 是当前正在响应事件的 dom 对象 5 // src 属性表示验证码 img 标签的 图片路径。 它可读, 可写 6 this.src = "${basePath}kaptcha.jpg?d=" + new Date(); 7 }); 8 }); 9 </script>
5、在servlet进行获取和验证
1 public void get(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 2 // 1、获取输入的验证码 3 String code = req.getParameter("code"); 4 //获取图片里验证码的值 5 String attribute = (String)req.getSession().getAttribute(KAPTCHA_SESSION_KEY); 6 //获取验证码之后,再删除掉 7 req.getSession().removeAttribute(KAPTCHA_SESSION_KEY); 8 //2、检查 验证码是否正确 === 写死,要求验证码为:abcde 9 if (attribute!=null&&attribute.equalsIgnoreCase(code)) { 10 System.out.println("正确!"); 11 }else{ 12 System.out.println("错误!"); 13 } 14 }