import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Component public class LoginInterceptor implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception{ // System.out.println(request.getRequestURI()); Object obj = request.getSession().getAttribute("session_user"); if (request.getRequestURI().equals("/login")){ return true; } if (obj == null){ response.sendRedirect("/login"); return false; } return true; } }
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class WebConfigurer implements WebMvcConfigurer { //配置攔截器 public void addInterceptors(InterceptorRegistry registry){ //registry.addInterceptor此方法添加攔截器 System.out.println("方法"); registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**") .excludePathPatterns( "/static/**", "/login/**", "/dist/**", "/image/**", "/js/**", "/plugins/**", "/css/**" );//須要配置2:----------- 告知攔截器:/static/admin/** 與 /static/user/** 不須要攔截 (配置的是 路徑) } /** * 添加靜態資源文件,外部能夠直接訪問地址 * @param registry */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //須要配置1:----------- 須要告知系統,這是要被當成靜態文件的! //第一個方法設置訪問路徑前綴,第二個方法設置資源路徑 System.out.println("靜態"); registry.addResourceHandler("/static/**").addResourceLocations("/static"); } }