diff --git a/javaweb_project/src/com/hua/filter/LoginCheckCodeFilter.java b/javaweb_project/src/com/hua/filter/LoginCheckCodeFilter.java index dd15df3..e69d097 100644 --- a/javaweb_project/src/com/hua/filter/LoginCheckCodeFilter.java +++ b/javaweb_project/src/com/hua/filter/LoginCheckCodeFilter.java @@ -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); // 如果验证码正确,继续调用过滤器链 } -} +} \ No newline at end of file