在使用谷歌验证码时候需要先导入谷歌验证码的jar包
谷歌验证码 kaptcha 使用步骤如下: 1、导入谷歌验证码的 jar 包 kaptcha-2.3.2.jar 2、在 web.xml 中去配置用于生成验证码的 Servlet 程序
web.xlm
<servlet> <servlet-name>KaptchaSevlet</servlet-name> <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>KaptchaSevlet</servlet-name> <url-pattern>/kaptcha.jpg</url-pattern> </servlet-mapping>
在表单中使用 img 标签去显示验证码图片并使用它
<form action="http://localhost:8080/userServlet" method="get"> 用户名:<input type="text" name="username" > <br> 验证码:<input type="text" style=" 60px;" name="code"> <img src="http://localhost:8080/kaptcha.jpg" alt="" style=" 100px; height: 28px;"> <br> <input type="submit" value="登录"> </form>
userServlet
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resq) throws IOException { // 获取 Session 中的验证码 String token = (String) req.getSession().getAttribute(KAPTCHA_SESSION_KEY); // 删除 Session 中的验证码 以便这个验证码后续还可以使用 req.getSession().removeAttribute(KAPTCHA_SESSION_KEY); //获取前端输入来的验证码 String code = req.getParameter("code"); // 获取用户名 String userName = req.getParameter("username"); if(token != null && token.equalsIgnoreCase(code)){ System.out.println("保存到数据库"+userName); resq.sendRedirect(req.getContextPath()+"ok.jsp"); }else { System.out.println("请不要重复提交表单"); } }
验证码可以正常使用了
注意:
在导入jar包的时候一定要看看是否Artifacts了不然是无法使用的