SpringMVC之静态资源访问
来源:互联网 发布:小说网源码加自动采集 编辑:程序博客网 时间:2024/05/16 13:52
web.xml中的DispatcherServlet对应的<url-pattern>/</url-pattern>拦截了所有请求,静态资源也无法访问。
有的静态资源是需要限制访问的,但有的静态资源(如:css样式文件和js文件、页面用到的图片)我们是不希望进行拦截的。
SpringMVC访问静态资源有三种方式。
方案一:激活Tomcat的defaultServlet来处理静态文件
- <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>
每种不需要过滤文件的后缀都需要设置一个。要写在DispatcherServlet的前面, 让defaultServlet先拦截,这个就不会进入Spring
下面的两种方式都是在springmvc的配置文件中,文件的springmvc文件该怎么配置就不多说了。
且两者都引用了mvc注解,那么需要在使用它们之前加上注解支持:
- <mvc:annotation-driven />
直接在SpringMVC配置文件中加上以下内容即可。
- <mvc:default-servlet-handler/>
方案三: 在spring3.0.4以后版本提供了mvc:resources
按网上搜的所有方法配置,我的css文件全放在WebContent/static/css下
- <mvc:resources location="/static/css/" mapping="/css/**" />
然而依照网上的配置都不靠谱呀。
控制台出现警示:No mapping found for HTTP request with URI [/springmvcoa/static/css/ack.css] in DispatcherServlet with name 'dispatcherServlet'
页面样式无法加载。
根据控制台警告知道就是这个资源配置路径的问题。
于是直接访问样式文件,页面404报错,控制台出现上面的警告。
既然是路径的问题,我就一步步测试。
新建两个a.txt,路径分别为static/css和static/css/css
http://localhost/springmvcoa/static/css/a.txt按上面的方式,警示内容:WARN PageNotFound:1147 - No mapping found for HTTP request with URI [/springmvcoa/static/css/a.txt] in DispatcherServlet with name 'dispatcherServlet'
不停调试location和resource后,mvc:resource配置为:
- <mvc:resources location="/static/css/" mapping="/static/css/**" />
和
- <mvc:resources location="/static/css/" mapping="static/css/**" />
均可。
如果要配置多个文件夹就设置多个mvc:resource。
如果是访问static下所有目录,包括css、js、image等文件的目录,则配置:
- <mvc:resources location="/static/" mapping="/static/**" />
这些方式配置的文件都是可直接访问
当加了拦截器,发现配置好可以直接访问的静态资源的路径也会被拦截,
- <!-- 拦截器配置 -->
- <mvc:interceptors>
- <!-- 登录验证和session控制 -->
- <mvc:interceptor>
- <!-- 拦截所有路径 -->
- <mvc:mapping path="/**"/>
- <!-- 不过拦截器的请求 -->
- <mvc:exclude-mapping path="/static/**"/>
- <mvc:exclude-mapping path="/user/login"/>
- <bean class="com.ack.crm.interceptor.LoginInterceptor"/>
- </mvc:interceptor>
- </mvc:interceptors>
这样static以及static子目录中的文件路径不会被拦截;登录操作也要配置为不拦截,不然没法进行登录;后期还有退出登录等操作需要不拦截。
SpringMVC可以过滤所有路径,免去了需要配置过滤器;
http://blog.csdn.net/qinshijangshan/article/details/53441394
- SpringMVC之静态资源访问
- SpringMVC之静态资源访问
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- springMVC访问静态资源
- springMVC 访问 静态资源
- SpringMVC访问静态资源
- Springmvc访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- Springmvc 静态资源访问
- springMVC静态资源访问
- 16.Redis心跳检测
- C#之玩转反射
- python(控制流)
- protobuf详解
- TOTOLINK EX300无线中继路由器
- SpringMVC之静态资源访问
- Caffe中损失层简介
- 圆形图片ui
- jQuery数组合并
- 维优尚品公司简介及办公环境展示
- 关于ConfigurationManage找不到的解决方案
- CompositeCursorAdapter——可在ListView中添加多个cursor的Adapter
- MongoDB安装和使用+Webstorm可视化插件
- SpringBoot1.5.X整合CXF1.3.X出现Unable to create schema compiler