pull/1/head
LYH 1 year ago
parent f9e2aeb4f7
commit cc7e7ce876

@ -1,48 +1,48 @@
package com.hua.filter;
package com.hua.filter; // 定义包名
import java.io.IOException;
import javax.servlet.DispatcherType;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; // 导入IOException类用于处理IO异常
import javax.servlet.DispatcherType; // 导入DispatcherType枚举用于定义过滤器的调度类型
import javax.servlet.FilterChain; // 导入FilterChain接口用于调用下一个过滤器或目标资源
import javax.servlet.ServletException; // 导入ServletException类用于处理servlet异常
import javax.servlet.annotation.WebFilter; // 导入WebFilter注解用于声明过滤器
import javax.servlet.http.HttpServletRequest; // 导入HttpServletRequest接口用于处理HTTP请求
import javax.servlet.http.HttpServletResponse; // 导入HttpServletResponse接口用于处理HTTP响应
/**
*
*
* @author hua
*
*/
@WebFilter(dispatcherTypes = {
DispatcherType.REQUEST,
DispatcherType.FORWARD,
DispatcherType.INCLUDE,
DispatcherType.ERROR
@WebFilter(dispatcherTypes = { // 使用WebFilter注解定义过滤器并指定其调度类型
DispatcherType.REQUEST, // 请求调度类型
DispatcherType.FORWARD, // 转发调度类型
DispatcherType.INCLUDE, // 包含调度类型
DispatcherType.ERROR // 错误调度类型
}
, urlPatterns = { "/loginChangeServlet" })
public class LoginCheckCodeFilter extends HttpFilter {
, urlPatterns = { "/loginChangeServlet" }) // 指定过滤器的URL模式
public class LoginCheckCodeFilter extends HttpFilter { // 定义LoginCheckCodeFilter类继承自HttpFilter
@Override
public void doFilter(HttpServletRequest request,
public void doFilter(HttpServletRequest request, // 覆盖doFilter方法处理请求
HttpServletResponse response, FilterChain filterChain)
throws IOException, ServletException {
//1. 获取请求参数: CHECK_CODE_PARAM_NAME
String paramCode = request.getParameter("CHECK_CODE_PARAM_NAME");
//2. 获取 session 中的 CHECK_CODE_KEY 属性值
String sessionCode = (String)request.getSession().getAttribute("CHECK_CODE_KEY");
//3. 比对. 看是否一致, 若一致说明验证码正确, 若不一致, 说明验证码错误
if(!(paramCode != null && paramCode.equalsIgnoreCase(sessionCode))){
request.getSession().setAttribute("message", "验证码不一致!");
request.getSession().setAttribute("username", request.getParameter("username"));
//1. 获取请求参数: CHECK_CODE_PARAM_NAME
String paramCode = request.getParameter("CHECK_CODE_PARAM_NAME"); // 从请求中获取名为"CHECK_CODE_PARAM_NAME"的参数值
//2. 获取 session 中的 CHECK_CODE_KEY 属性值
String sessionCode = (String)request.getSession().getAttribute("CHECK_CODE_KEY"); // 从session中获取名为"CHECK_CODE_KEY"的属性值
//3. 比对. 看是否一致, 若一致说明验证码正确, 若不一致, 说明验证码错误
if(!(paramCode != null && paramCode.equalsIgnoreCase(sessionCode))){ // 判断参数值和session值是否相等忽略大小写
request.getSession().setAttribute("message", "验证码不一致!"); // 设置错误消息到session
request.getSession().setAttribute("username", request.getParameter("username")); // 将用户名设置到session中
response.sendRedirect(request.getContextPath() + "/login/login.jsp");
return;
response.sendRedirect(request.getContextPath() + "/login/login.jsp"); // 重定向到登录页面
return; // 中断方法执行
}
filterChain.doFilter(request, response);
filterChain.doFilter(request, response); // 如果验证码正确,继续调用过滤器链
}
}
}
Loading…
Cancel
Save