SpringMVC静态资源处理[转]

时间:2024-04-22 16:36:41

SpringMvc配置DispatchServlet对所有请求进行过滤:

<servlet>

        <servlet-name>mvc-dispatcher</servlet-name>

         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

         <load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

         <servlet-name>mvc-dispatcher</servlet-name>

         <url-pattern>/</url-pattern>

</servlet-mapping>

会造成对所有的静态资源比如:JS、CSS、PNG、GIF等页拦截了,这不是我们所期望的。

解决办法:

1.利用Spring的特性:

<mvc:resources mapping="/skins/**" location="/skins/"/>

对于访问mapping  路径下的文件,定向到location下。

问题:引入静态资源需要知道Content  Path,css中无法引入Content Path

2.使用默认的Servlet对静态资源进行过滤,不使用DispatchServlet

在 web.xml  里面配置

<servlet-mapping>

            <servlet-name>default</servlet-name>

            <url-pattern>/skins/*</url-pattern>

</servlet-mapping>

对于访问路由中有skins的资源,使用默认Servlet

3.使用默认的Servlet,过滤特定的文件名扩展

在web.xml里面配置

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.png</url-pattern>

<url-pattern>*.js</url-pattern>

<url-pattern>*.css</url-pattern>

</servlet-mapping>

与方法2类似

大家可以根据自己的实际情况,选择最适合自己的方法