spring-mvc⾥的mvc:resources及静态资源访问
在进⾏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>l</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-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>
这表⽰default的servlet会处理url中为resources/*的对应的请求。这样,当你把你的image,css已经其他⽂件放在resources⽂件中
时,spring就可以到它啦。springmvc选择题
2. 采⽤spring⾃带<mvc:resources>⽅法。⾸先到你定义的那个servlet的xml⽂件,如本例⼦中,servlet的名字叫mvc-dispatcher,因此需要到l⽂件,并在该⽂件中插⼊以下配置:
<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开头的所有请求路径,并当作静态资源
交由Servlet处理。
也可以使⽤⼆:
<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>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。