Spring MVC配置静态资源的正常访问
2016-02-01 13:52
330 查看
SpringMVC如果过滤器过滤范围配置了/或者/*,那么框架会过滤所有请求,包括自己写的请求和静态资源请求,这样静态资源就不能正常加载,包括js文件、css文件、图片资源访问的时候都会出现404页面,下面就来配置不过滤静态资源的方法
第一种方法是最原生的,因为开始Spring核心过滤器过滤的路径是项目下所有路径,这个时候要改成过滤指定后缀即可,比如*.do,*.html等后缀,这样自己编写controller的时候全部主动设置请求为特定后缀,这样静态资源和编写的请求就可以区分开了
第二种方法是如果我们打算编写没有后缀的请求,比如/hello这种,上面方法是有限制的,所以这个时候SpringMVC还是过滤/*这样的全部请求,我们在web.xml中配置静态资源优先过滤,这个时候服务器首先加载web.xml提前拦截静态资源请求,然后SpringMVC过滤器就拦截不到这些请求了,所以tomcat就可以正常使用静态资源了,在web.xml中添加如下配置,前后均可:
如果有更多的资源需要过滤,比如.png,.gif等等,都可以继续添加配置,也比较方便
上面就是最简单的两种方法,效率肯定是最高的,他们过滤的对象不一样,一个是只过滤动态url,一个是先过滤静态资源
第一种方法是最原生的,因为开始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,一个是先过滤静态资源
相关文章推荐
- Java控制台输出程序运行时间
- JAVA-使用commos-fileupload实现文件上传与下载
- springMVC详细配置+Mysql+jdbcTemplate实现分页功能
- java根据IP获取用户所在地
- 使用工作集(Working Set)整理项目
- java程序 一次改变指定目录下所有文件编码(包括子目录中的文件)
- java.lang.UnsupportedOperationException: The user must supply a JDBC connection 报错
- 让android studio 支持 eclipse NDK工程
- eclipse 相关
- 在java代码中获取JVM参数(转)
- 本地方法(JNI)——从java 程序中调用C函数
- Java-基本数据类型
- Java中关于OOM的场景及解决方法(转)
- 【JavaSE】Java中多线程基本知识
- java main方法背后的故事?(转)
- 探秘Java虚拟机——内存管理与垃圾回收(转)
- java中三种常见内存溢出错误的处理方法(转)
- java中的移位运算符:<<,>>,>>>总结(转)
- Java api 入门教程 之 JAVA的包装类
- Websocket即时通信应用开发 java部分