使用hutool工具类实现点击更换验证码
实现思路:
每次点击图片将图片所请求的路径重新赋值一下,这样可以实现但会有个问题就是浏览器缓存问题,可能导致无法更新,这样的话我们需要拼接一个动态数据也就是时间,我们使用jQuery中的attr方法可以替换img中的src值
这样每次请求一下后台后台会返回一个新的验证码图片存在响应中,获取一下即可
$("#codeImg").attr("src","/getCode?date="+ new Date().getTime());
/getCode也就是所请求的后台路径
后台代码:
package com.mtser.servlet;
import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.LineCaptcha;
import sun.plugin.dom.core.Element;
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;
@WebServlet("/getCode")
public class CodeServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//HuTool定义图形验证码的长和宽,验证码的位数,干扰线的条数
LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(80, 40);
//将验证码放入session
request.getSession().setAttribute("code",lineCaptcha.getCode());
lineCaptcha.write( response.getOutputStream());
response.getOutputStream().close();
}
}