Java-Servlet实现登录验证码

  • 时间:
  • 来源:互联网
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42737644/article/details/103262799
在目前的网页的登录,注册中经常见到各种验证码。其目的是为了:防止暴力破解,因为只要CPU性能比较强,就可以慢慢尝试破解用户账号,导致用户信息不安全。
使用验证码,一旦用户输入的密码或者账号不正确的时候,验证码也会立即改变。在一定程度上实现安全性。
    
1. 项目中添加第三方jar包 validatecode.jar
2. 创建返回验证码的Servlet
    HTMl:
	<form action = "login" method = "post">
        <input name = "userName" type = "text"/><br/>
        <img id = "img" src = "img"/>
        <input type = "submit"/>
    </form>
    JS:
		window.onload = function() {
            document.getElementById("img").onclick = function() {
                //点击刷新验证码图片
                //默认没有出现最新的图片,是因为浏览器对当前页面中的图片进行缓存
                //通过在路径后缀一个随机数,保证每次路径不一样。Math.random为每一次刷新获取不同的图片路径
                document.getElementById("img").src = "img?"+Math.random();
            }
        }
    Servlet:
    @WebServlet("/img")
    public class CodeServlet extends HttpServlet {
        @Override
        public void doGet(HttpServlet request, HttpServletResponse response) throws ServletException, IOException {
            //1. 当请求到达的时候,我们需要调用jar提供的方法生成图片并向前端返回
            //设置生成规则
            /**
            * width,height:验证码宽度、高度 px像素
            * codeCount:生成验证码的个数
            * lineCount:生成验证码的干扰线个数
            */
            ValidateCode code = new ValidateCode(200, 50, 6, 20);
            //2. 获取成成的验证码的字符串值
            System.out.println(code.getCode());//获取正确值
            //3. 响应写回验证图片
            code.write(response.getOutputStream());
        }
    }

本文链接http://element-ui.cn/news/show-154.html