springmvc笔记

#rest

REST即表述性状态传递(英文:Representational State Transfer,简称REST)

Servlet生命周期由接口javax.servlet.Servlet定义,具体内容可查API帮助文件,它提供了service、init和destroy方法
实例化-初始化(init)-调用(service)-销毁(destroy)

springmvc是基于servlet的web框架,struts2是基于filter的web框架。

springmvc /映射会覆盖defalut servlet (tomcat 下web.xml) 但不会覆盖jsp

容器问题
Spring和springmvc和作为两个独立的容器,会把扫描到的注解对象分别放到两个不同的容器中,
springmvc子容器可以访问spring父容器中的对象,spring父容器不能访问springmvc子容器中的对象

如果只用父容器 springmvc找不到处理器映射器,和其对应的Controller,进而报404错误!
如果只用子容器,事务管理器是配置在spring容器中的,如果将事务配置在Controller层的话,spring容器就访问不了springmvc子容器,

servlet匹配规则(优先级):
1 精确匹配(/user/addUser.action)
2 路径匹配(/user/*)
3 扩展名匹配(*.action)
4 缺省匹配(/)
“/”是servlet中特殊的匹配模式,优先级最低,不会覆盖其他任何url-pattern,会替换servlet容器的内defaultservlet ,会匹配所有request。

“/*”属于路径匹配,并且可以匹配所有request,由于路径匹配的优先级仅次于精确匹配,所以“/*”会覆盖所有的扩展名匹配,很多404错误均由此引起,

所以这是一种特别恶劣的匹配模式,一般只用于filter的url-pattern (filter会继续下行,servlet只会唯一匹配,不是链形式)

Tomcat目录下的conf/web.xml配置了DefaultServlet和JspServlet,分别为静态资源和jsp文件提供访问提供支持。
Spring MVC3以上,DispatcherServlet直接匹配/会覆盖tomcat默认的defaultservlet,故提供了mvc:resources标签来支持静态资源的访问。

原文地址:https://www.cnblogs.com/cghhnty/p/10274279.html