文章目录
3.1 SpringMVC的执行流程
前端控制器
只负责调度,SpringMVC中有很多组件,前端控制器负责调用这些组件,他首先就要根据请求知道要找哪些资源,找资源解析资源的过程由处理器映射器
来完成,所以前端控制器
要先请求查询Handler
处理器映射器
负责解析请求,返回的是一串资源地址(处理器执行链,封装着很多资源执行的顺序)
处理器适配器
负责调度要被执行的资源
处理器
可以认为是我们自己写的controller,返回的是ModelAndView
3.2 SpringMVC注解解析 @RequestMapping
虚拟地址映射到某个具体的方法上
@RequestMapping用在方法上:
@RequestMapping用在类上,可以知道请求具体是哪个模块的:
访问,但是404
return "success.jsp"
是在相对当前资源所在的地址
,即http://localhost:8080/user
找success.jsp
return "/success.jsp"
代表从当前web应用下找success.jsp
不携带参数"username"时,报错400
3.3 SpringMVC注解解析 组件扫描
<context:exclude-filter type="annotation" expression="Controller的全包名">
表示扫描com.itheima下所有除了Controller注解外的其他注解
3.4 SpringMVC的XML配置解析
spring-mvc.xml还可以配置一些其他的
如下图中的都可以配置,即可以对他功能进行增强:
假如说是配置ViewResolver,
然后看他的父类UrlBasedViewResolver
- 转发
访问地址和转发后的地址没有变
- 重定向
访问地址:
重定向后的地址:
配置前缀和后缀:
如果将success.jsp放到jsp文件夹下
return就要进行相应的修改
但是如果有很多个方法返回资源,就要写很多个前缀/jsp
和后缀.jsp
可以把前缀和后缀放到spring-mvc.xml中设置
对应的return修改为:
spring-mvc.xml会进行拼接,最后拼接成/jsp/success.jsp
3.5 知识要点
组件的作用:
- 前端控制器:负责调用其他功能组件
- 处理器映射器:负责地址解析,并返回对应的执行链
- 处理器适配器:被前端控制器调用,负责调用处理器
- 处理器:可以认为是Controller,封装特定行为,并返回ModelAndView
- 视图解析器:解析视图
- 视图:封装视图信息