spring mvc 中对静态资源的访问配置

来源:互联网 发布:新疆商务厅 数据分析 编辑:程序博客网 时间:2024/05/22 07:55

在web.xml中配置spring mc servlet

对url-pattern设置时,排除在spring的servlet之外。

<servlet>    <servlet-name>dispatcherServlet</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <init-param>      <param-name>contextConfigLocation</param-name>      <param-value>/WEB-INF/mvc-config.xml</param-value>    </init-param>    <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>dispatcherServlet</servlet-name>    <url-pattern>/</url-pattern>  </servlet-mapping>

上面的路径配置’/’中,把所有的url处理全部交给spring mvc来处理了。这样静态资源也会被其拦截处理。

改进:
修改spring mvc的servlet处理的url-pattern,指定其具体处理路径。

在web.xml中使用容器对应的default servlet优先处理静态资源

每个java web容器都有其default servlet。在spring mvc servlet直接,先配置default servlet处理静态资源

- Tomcat, Jetty, JBoss, and GlassFish  默认 Servlet的名字 -- "default"- Resin 默认 Servlet的名字 -- "resin-file"- WebLogic 默认 Servlet的名字  -- "FileServlet"
<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>  <servlet-mapping>    <servlet-name>default</servlet-name>    <url-pattern>*.html</url-pattern></servlet-mapping>  

在spring mvc的配置中设置方法有2种

选择其中任意一种<!-- 方式1 静态资源访问处理 这种方法就是利用容器的default servlet来处理先 -->    <mvc:default-servlet-handler/><!-- 方式2 静态资源访问处理  org.springframework.web.servlet-3.1.4版本及以后使用 --> <!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory --><mvc:resources mapping="/static/**" location="/static/" /><mvc:resources mapping="/resources/**" location="/resources/" /><mvc:resources mapping="/images/**" location="/images/" /><mvc:resources mapping="/js/**" location="/js/" />

在服务器的load balance中配置

其实,静态的资源不需要进入到spring mvc等java web容器内处理,为性能考虑,可以在前面过滤处理了。尤其在分布式的环境中,更应如此。
0 0