切换主题
二、组件解析
一、SpringMVC的执行流程

执行流程
- 用户发送请求至前端控制器
DispatcherServlet
DispatcherServet
收到请求调用HandlerMapping
处理器映射器- 处理器映射器找到具体的处理器(可以根据
xml
配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
DispatcherServlet
调用HanderAdapter
处理器适配器。HandlerAdapter
经过适配调用具体的处理器(Controller
,也叫后端控制器)。Controler
执行完成返回ModelAndView
HandlerAdapter
将controller
执行结果ModelAndView
返回给DispatcherServlet
DispatcherServlet
将ModelAndView
传给ViewReslover
视图解析器。ViewReslover
解析后返回具体View
。DispatcherServlet
根据View进行渲染视图(即将模型数据填充至视图中)。DispatcherServlet
响应用户
二、注解解析
1、@RequestMapping
介绍
作用:用于建立请求URL和处理请求方法之间的对应关系
位置:
- 类上,请求URL的第一级访问目录。此处不写的话,就相当于应用的根目录
- 方法上,请求URL的第二级访问目录,与类上的使用
@RequestMapping
标注的一级目录一起组成访问虚拟路径
属性:
value
:用于指定请求的URL。它和path属性的作用是一样的method
:用于指定请求的方式params
:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样例如:
- params={"accountName"},表示请求参数必须有accountName
- params={"moeny!100"},表示请求参数中money不能是100
三、XML配置解析
1、视图解析器
信息
SpringMVC
有默认组件配置,默认组件都是DispatcherServlet.properties
配置文件中配置的,该配置文件地址org/springframework/web/servlet/DispatcherServlet.properties
该文件中配置了默认的视图解析器,如下
xml
org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver
翻看该解析器源码,可以看到该解析器的默认设置,如下:
REDIRECT_URL_PREFIX = "redirect:" --重定向前缀
FORWARD_URL_PREEIX = "forward:" --转发前缀(默认值)
prefix = "; --视图名称前缀
suffix = ""; --视图名称后缀