Spring MVC配置静态资源的正常访问
SpringMVC如果过滤器过滤范围配置了/或者/*,那么框架会过滤所有请求,包括自己写的请求和静态资源请求,这样静态资源就不能正常加载,包括js文件、css文件、图片资源访问的时候都会出现404页面,下面就来配置不过滤静态资源的方法
第一种方法是最原生的,因为开始Spring核心过滤器过滤的路径是项目下所有路径,这个时候要改成过滤指定后缀即可,比如*.do,*.html等后缀,这样自己编写controller的时候全部主动设置请求为特定后缀,这样静态资源和编写的请求就可以区分开了
第二种方法是如果我们打算编写没有后缀的请求,比如/hello这种,上面方法是有限制的,所以这个时候SpringMVC还是过滤/*这样的全部请求,我们在web.xml中配置静态资源优先过滤,这个时候服务器首先加载web.xml提前拦截静态资源请求,然后SpringMVC过滤器就拦截不到这些请求了,所以tomcat就可以正常使用静态资源了,在web.xml中添加如下配置,前后均可:
<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>
如果有更多的资源需要过滤,比如.png,.gif等等,都可以继续添加配置,也比较方便
上面就是最简单的两种方法,效率肯定是最高的,他们过滤的对象不一样,一个是只过滤动态url,一个是先过滤静态资源
Spring MVC配置静态资源的正常访问的更多相关文章
- Spring MVC配置静态资源和资源包
		
Spring MVC配置静态资源和资源包 本例映射:css目录: pom.xml <properties> <spring.version>4.3.5.RELEASE</ ...
 - Spring MVC配置静态资源和资源包教程
		
1- 介绍 这篇教程文章是基于: Spring 4 MVC 2- 创建一个项目 File/New/Other.. 输入: Group ID: com.yiibai Artifact ID: Sprin ...
 - 【Spring学习笔记-MVC-14】Spring MVC对静态资源的访问
		
作者:ssslinppp 参考链接: http://www.cnblogs.com/luxh/archive/2013/03/14/2959207.html http://www.cnb ...
 - Spring MVC 处理静态资源文件
		
摘要: 三个方案: 1.方案一:激活Tomcat的defaultServlet来处理静态文件 2.方案二: 在spring3.0.4以后版本提供了mvc:resources (需要配置annotati ...
 - nginx配置静态资源与动态访问分离【转】
		
在前面的博客中<说说 NGINX 的配置及优化>的 2.5 小节里面,提到 location 模块是 nginx 中用的最多的,也是最重要的模块,负载均衡.反向代理.虚拟域名等都与它相关. ...
 - spring mvc对静态资源的访问
		
如果我们的项目使用的是springmvc,在web.xml中会有一段这的配置. <servlet> <servlet-name>springMvc</servlet-na ...
 - spring mvc处理静态资源
		
servlet的url映射定义为'/'表示映射全部路径 struts的过滤器是*.action,在spring mvc中设置成*.action或者*.do......也是可以的,但是spring mv ...
 - Spring MVC 过滤静态资源访问
		
过滤的必要性 一般来说,HTTP 请求都会被映射到 DispatcherServlet,进而由具体的类来承接处理,但对于类似 js 或者 css 这样的静态资源则没必要这样,因为对资源的获取只需返回资 ...
 - spring mvc添加静态资源访问时@Controller无效的解决
		
web.xml中的url-pattern设置为/,添加mvc:resources访问静态资源时,@Controller无效的问题 web.xml: <servlet> <servle ...
 
随机推荐
- 别老扯什么Hadoop了,你的数据根本不够大
			
本文原名“Don't use Hadoop when your data isn't that big ”,出自有着多年从业经验的数据科学家Chris Stucchio,纽约大学柯朗研究所博士后,搞过 ...
 - Java字节流:ByteArrayInputStream ByteArrayOutputStream
			
----------------------------------------------------------------------------------- ByteArrayInputSt ...
 - codeforces Diagrams & Tableaux1 (状压DP)
			
http://codeforces.com/gym/100405 D题 题在pdf里 codeforces.com/gym/100405/attachments/download/2331/20132 ...
 - c# 获取系统时间
			
//获取日期+时间DateTime.Now.ToString(); // 2008-9-4 20:02:10DateTime.Now.ToLocalTime().ToStrin ...
 - SQL笔记 - CTE递归实例:显示部门全称
			
昨天在整理JS的Function时,示例是一个递归函数.说起递归,想起前段时间在搞CTE,那个纠结呀,看似容易,可我总抓不住门道,什么递归条件,什么结束条件,一头雾水...今天一大早就爬起来,果然不负 ...
 - JQuery中的html(),text(),val()区别
			
jQuery中.html()用为读取和修改元素的HTML标签,.text()用来读取或修改元素的纯文本内容,.val()用来读取或修改表单元素的value值. 1.HTML html():取得第一个匹 ...
 - PlayMaker 学习笔记
			
1.v1.7.8.3版本无法使用全局变量,原因是Assets\Plugins\PlayMaker下的Resources文件夹变成中文了,无法创建全局变量文件,手动创建一个Resources文件夹即可
 - nyoj 289  苹果 动态规划 (java)
			
分析:0-1背包问题 第一次写了一大串, 时间:576 内存:4152 看了牛的代码后,恍然大悟:看来我现在还正处于鸟的阶段! 第一次代码: #include<stdio.h> #inc ...
 - CentOS启用sudo,禁用root远程登录
			
CentOS默认不启用sudo,且可以直接用超级管理员身份登录服务器.ubuntu这方面做得比较好,为了安全,减小误操作带来的损失,还是推荐启用sudo. 1.添加sudo用户 执行 visudo 命 ...
 - C#遍历文件夹及文件
			
背景: 想自己实现一个网盘系统,于是需要用到遍历文件(夹)操作. C#基本知识梳理: 1.如何获取指定目录包含的文件和子目录 (1). DirectoryInfo.GetFiles():获取目录中(不 ...