关闭

静态资源过滤方式补充

标签: spring mvc
696人阅读 评论(0) 收藏 举报
分类:

昨天写过一篇

更改静态资源过滤方式。

在写 mvc:resources 配置,少写了一些。因此,在项目访问时,报错404.

 <!-- 过滤静态资源 -->
	<mvc:resources mapping="/js/**" location="/js/" />
	<mvc:resources mapping="/pages/assets/**" location="/pages/assets/" />
	<mvc:resources mapping="/pages/js/**" location="/pages/js/" />
	<mvc:annotation-driven/>  
	<mvc:default-servlet-handler/> 

上面三个是过滤静态资源,而下面两个,分别是:

1、<!-- 启用spring mvc 注解 -->

mvc:annotation-driven:

参考文章地址:

http://blog.csdn.net/jbgtwang/article/details/7359592

描述是:

最后的配置如果没有<mvc:annotation-driven/>,那么所有的Controller可能就没有解析,所有当有请求时候都没有匹配的处理请求类,就都去<mvc:default-servlet-handler/>即default servlet处理了。添加上<mvc:annotation-driven/>后,相应的do请求被Controller处理,而静态资源因为没有相应的Controller就会被default servlet处理。总之没有相应的Controller就会被default servlet处理就ok了。

要使用spring mvc中的@Controller注解,就必须要配置<mvc:annotation-driven />,否则org.springframework.web.servlet.DispatcherServlet无法找到控制器并把请求分发到控制器。


2、<!-- 配置默认servlet handler -->

mvc:default-servlet-handler:

参考文章:Spring MVC使用mvc:resources和mvc:default-servlet-handler标签来处理静态资源

下面一段文字,为完全复制:

<mvc:default-servlet-handler />会把/** url注册到SimpleUrlHandlerMapping的urlMap中,把对静态资源的访问由HandlerMapping转到org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler处理并返回。DefaultServletHttpRequestHandler使用的就是各个Servlet容器自己默认的Servlet。

也就是说,在springMVC中,mvc:default-servlet-handler,等同于 在web.xml中配置default。


***********************************************************分割线***********************************************************

在web.xml中配置拦截的方式, 激活Tomcat的defaultServlet来处理静态文件      在web.xml中配置default是有缺点的,暂时忘记缺点是什么了,以后补记。

web.xml,是由tomcat加载,来进行筛选过滤的。

参考文章:

http://blog.sina.com.cn/s/blog_6fda308501018iyu.html

tomcat缓存静态资源深入

是针对 tomcat,WebLogic等,不同服务器,配置是不同的。

在web.xml中 的 default ,是针对tomcat 服务器的配置。

要写在DispatcherServlet的前面, 让 defaultServlet先拦截,这个就不会进入Spring了 


Tomcat, Jetty, JBoss, and GlassFish  默认 Servlet的名字 -- "default"
Google App Engine 默认 Servlet的名字 -- "_ah_default"
Resin 默认 Servlet的名字 -- "resin-file"
WebLogic 默认 Servlet的名字  -- "FileServlet"
WebSphere  默认 Servlet的名字 -- "SimpleFileServlet" 


0
0

猜你在找
【套餐】Hadoop生态系统零基础入门
【套餐】嵌入式Linux C编程基础
【套餐】2017软考系统集成项目——任铄
【套餐】Android 5.x顶级视频课程——李宁
【套餐】深度学习入门视频课程——唐宇迪
【直播】广义线性模型及其应用——李科
【直播】从0到1 区块链的概念到实践
【直播】计算机视觉原理及实战——屈教授
【直播】机器学习之凸优化——马博士
【直播】机器学习&数据挖掘7周实训--韦玮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:245802次
    • 积分:3983
    • 等级:
    • 排名:第7854名
    • 原创:154篇
    • 转载:101篇
    • 译文:1篇
    • 评论:33条
    最新评论