随笔-67  评论-522  文章-0  trackbacks-0
    在使用Spring MVC做开发时,一般都要使用静态资源文件,例如jscssjpg等等数据,如果不加配置,一般都会加载失败,解决这个问题的办法很简单,有需要的童鞋可以看看。
    大象以ssm3为例,web.xml这个文件里面,我们配置了DispatcherServlet,它的servlet-mapping映射如下:
    <servlet-mapping>

       <servlet-name>ssm3</servlet-name>

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

  </servlet-mapping>
    请注意这里<url-pattern>/</url-pattern>,它将所有的请求都匹配了,并且交给DispatcherServlet作转发。知道了问题出在哪里就好办了,我们可以将静态资源交给服务器处理,那么服务器处理静态资源的是什么东东咧?以Tomcat为例,在它的web.xml里面开头有这样一段配置:
    
    org.apache.catalina.servlets.DefaultServlet就是用来处理静态资源的。于是,我们就可以在项目的web.xml里面加入相应的静态资源文件处理配置。

<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>

 

    <servlet-mapping>

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

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

    </servlet-mapping>

 

    <servlet-mapping>

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

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

    </servlet-mapping>

 

    <servlet-mapping>

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

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

    </servlet-mapping>

 

    <servlet-mapping>

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

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

    </servlet-mapping>

 

    <servlet-mapping>

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

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

    </servlet-mapping>

    上面只列出了一部分,如果还有其它的静态资源需要过滤,可以继续添加。
    本文为菠萝大象原创,如要转载请注明出处。http://www.blogjava.net/bolo
posted on 2013-11-22 16:12 菠萝大象 阅读(4789) 评论(4)  编辑  收藏 所属分类: Spring3

评论:
# re: 解决Spring MVC框架静态资源文件显示问题 2013-11-30 17:15 | dsadm
怎么不使用mvc:resources定义呢?  回复  更多评论
  
# re: 解决Spring MVC框架静态资源文件显示问题 2013-12-02 09:18 | 菠萝大象
@dsadm
因为这个直接使用服务器进行处理,比用框架要简单和快。而且你不觉得mvc:resources配置起来还比较麻烦吗?如果将这些静态资源放到一个单独的服务器上,mvc:resources里的mapping和location该如何设置?  回复  更多评论
  
# re: 解决Spring MVC框架静态资源文件显示问题 2015-03-03 13:52 | yzbh
我们在用HTML5做视频播放网页时发现,这样做静态文件转发大文件,访问时会很慢。
<mvc:resources mapping="/videos/**" location="/videos/"/>

但改成这样写会快很多,拖拉播放进度条可以很快响应。
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.mp4</url-pattern>
</servlet-mapping>  回复  更多评论
  
# re: 解决Spring MVC框架静态资源文件显示问题 2015-03-04 08:42 | 菠萝大象
@yzbh
你上面那一段<servlet></servlet>不是web.xml里面的吗?你把它写在你的应用里面了?  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: