• Spring MVC配置静态资源的正常访问


      SpringMVC如果过滤器过滤范围配置了/或者/*,那么框架会过滤所有请求,包括自己写的请求和静态资源请求,这样静态资源就不能正常加载,包括js文件、css文件、图片资源访问的时候都会出现404页面,下面就来配置不过滤静态资源的方法

      第一种方法是最原生的,因为开始Spring核心过滤器过滤的路径是项目下所有路径,这个时候要改成过滤指定后缀即可,比如*.do,*.html等后缀,这样自己编写controller的时候全部主动设置请求为特定后缀,这样静态资源和编写的请求就可以区分开了

      第二种方法是如果我们打算编写没有后缀的请求,比如/hello这种,上面方法是有限制的,所以这个时候SpringMVC还是过滤/*这样的全部请求,我们在web.xml中配置静态资源优先过滤,这个时候服务器首先加载web.xml提前拦截静态资源请求,然后SpringMVC过滤器就拦截不到这些请求了,所以tomcat就可以正常使用静态资源了,在web.xml中添加如下配置,前后均可:

     1   <servlet-mapping>
     2       <servlet-name>default</servlet-name>
     3       <url-pattern>*.jpg</url-pattern>
     4   </servlet-mapping>
     5   <servlet-mapping>
     6       <servlet-name>default</servlet-name>
     7     <url-pattern>*.js</url-pattern>
     8   </servlet-mapping>
     9   <servlet-mapping>
    10     <servlet-name>default</servlet-name>
    11     <url-pattern>*.css</url-pattern>
    12   </servlet-mapping>

      如果有更多的资源需要过滤,比如.png,.gif等等,都可以继续添加配置,也比较方便

      

      上面就是最简单的两种方法,效率肯定是最高的,他们过滤的对象不一样,一个是只过滤动态url,一个是先过滤静态资源

  • 相关阅读:
    mysql简单介绍及安装
    LVS
    LAMP架构
    记录一个低级又让人踩坑的bug(org.springframework.web.method.annotation.MethodArgumentTypeMismatchException)
    Hadoop通过idea连接远程集群出现的用户权限问题
    linxu离线环境安装docker
    linux中oracle的使用问题简单罗列与解决
    Linux下安装Oracle详细版-附oracle11g软件包
    Host is not allowed to connect to this MySQL server问题解决
    kettle的安装使用及介绍
  • 原文地址:https://www.cnblogs.com/freeweb/p/5175188.html
Copyright © 2020-2023  润新知