spring静态资源的访问

在进行Spring MVC的配置时,通常我们会配置一个dispatcher servlet用于处理对应的URL。配置如下:

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

只拦截.do请求配置如下:

   <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
   <servlet-mapping>  
    <servlet-name>springMVC</servlet-name>  
    <url-pattern>*.do</url-pattern>  
   </servlet-mapping> 

这表示名字为 SpringMVC 的servlet会处理一切的url对应的请求,那么我们怎么让servlet来处理项目中的静态资源呢?这里有两种方法。

  1. 另外使用一个servlet来处理静态资源。若我们的资源放置在webapps文件夹下的resources文件夹中,那么我们可以用名字为default的servlet来处理静态资源。因此我们还需要在上述配置的基础上加上以下配置:

<servlet-mapping>  
<servlet-name>default</servlet-name>  
<url-pattern>resources/*</url-pattern>  
</servlet-mapping> 

2. 采用spring自带<mvc:resources>方法。首先找到你定义的那个servlet的xml文件,如需要找到springmvc.xml文件,并在该文件中插入以下配置:

<mvc:annotation-driven/>  
<mvc:resources mapping="/resources/**/" location="/resources/"/>  

如此就不必另外添加一个mvc来处理静态资源。而mvc知道静态资源所处的位置为resources文件夹。
两种方法都可以将spring mvc配置处理静态资源。

在SpringMVC3.0之后推荐使用一: 

<mvc:annotation-driven />
 <mvc:resources location="/img/" mapping="/img/**"/>   
 <mvc:resources location="/js/" mapping="/js/**"/>    
 <mvc:resources location="/css/" mapping="/css/**"/>  

说明:

location元素表示webapp目录下的static包下的所有文件;

mapping元素表示以/static开头的所有请求路径,如/static/a 或者/static/a/b;

该配置的作用是:DispatcherServlet不会拦截以/static开头的所有请求路径,并当作静态资源

扫描二维码关注公众号,回复: 3435136 查看本文章

交由Servlet处理。

	<mvc:resources mapping="/favicon.ico" location="/favicon.ico,classpath:/favicon.ico" />
	<mvc:resources mapping="/public/**" location="/public/,classpath:/public/" />
	<mvc:resources mapping="/platform/**" location="/platform/" />

也可以使用二:

web.xml里添加如下的配置

<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>*.js</url-pattern>  
</servlet-mapping> 

猜你喜欢

转载自blog.csdn.net/qq_35029061/article/details/82944418