你的位置:首页 > Java教程

[Java教程]javaweb项目springmvc,和tomcat对静态文件的处理


1.激活Tomcat的defaultServlet来处理静态文件,web.

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

  a.说到了这里另外说说url-pattern的配置

  

<!--url-pattern的三种写法--><!--精确匹配:以"/"开头,加上servlet名称。-->/abc<!--路径匹配:以"/"开头,加上通配符"*"-->/rsources/*<!--扩展名匹配:以通配符"*"开头,加上扩展名。-->*.action 

 

2.springmvc处理,spring-mvc.

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

3.会把"/**" url,注册到SimpleUrlHandlerMapping的urlMap中,把对静态资源的访问由HandlerMapping转到org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler处理并返回.
DefaultServletHttpRequestHandler使用就是各个Servlet容器自己的默认Servlet.

<mvc:default-servlet-handler/>

多个HandlerMapping的执行顺序问题:

DefaultAnnotationHandlerMapping的order属性值是:0

<mvc:resources/ >自动注册的 SimpleUrlHandlerMapping的order属性值是: 2147483646

<mvc:default-servlet-handler/>自动注册 的SimpleUrlHandlerMapping 的order属性值是: 2147483647

spring 会先执行order比较小的。

 

总结:个人觉得第一种比较好,如果没有做静态文件cdn的话,还是在默认的servlet做处理比较好,这样就不会进入拦截器进行处理。