版本 :4.2.4 RELEASE
1:对扩展开放 对修改闭合
2:允许其他MVC的实现
只需要在ContextLoaderListener中启动一个Spring的根应用上下文(root application context)
3:一个请求的处理到结束完全有DispacherServlet来处理
web.xml配置
编程方式配置
implements WebApplicationInitializer
4:加载SoringMVC配置文件
默认会找WEB-INF下一个名为[servlet-name]-servlet.xml的配置文件
也可以自己声明一个文件在web.xml中需要声明
5:可以通过RequestContextUtils工具类中的静态方法拿到WebApplicationContext
6:关键类 P20
HandlerMapping - 处理器映射 (处理方法以及拦截器)
HandlerAdapter - 处理器适配器 (具体的实现)
HandlerExceptionReaolver - 处理器异常解析器(异常处理代码)
ViewResolver - 视图解析器(将视图映射到View类上)
LocaleResolver & LocaleContextResolver 地区解析以及地区上下文解析 (支持国际化)
ThemeRosolver - 主题解析器 (解析WEB中的可用主题)
MultipartReaolver - 支持文件上传
FlashMapManager - FlashMap管理器 (可以在重定向中使用)
7:DispatcherServlet 配置问题
其依赖的Bean信息存放在org.springframework.web.servlet下的DispatcherServlet.properties文件
8:处理流程
请求 --> DispatcherContext
1) DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE (上下文对象 - 别的组件可以用) -线程绑定
2) DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE 将地区解析器绑定到请求上
3) DispatcherServlet.THEME_RESOLVER_ATTRIBUTE 将主题解析器绑定到请求上
4) DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME 判断是否需要文件上传组件的绑定
5) 为该请求寻找一个合适的处理器
如果找到就则与该处理器关联的执行链(前后处理器/控制器) 都会被执行 返回模型或视图的渲染
6) 如果是模型 --> 框架渲染相应的视图
如果没有任何模型 会认为请求已经由处理链完成
9:web.xml中的配置
1) contextClass - 实现了WebApplicationContext 接口的类 这个类需要初始化该Servlet所需要的上下文对象
2) contextConfigLocation - SpringMVC 的配置文件路径
10:控制器的实现
@Controller注解可以认为是被标注类的原型(stereotype) - 这个类所承担控制器的角色
@Controller和AOP
如果控制器必须实现一些接口,而该接口又不支持Spring Context的回调(比如InitializingBean, *Aware等接口)
那要配置类级别的代理就必须手动配置了
11:URI 的模板获取参数
@PathVariable
12:寻找模板时会进项精准挑选
13:默认后缀 .* (可能会被黑客攻击利用)
可以关闭
可以限制
14:给变量赋一个默认值
@MatrixVariable(required=false, defaultValue="1" int q) //q的默认值就为1
15:GET /owners/ 42;q=11;r=12 /pets/ 21;q=22;s=23
@MatrixVariable Map<String, String> matrixVars,
@MatrixVariable(pathVar="petId") Map<String, String> petMatrixVars)
// matrixVars: ["q" : [11,22], "r" : 12, "s" : 23]
// petMatrixVars: ["q" : 11, "s" : 23]
16:媒体类型 42//
1:对扩展开放 对修改闭合
2:允许其他MVC的实现
只需要在ContextLoaderListener中启动一个Spring的根应用上下文(root application context)
3:一个请求的处理到结束完全有DispacherServlet来处理
web.xml配置
编程方式配置
implements WebApplicationInitializer
4:加载SoringMVC配置文件
默认会找WEB-INF下一个名为[servlet-name]-servlet.xml的配置文件
也可以自己声明一个文件在web.xml中需要声明
5:可以通过RequestContextUtils工具类中的静态方法拿到WebApplicationContext
6:关键类 P20
HandlerMapping - 处理器映射 (处理方法以及拦截器)
HandlerAdapter - 处理器适配器 (具体的实现)
HandlerExceptionReaolver - 处理器异常解析器(异常处理代码)
ViewResolver - 视图解析器(将视图映射到View类上)
LocaleResolver & LocaleContextResolver 地区解析以及地区上下文解析 (支持国际化)
ThemeRosolver - 主题解析器 (解析WEB中的可用主题)
MultipartReaolver - 支持文件上传
FlashMapManager - FlashMap管理器 (可以在重定向中使用)
7:DispatcherServlet 配置问题
其依赖的Bean信息存放在org.springframework.web.servlet下的DispatcherServlet.properties文件
8:处理流程
请求 --> DispatcherContext
1) DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE (上下文对象 - 别的组件可以用) -线程绑定
2) DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE 将地区解析器绑定到请求上
3) DispatcherServlet.THEME_RESOLVER_ATTRIBUTE 将主题解析器绑定到请求上
4) DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME 判断是否需要文件上传组件的绑定
5) 为该请求寻找一个合适的处理器
如果找到就则与该处理器关联的执行链(前后处理器/控制器) 都会被执行 返回模型或视图的渲染
6) 如果是模型 --> 框架渲染相应的视图
如果没有任何模型 会认为请求已经由处理链完成
9:web.xml中的配置
1) contextClass - 实现了WebApplicationContext 接口的类 这个类需要初始化该Servlet所需要的上下文对象
2) contextConfigLocation - SpringMVC 的配置文件路径
10:控制器的实现
@Controller注解可以认为是被标注类的原型(stereotype) - 这个类所承担控制器的角色
@Controller和AOP
如果控制器必须实现一些接口,而该接口又不支持Spring Context的回调(比如InitializingBean, *Aware等接口)
那要配置类级别的代理就必须手动配置了
11:URI 的模板获取参数
@PathVariable
12:寻找模板时会进项精准挑选
13:默认后缀 .* (可能会被黑客攻击利用)
可以关闭
可以限制
14:给变量赋一个默认值
@MatrixVariable(required=false, defaultValue="1" int q) //q的默认值就为1
15:GET /owners/ 42;q=11;r=12 /pets/ 21;q=22;s=23
@MatrixVariable Map<String, String> matrixVars,
@MatrixVariable(pathVar="petId") Map<String, String> petMatrixVars)
// matrixVars: ["q" : [11,22], "r" : 12, "s" : 23]
// petMatrixVars: ["q" : 11, "s" : 23]
16:媒体类型 42//