当前位置: 代码迷 >> 综合 >> Java-Servlet实现登录验证码
  详细解决方案

Java-Servlet实现登录验证码

热度:33   发布时间:2023-09-05 17:52:46.0
在目前的网页的登录,注册中经常见到各种验证码。其目的是为了:防止暴力破解,因为只要CPU性能比较强,就可以慢慢尝试破解用户账号,导致用户信息不安全。
使用验证码,一旦用户输入的密码或者账号不正确的时候,验证码也会立即改变。在一定程度上实现安全性。1. 项目中添加第三方jar包 validatecode.jar
2. 创建返回验证码的ServletHTMl:<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 {@Overridepublic 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());}}
  相关解决方案