谷歌 kaptcha 图片验证码的使用

在使用谷歌验证码时候需要先导入谷歌验证码的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了不然是无法使用的

原文地址:https://www.cnblogs.com/zhaoyunlong/p/13885868.html