当前位置:   article > 正文

Spring MVC设置不拦截静态资源_springboot mvc 接口不拦截静态资源

springboot mvc 接口不拦截静态资源

在Spring Boot中:

这里还可以自行添加拦截器

Spring在Registry中通过org.springframework.web.servlet.config.annotation.InterceptorRegistry#registrations来存储各个拦截器。套路和之前分析过的Spring Boot自定义消息、类型转换器差不多(可参看:https://blog.csdn.net/Dongguabai/article/details/81624145https://blog.csdn.net/Dongguabai/article/details/81624224)。

在Spring中设置不拦截静态资源可以参看这篇文章:https://blog.csdn.net/qq_40594137/article/details/79112700

解决办法:

方案一:拦截器中增加针对静态资源不进行过滤(涉及spring-mvc.xml)

注意:需引入mvc命名空间 

  1. <!-- 添加注解驱动 -->
  2. <mvc:annotation-driven/>
  3. <!--
  4. 通过mvc:resources设置静态资源,这样servlet就会处理这些静态资源,而不通过控制器
  5. 设置不过滤内容,比如:css,js,img 等资源文件
  6. location指的是本地的真是路径,mapping指的是映射到的虚拟路径。
  7. -->
  8. <mvc:resources mapping="/css/**" location="/css/"/>

方案二:使用默认的servlet处理静态资源(涉及spring-mvc.xml,web.xml) 

在spring-mvc.xml中添加:

  1. <!--启用默认Servlet-->
  2. <mvc:default-servlet-handler/>

在web.xml中添加:

  1. <!--增加对静态资源的处理,当前的设置必须在Spring的Dispatcher的前面-->
  2. <servlet-mapping>
  3. <servlet-name>default</servlet-name>
  4. <url-pattern>*.css</url-pattern>
  5. <url-pattern>/css/*</url-pattern>
  6. </servlet-mapping>

方案三:修改spring的全局拦截设置为*.do的拦截(涉及web.xml)

  1. <!-- 拦截所有请求 -->
  2. <servlet-mapping>
  3. <servlet-name>dispatcher</servlet-name>
  4. <!--<url-pattern>/</url-pattern>-->
  5. <url-pattern>*.do</url-pattern>
  6. </servlet-mapping>

这时,我们浏览器的所有访问路径就要变成:http://localhost:8080/xxx/xxx.do

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/972958
推荐阅读
相关标签
  

闽ICP备14008679号