diff --git a/tamguo-mms/src/main/java/com/tamguo/web/interceptor/MemberInterceptor.java b/tamguo-mms/src/main/java/com/tamguo/web/interceptor/MemberInterceptor.java index b35cfdf..d4ccb4c 100644 --- a/tamguo-mms/src/main/java/com/tamguo/web/interceptor/MemberInterceptor.java +++ b/tamguo-mms/src/main/java/com/tamguo/web/interceptor/MemberInterceptor.java @@ -1,55 +1,59 @@ package com.tamguo.web.interceptor; -import java.net.URLEncoder; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.springframework.stereotype.Component; -import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; +import java.net.URLEncoder; // 导入用于编码的类 +import javax.servlet.http.HttpServletRequest; // 导入 Http 请求类 +import javax.servlet.http.HttpServletResponse; // 导入 Http 响应类 +import org.springframework.stereotype.Component; // 标记为组件 +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; // 继承的拦截器适配器类 +/** + * MemberInterceptor 类,处理会员相关的拦截器 + */ @Component -public class MemberInterceptor extends HandlerInterceptorAdapter{ +public class MemberInterceptor extends HandlerInterceptorAdapter { // 继承自拦截器适配器 - /** "重定向URL"参数名称 */ - private static final String REDIRECT_URL_PARAMETER_NAME = "redirectUrl"; + /** "重定向 URL"参数名称 */ + private static final String REDIRECT_URL_PARAMETER_NAME = "redirectUrl"; // 定义重定向 URL 参数名称 - /** 默认登录URL */ - private static final String DEFAULT_LOGIN_URL = "/login.html"; + /** 默认登录 URL */ + private static final String DEFAULT_LOGIN_URL = "/login.html"; // 定义默认登录 URL + + /** 登录 URL */ + private String loginUrl = DEFAULT_LOGIN_URL; // 定义登录 URL - /** 登录URL */ - private String loginUrl = DEFAULT_LOGIN_URL; - /** * 请求前处理 - * - * @param request - * HttpServletRequest - * @param response - * HttpServletResponse - * @param handler - * 处理器 + * + * @param request HttpServletRequest + * @param response HttpServletResponse + * @param handler 处理器 * @return 是否继续执行 */ @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - Object currMember = request.getSession().getAttribute("currMember"); - if (currMember != null) { - return true; - } else { - String requestType = request.getHeader("X-Requested-With"); - if (requestType != null && requestType.equalsIgnoreCase("XMLHttpRequest")) { - response.addHeader("loginStatus", "accessDenied"); - response.sendError(HttpServletResponse.SC_FORBIDDEN); - return false; - } else { - if (request.getMethod().equalsIgnoreCase("GET")) { - String redirectUrl = request.getQueryString() != null ? request.getRequestURI() + "?" + request.getQueryString() : request.getRequestURI(); - response.sendRedirect(request.getContextPath() + loginUrl + "?" + REDIRECT_URL_PARAMETER_NAME + "=" + URLEncoder.encode(redirectUrl, "UTF-8")); - } else { - response.sendRedirect(request.getContextPath() + loginUrl); + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 重写预处理方法 + + Object currMember = request.getSession().getAttribute("currMember"); // 获取当前会话中的会员对象 + + if (currMember!= null) { // 如果会员对象不为空 + return true; // 返回 true,继续执行 + } else { // 否则 + + String requestType = request.getHeader("X-Requested-With"); // 获取请求头中的"X-Requested-With" + + if (requestType!= null && requestType.equalsIgnoreCase("XMLHttpRequest")) { // 如果是 XMLHttpRequest 请求 + response.addHeader("loginStatus", "accessDenied"); // 在响应头中添加登录状态 + response.sendError(HttpServletResponse.SC_FORBIDDEN); // 发送禁止访问错误 + return false; // 返回 false,停止执行 + } else { // 否则 + + if (request.getMethod().equalsIgnoreCase("GET")) { // 如果是 GET 请求 + String redirectUrl = request.getQueryString()!= null? request.getRequestURI() + "?" + request.getQueryString() : request.getRequestURI(); // 获取重定向 URL + response.sendRedirect(request.getContextPath() + loginUrl + "?" + REDIRECT_URL_PARAMETER_NAME + "=" + URLEncoder.encode(redirectUrl, "UTF-8")); // 发送重定向响应 + } else { // 如果是其他请求 + response.sendRedirect(request.getContextPath() + loginUrl); // 发送重定向响应 } - return false; + return false; // 返回 false,停止执行 } } } - -} +} \ No newline at end of file