1.創建自定義的攔截器並實現HandlerInterceptor接口
package com.demo.common.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; public class MyInterceptor implements HandlerInterceptor{ Logger logger = LoggerFactory.getLogger(MyInterceptor.class); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { logger.info("preHandle :" +request.getContextPath()); HttpSession session = request.getSession(); if (session.getAttribute("user") != null) return true; // 跳轉登錄 String url = request.getContextPath() + "/login"; response.sendRedirect(url); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
2.創建一個java類繼承WebMvcConfiguraeAdapter並重寫addInterceptor方法(該類用來添加配置攔截器在該類中添加配置攔截器,以及配置過濾)
package com.demo.common.interceptor; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration public class AddInterceptor extends WebMvcConfigurerAdapter{ public void addInterceptors(InterceptorRegistry registry){ registry.addInterceptor(new MyInterceptor()) .addPathPatterns("/**") .excludePathPatterns("/login") .excludePathPatterns("/loginPost"); } }