SpringMVC
SpringMVC
????????????????????????????
SpringMVC工作组件:
名称 | 作用 | |||
---|---|---|---|---|
DispatcherServlet | 前端控制器 | 不需要开发,由框架所提供 | 接受请求,响应结果,相当于转发器,中央处理器,为整个流程控制的中心 | 用户请求到达前端控制器,相当于MVC中的C,DispatcherServlet为整个流程控制的中心,由它调用其他组件调用用户的请求,DispatcherServlet组件降低了组件之间的耦合性 |
HandlerMapping | 处理映射器 | 不需要开发,由框架提供 | 根据请求的URL查找Handler | HandlerMapping负责根据用户请求找到Handler,即处理器,SpringMVC实现了根据不同的映射器实现不同的映射方式,比如:配置文件方式,实现接口方式,注解方式等 |
HandlerAdapter | 处理适配器 | 按照特定规则(HandlerAdapter)去执行Handler | 通过HandlerAdapter对处理器进行执行,这是适配器的应用,通过扩展适配器可以对更多类型的处理器进行执行 | |
Handler | 处理器 | 由工程师开发 | 注:编写Handler时,按照HandlerAdapter的要求去做,这样适配器才能正确的执行Handler | Handler是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下 Handler对用户具体的请求进行处理。 |
View resolver | 视图解析器 | 不需要开发,由框架提供 | 进行视图解析,根据逻辑视图名解析成真正的视图(view) | View resolver 负责将处理结果生成view视图,View resolver 首先根据逻辑视图名解析成物理视图名,即具体的页面地址,在生产view视图对象,最后对View进行渲染将处理结果将处理结果通过页面展示给用户。SpringMVC提供了很多View视图类型,包括:jstlView、freemarkerView、pdfView等。 |
View | 视图 | View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…) |
SpringMVC的工作原理:
SpringMVC的工作流程:
- 用户发送请求至前端控制器DispatcherServlet;
- DispatcherServlet收到请求调用HandlerMapping处理映射器;
- 处理映射器找到具体的处理器(可根据XML、注解的方式查找),生成处理器对象以及处理器拦截器(如果有则生产)一并返回给DispatcherServlet;
- DispatcherServlet调用HandlerAdapter处理器适配器;
- HandlerAdapter经过适配/调用具体的处理器Handler(Controller,也叫后端控制器);
- Controller执行完返回ModelAndView;
- HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet;
- DispatcherServlet将ModelAndView的传给ViewReslover视图解析器;
- ViewReslover解析后返回具体的View;
- DispatcherServlet根据具体的视图渲染视图(即模型数据填充至视图中);
- DispatcherServlet响应用户;
MVC模式
MVC:MVC是一种设计模式
MVC原理图
分析:
M-Model 模型(完成业务逻辑:由JavaBean构成,service+dao+entity)
V-View 视图(做界面的展示 jsp,html…)
C-Controller控制器(接受请求——>调用模型——>根据结果派发页面)
SpringMVC是什么
SpringMVC是一个MVC开源的框架,SpringMVC=struts2+Spring,SpringMVC 就相当于是Struts2加上Spring的整合(本质上来说SpringMVC是Spring的一个后续产品,其实就是在Spring原有的基础上,又提供了WEB应用的MVC模块,可以简单的把SpringMVC理解为Spring的一个子模块,类似于AOP,IOC这样的模块,所以根本不需要Spring整合)。
SpringMVC原理图
前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。
处理器映射器(HandlerMapping):根据URL去查找处理器
处理器(Handler):(需要程序员去写代码处理逻辑的)
处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就可以支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用)
视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面