SpringMVC学习总结(四)——静态资源的访问
来源:互联网 发布:免费选股软件 编辑:程序博客网 时间:2024/06/02 02:07
一:常规配置
如果使用SpringMVC框架,那么在web.xml文件中配置关于spring的dispatcherServlet类就是必不可少的一段配置,配置如下:
<!-- springmvc的前端控制器 --><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
可以看到,在servlet-mapping元素的url,模式设置为“/”,这意味着所有请求(包括那些静态资源)都被映射到dispatcher servlet中。为了正确处理静态资源,需要在springmvc 的配置文件添加一些配置,如下:
<!-- 资源映射 静态资源的访问配置(WEB-INF路径下不可自己访问) --><mvc:resources location="/WEB-INF/css/" mapping="/css/**"/><mvc:resources location="/WEB-INF/js/" mapping="/js/**"/>
或者添加如下代码:效果等同:<!-- 静态资源由web服务器默认的servlet处理 --> <mvc:default-servlet-handler/>
当我们再次运行项目,然后url访问controller中的requestMapping("/tolist")时却不能访问了,之前没有添加静态资源访问的配置时,访问是没有问题的,可是现在为什么不行了呢?再在springMVC的配置文件添加如下配置:
<!-- 注解驱动 --><mvc:annotation-driven />现在问题解决!二:问题分析
我们分以下情况分别分析:
1·没有配置<mvc:default-servlet-hander/>,也没有配置<mvc:annotation-driven>,浏览器访问资源,看请求参数:
2· 配置<mvc:default-servlet-hander/>,没有配置<mvc:annotation-driven>,浏览器访问资源,看请求参数:
3· 配置<mvc:default-servlet-hander/>,也配置<mvc:annotation-driven>,浏览器访问资源,看请求参数:
当两种标签都没有的时候,框架默认注册的有AnnotationMethodHandlerAdapter这个bean,所以能够处理@requestMapping注解,但是如果只是配置了<mvc:default-servlet-handler/>时所注册的三个bean都不能处理@RequestMapping注解,因此无法找到相应的controller,进而无法进行访问路径的映射;当两种标签都有的时候,<mvc:annotation-driven/>会注册一个requestMappingHandlerAdapter的bean,这个bean能够处理@RequestMapping这个注解。
注意:
根据以上的总结分析,我们得出一个结论:如果在springMVC的配置文件中有<mvc:resource/>的静态资源访问配置,那么必须要添加<annotation-driven/>的注解;若不需要使用resource,则不需要<annotation-driven/>元素。
- SpringMVC学习总结(四)——静态资源的访问
- springmvc学习笔记(四)访问静态资源
- SpringMVC——静态资源的访问
- 总结springmvc访问静态资源的三种方式
- springMVC(13)------springMVC静态资源的访问
- SpringMVC(一)—环境搭建和实现静态资源的访问
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- springMVC访问静态资源
- springMVC 访问 静态资源
- SpringMVC访问静态资源
- Springmvc访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- SpringMVC访问静态资源
- 【react学习】关于react框架使用的一些细节要点的思考
- 购物车
- ATM机管理系统
- SlidingMenu的使用方法
- 文件(1)
- SpringMVC学习总结(四)——静态资源的访问
- 暴力——HDU 4569
- 【神经网络与深度学习】【计算机视觉】RCNN- 将CNN引入目标检测的开山之作
- Water problem HDU
- hadoop实例 wordcount——StringTokenizer:字符串分隔解析类型
- Pascal's Triangle II
- Android中的Carema(相机操作)
- C语言中可变参数的用法
- 机器学习笔记一【线性回归】