diff --git a/src/com/hellogithub/filter/SessionFilter.java b/src/com/hellogithub/filter/SessionFilter.java index 0599521..5ec511b 100644 --- a/src/com/hellogithub/filter/SessionFilter.java +++ b/src/com/hellogithub/filter/SessionFilter.java @@ -14,7 +14,7 @@ import java.io.IOException; */ @WebFilter("/system/*")// 过滤器所有的请求 public class SessionFilter implements Filter { - private String[] excludeUrls = new String[]{""}; //过滤器排除的请求url 格式:”/login“ + private String[] excludeUrls = new String[]{"/VerifycodeServlet"}; //过滤器排除的请求url 格式:”/login“ /** * 过滤器 diff --git a/src/com/hellogithub/servlet/VerifycodeServlet.java b/src/com/hellogithub/servlet/VerifycodeServlet.java new file mode 100644 index 0000000..a8a040b --- /dev/null +++ b/src/com/hellogithub/servlet/VerifycodeServlet.java @@ -0,0 +1,39 @@ +package com.hellogithub.servlet; + +import com.hellogithub.utils.RandomValidateCode; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; + +/** + * 前台验证码处点击刷新,发送到该servlet的请求, + * 该servlet调用生成验证码的工具类返回一个图像验证码 + */ +@WebServlet(name = "VerifycodeServlet", urlPatterns = "/VerifycodeServlet") +public class VerifycodeServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("image/jpeg");//设置相应类型,告诉浏览器输出的内容为图片 + response.setHeader("Pragma", "No-cache");//设置响应头信息,告诉浏览器不要缓存此内容 + //做浏览器兼容 + response.setHeader("Cache-Control", "no-cache"); + response.setDateHeader("Expire", 0); + RandomValidateCode randomValidateCode = new RandomValidateCode(); + try { + randomValidateCode.getRandcode(request, response);//输出图片方法 + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + doGet(request, response); + } +} \ No newline at end of file