1:MVC思想
MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分。
- M:Model,模型层,指工程中的JavaBean,作用是处理数据。
- V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据。
- C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器。
JavaBean分为两类:
- 一类称为实体类Bean:专门存储业务数据的,如 Student、User 等
- 一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。
MVC的工作流程:
用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器。
2:SpringMVC
SpringMVC是Spring的一个后续产品,是Spring的一个子目,基于java实现了webMVC设计思想的请求驱动类型的轻量级Web框架,使用MVC架构模式的思想,将web层进行职责解耦,基于请求驱动值得就是使用请求,响应模型,框架的目的就是帮助简化开发。在表述层框架历经 Strust、WebWork、Strust2 等诸多产品的历代更迭之后,目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案。
注:三层架构分为表述层(或表示层)、业务逻辑层、数据访问层,表述层表示前台页面和后台servlet。
3:SpringMVC执行流程
SpringMVC组件:
- 前端控制器DispatcherServlet:接收请求,协调各个组件工作,最终响应请求。
- 处理器映射器HandlerMapping:对用户请求的URL进行解析,找到对应的Handler(Controller)的调用链。
- 处理器适配器HandlerAdapter:根据处理器映射器HandlerMapping解析的用户请求调用链,通过适配器模式完成Handler的调用,并将处理的结果封装为ModelAndView响应给前端控制器DispatcherServlet。
- 处理器Handler:处理请求(手动开发)。
- 视图模型ModelAndView:用于封装处理器返回的 数据和视图。
- 视图解析器ViewResolver:对ModelAndView进行解析。
- 视图View:完成数据渲染。
工作流程:
- 前端发送请求被前端控制器拦截。
- 前端控制器调用处理器映射器对请求的URL进行解析,解析后返回给前端控制器
- 前端控制器调用处理器适配器。
- 处理器适配器基于反射通过适配器设计模式,完成对处理器的调用,处理用户请求。
- 处理器适配器将控制器返回的视图和数据信息封装为ModelAndView响应给前端控制器。
- 前端控制器调用视图解析器对ModelAndView进行解析,将视图资源和数据响应给前端控制器。
- 前端控制器调用视图将数据进行渲染,将静态视图响应给前端控制器。
- 前端控制器响应用户请求。