SpringMVC拦截器拦截静态资源的解决方法

匿名 (未验证) 提交于 2019-12-02 23:34:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DmxExcalibur/article/details/90522415

最近写项目,添加了某个拦截器之后,发现css、js、img等静态资源被拦截:

现象:项目添加登录验证的拦截器之后,清空浏览器缓存数据,再次运行项目,login页面会丢失样式、图片、js等静态资源,如果成功登录,以上静态资源会被浏览器加载并缓存,再次跳转到login.jsp会发现静态资源都已正常。

原因:第一次登录静态资源被拦截,因此样式乱。

解决方案:拦截器中遇到静态资源请求放行:

String requestURI = request.getRequestURI(); //请求参数




示例代码如下:

 package com.ssm.interceptor;  import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;  import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;  //配置拦截器 public class LoginInterceptor implements HandlerInterceptor{     @Override     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {         System.out.println("1.我先执行!");         //response.setContentType("text/html;charset=utf-8");  //统一的响应乱码处理              if (requestURI.indexOf("/img/") != -1 || requestURI.indexOf("/css/") != -1 || requestURI.indexOf("/js/") != -1) {                 return true;//放行              }else{                 response.sendRedirect("/xxx");//要跳转的页面                 return false; //拦截             }         }      @Override     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {         System.out.println("2.我第二个执行!");     }      @Override     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {         System.out.println("3.我最后执行!");     } } 


文章来源: https://blog.csdn.net/DmxExcalibur/article/details/90522415
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!