0
点赞
收藏
分享

微信扫一扫

spring mvc静态文件访问


当web.xml文件中如下配置时,spring mvc会无法访问静态资源文件

<!-- 配置springmvc 的核心servlet -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 指定springmvc 配置文件的路径 默认为 /WEB-INF/<[servlet-name]-servlet.xml> 例如此处为/WEB-INF/spring-servlet.xml
                下面配置的也就是默认值 -->
<param-value>classpath*:config/spring-servlet.xml</param-value>
</init-param>
<!-- 配置随服务器启动自动初始化 -->
<load-on-startup>1</load-on-startup>
 
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
         <!—过滤所有的请求-->
        <url-pattern>/</url-pattern>
</servlet-mapping>

解决办法1:

需要在spring-servlet.xml文件中如下配置才能访问静态资源文件:

spring mvc静态文件访问_springmvc

<mvc:resourceslocation="/css/"mapping="/css/**"/>
<mvc:resourceslocation="/js/"mapping="/js/**"/>
<mvc:resourceslocation="/img/"mapping="/img/**"/>

 解决办法2:

激活Tomcat的defaultServlet来处理静态文件

<servlet-mapping>   
    <servlet-name>default</servlet-name>  
    <url-pattern>*.jpg</url-pattern>     
</servlet-mapping>    
<servlet-mapping>       
    <servlet-name>default</servlet-name>    
    <url-pattern>*.js</url-pattern>    
</servlet-mapping>    
<servlet-mapping>        
    <servlet-name>default</servlet-name>       
    <url-pattern>*.css</url-pattern>      
</servlet-mapping>

要配置多个,每种文件配置一个。

            2.  要写在DispatcherServlet的前面, 让 defaultServlet先拦截请求,这样请求就不会进入Spring了。

            3. 高性能。

备注:

Tomcat, Jetty, JBoss, and GlassFish 自带的默认Servlet的名字 -- "default" 
Google App Engine 自带的 默认Servlet的名字 -- "_ah_default" 
Resin 自带的 默认Servlet的名字 -- "resin-file" 
WebLogic 自带的 默认Servlet的名字  -- "FileServlet" 
WebSphere  自带的 默认Servlet的名字 -- "SimpleFileServlet"



 

举报

相关推荐

0 条评论