栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

实现开源的验证码登录

Java 更新时间:发布时间: 百科书网 趣学号

1.如何生成验证码
第一种方式:自己实现
第二种方式:别人实现
能自己实现就自己实现,对于非常简单的功能来说,
但绝大多业务通用的功能,别人已经实现好了,
所以这里我们就使用开源的类库来实现验证码登录
能用开源的项目就是使用开源的项目,不过在上线之前需要经过大量的测试。
EasyCaptcha的地址:
https://gitee.com/whvse/EasyCaptcha

maven方式引入


   
      com.github.whvcse
      easy-captcha
      1.6.2
   

前端html代码:


在servlet中使用
web.xml中配置servlet:


    
    
        CaptchaServlet
        com.wf.captcha.servlet.CaptchaServlet
    
    
        CaptchaServlet
        /captcha
    

例如前端的页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    验证码


用户名:
密  码:
验证码:

后端的servlet验证登录:

package 验证码;

import session实现用户登录.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    public void doGet(HttpServletRequest request,HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //获取请求验证码的参数
        String checkCode = request.getParameter("captcha");
        //获取生成的验证码
        //session的应用场景,将servlet生成的验证码存储到session中。
        String savedCode = (String) request.getSession().getAttribute(
                "captcha");
        PrintWriter pw = response.getWriter();
       //检验验证码是否正确,验证码不区分大小写
       if(savedCode.equalsIgnoreCase(checkCode){
       if(username!=null&&username!=""&&password!=null&&password!=""){
        User user = new User();
        user.setName(username);
        user.setPassword(password);
        boolean login =userService.login(user);
        if(login){
          pw.write("登录成功")
         }
         else{
         pw.write("登录失败")
     }
}
         else{
          pw.write("登录失败")
    }
}
    }
    public void doPost(HttpServletRequest request,
                       HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

验证码的图片切换
需求是当我们点击验证码图片时,验证码会自动的更换图片

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    验证码


用户名:
密  码:
验证码:
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/294071.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号