HappyCaptcha工具

Happy Captcha是一款易于使用的Java验证码软件包,旨在花最短的时间,最少的代码量,实现Web站点的验证码功能
点击进入官网

常规网站验证码实现
进入教程

具体使用

1,导入maven依赖包

<dependency>
  <groupId>com.ramostear</groupId>
  <artifactId>Happy-Captcha</artifactId>
  <version>1.0.1</version>
</dependency>

2,生成验证码图片

HappyCaptcha.require(request,response).build().finish();

3,HappyCaptcha内置了对用户输入的验证码校验功能

boolean flag = HappyCaptcha.verification(request,code,true);
if(flag){
   //Other operations...
}
如果在校验过程中需要忽略字母大小写,第三个参数设置为true,如果需要强校验,则设置为false。

实例

HTML

<img src="/OneForAll/image" title="看不清点击刷新" id="checkCode"/>

ImageServlet

@WebServlet("/image")
public class ImageServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
        HappyCaptcha.require(req,resp).build().finish();
    }
}

UserServlet校验用户输入的验证码

private void doLogin(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
    User user = new User();
    user.setUsername(req.getParameter("username"));
    user.setPassword(req.getParameter("password"));
    String code = req.getParameter("code");
    UserService service = new UserServiceImpl();
    Boolean result = service.login(user);
    //验证码校验
    boolean flag = HappyCaptcha.verification(req, code, true);
    if (result&&flag){
        HttpSession session = req.getSession();
        session.setAttribute("loginSuccess",user.getUsername()+"用户登录成功");
        resp.sendRedirect("/OneForAll/home.jsp");
    }else {
        //删除session中的验证码
        HappyCaptcha.remove(req);
        req.setAttribute("loginError","登陆失败");
        req.getRequestDispatcher("/index.jsp").forward(req,resp);
    }
}