Spring MVC 过滤静态资源访问
2017-09-23 20:12
344 查看
过滤的必要性
一般来说,HTTP 请求都会被映射到 DispatcherServlet,进而由具体的类来承接处理,但对于类似 js 或者 css 这样的静态资源则没必要这样,因为对资源的获取只需返回资源本身即可,无需做其他处理,那么这时就需要对一系列的资源文件做过滤处理。首先来看 web.xml 中针对 Spring MVC 的一个必要配置,即让 HTTP 请求映射到 DispatcherServlet:
<servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
配置策略
过滤配置要在 springmvc-config.xml 中进行,为了让资源文件不经过 DispatcherServlet,参见如下配置:<mvc:annotation-driven /> <mvc:resources mapping="/resources/css/**" location="/resources/css/project1/" /> <mvc:resources mapping="/resources/js/**" location="/resources/js/project1/" /> <mvc:resources mapping="/*.html" location="/" />
以上代码针对 css 和 js 分别做了配置,且看如下四点说明:
静态资源文件实际所在物理路径为:“/resources/css/project1/”。
在 jsp 页面中的超链接路径(href、src)对应着配置节里的 mapping。实际的路径定义在配置节的 location 中,它可能很长,也许由于历史原因其命名也不优雅,这时通过 mapping 就可以很优雅的重新表达,让 jsp 页面的代码更简洁明快。
<link href="<c:url value="/resources/css/input.css" />" rel="stylesheet" /> <script src="<c:url value="/resources/js/input.js" />" ></script>
location 属性的末尾必须带上“/”,否则报错。
只要有任何一项针对资源的映射配置(),就必须要带上 annotation-driven,反之,则不需要它。
<mvc:annotation-driven />
相关文章推荐
- 【转】Spring Mvc Web 配置拦截规则与访问静态资源
- Spring MVC Restful构建中静态资源访问问题
- 关于spring mvc访问静态资源,包括html.js
- 解决Spring MVC整合Shiro出现无法访问静态资源文件的问题
- Spring4 Spring MVC实战(三)——Spring MVC不通过xml配置访问HMTL和其他静态资源
- Spring mvc 访问静态资源的三种方法
- Spring MVC中静态资源访问不了
- Spring MVC配置静态资源的正常访问
- SSM搭建-Spring mvc对于静态资源的访问(14)
- spring mvc 配置对静态资源的访问
- spring mvc 过滤静态资源的配置
- Spring MVC访问静态资源
- spring mvc中对静态资源访问
- spring mvc访问静态资源的三种方式
- Spring Mvc Web 配置拦截规则与访问静态资源 (三)
- Spring MVC 静态资源访问配置
- spring mvc 中对静态资源的访问配置
- Spring MVC中访问静态资源(如html, js, css等)
- spring mvc:resources 静态资源访问
- spring mvc 访问静态资源的方式