SpringMVC的执行流程
- 用户发送请求至前端控制台控制器DispatcherServlet
- DispatcherServlet收到请求调用HanderMapping处理映射器
- 处理映射器找到具体的处理器(可以根据xml配置、注解进行查找), 生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
- DispatcherServlet调用HandlerAdapter 处理器适配器
- HandlerAdapter 经过适配调用具体的处理器(Controller , 也叫后端控制器)
- Controller执行完成返回ModelAndView
- HandlerAdapter 将controller 执行结果ModelAndView返回给DispatchServlet
- DispatcherServlet将ModelAndView传给ViewResolve视图解析器
- ViewReslove解析后返回具体的View
- DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中), DispatcherServlet响应客户
SpringMVC注解解析
@RequestMapping —>请求映射
作用: 用于建立请求URL和处理请求方法之间的对应关系
在UserController类上加一个请求映射, 则需要改写一下代码:访问路径也要修改一下
位置:
类上, 请求URL的第一级访问目录, 此处不写的话, 就相当于应用的根目录
方法上, 请求URL的第二级访问目录, 与类上的使用@RequestMapping标注的一级目录一起组成访问虚拟目录
属性
value: 用于指定请求的url, 它和path属性的作用是一样的
method: 用于指定请求的方式
params: 用于指定限制请求参数的条件, 它支持简单的表达式, 要求请求参数的key和value必须和配置的一摸一样
params={“accountName”}, 表示请求参数必须有accountName
params={“money!100”}, 表示请求参数的money不能是100
组件扫描
springMVC基于spring容器, 所以在进行springMVC操作时, 需要将controller存储到spring容器中,如果使用@Controller注解的话, 就需要使用
<context:component-scan base-package="com.controller"/>
进行组件扫描
springMVC的xml文件配置解析(资源解析器)
视图解析器
springmvc有默认的组件配置, 默认组件都是DispatcherServlet.properties配置文件中配置的, 该配置文件地址
org.springframework.web.servlet.view.InternalResourceViewResolver
翻看该解析器源码
知识要点
SpringMVC相关控件
前端控制器DispatcherServlet
处理器映射器 HandleMapping
处理器适配器 HandleAdapter
处理器 Handle
视图解析器 ViewResolver
视图 View
SpringMVC的注解和配置
请求映射注解@RequestMapping
视图解析配置