Springboot2.1.1下的自定義攔截器而靜態資源不能訪問的問題
阿新 • • 發佈:2019-01-07
1.專案結構
2.自定義攔截器
public class LoginHandlerlnterceptor implements HandlerInterceptor { //目標方法執行之前 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Object loginname = request.getSession().getAttribute("loginname");View Codeif(loginname==null||loginname.equals("")){ //未登入,返回登陸介面 request.setAttribute("msg","沒有許可權,請先登陸"); //返回登陸page並且相應 // response.sendRedirect("/index.html"); request.getRequestDispatcher("/").forward(request,response); return false; }else { //已經登陸,放行 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) throwsException { } }
3.攔截器加入mvc
public class Mymvc implements WebMvcConfigurer { //註冊攔截器 @Override public void addInterceptors(InterceptorRegistry registry) { //springboot1已經做好了靜態資源映射了,可以訪問到 registry.addInterceptor(new LoginHandlerlnterceptor()).addPathPatterns("/**").excludePathPatterns("/", "/user/logins", "/login.html").excludePathPatterns("/img/**", "/css/**", "/webjars/**"); } }View Code
ok! 還有不明白的可以下面留言