什么是MVC?
MVC是Model(模型)、View(视图)、Controller(控制器)3个单词首字母的组合,是目前被广泛的应用的模型。
1)模型层实现业务逻辑,通常是JAVABean实现,
2)视图层是用于与用户的交互,由JSP实现;
3)控制层是模型层与视图层之间的沟通的桥梁,它可以把用户的请求分派并选择合适的视图显示他们,并且也可以解释用户的输入并将其映射到模型层能执行的操作。
Spring MVC是基于模型-视图-控制器模式实现的,他能够构建像spring框架那样灵活和松耦合的web应用程序。其请求在调度的servlet、handlerMapping、控制器、视图解析器之间完成的。
1.首先spring的DispatcherServlet。通常情况下Spring MVC所有的请求是通过一个前端控制器Servlet。
2.DispatcherServlet的任务是将请求发送给spring Mvc 的controller,控制器是用来处理请求的spring组件,在一般的应用程序当中可能会有多个控制器,所以DispatcherServlet需要知道发送给哪个控制器,这时就需要查询一个或者多个handler mapping来确定请求的下一站在哪里。处理器映射会根据请求所带的url信息进行决策。
3.一旦选择了合适的控制器,DispatcherServlet就会将请求的发送给选中的控制器,然后就耐心等待控制器处理的这些信息。
4.控制器完成逻辑处理后,通常会产生一些信息,这些信息需要返回给用户的并在浏览器上显示,这些信息称为模型(model)。控制器将模型数据打包,并且标识出用于渲染输出视图名,连同模型和视图名发送给DispatcherServlet..
5.这样控制器就不会与特定的视图相耦合,传递给DispatcherServlet视图名并不直接表示某个特定的jsp.它仅仅传递的是一个逻辑名,这个名字将会用来查找产生结果的真正视图。DispatcherServlet将会使用视图解析器将逻辑名匹配到特定的视图实现,它可能是也可能不是jsp.
6.DispatcherServlet知道由哪个视图渲染结果,那请求任务基本上就完成了,最后实现视图的实现。
7.请求任务完成了,视图将使用模型数据渲染输出,这个输出会通过响应对象传递给客户端。
1.处理器映射器
* 默认视图解析器(BeanNameUrlHandlerMapping)
* 集中配置处理器映射器(SimpleUrlHandlerMapping)
功能:寻找Controller
根据浏览器url匹配简单url的key,key又Controller的id找到Controller
* 类名处理器映射器(ClassNameHandlerMapping)
2.处理器适配器
* 默认使用的处理器适配器(SimpleControllerHandlerAdapt)
* 请求处理器适配器(HttpControllerHandlerAdapt)
3.控制器
* 普通控制器(继承接口Controller,HttpRequestHandler)
* 命令控制器(CommandController)
例子:跳转到添加页面,进行页面跳转,参数提交post请求
* 参数控制器(parameterizabled)