SpringMVC 是 Spring 的一个模块,与 Spring 是直接整合在一块儿
SpringMVC 是基于 MVC 的 web 框架
MVC:模型-视图-控制器前端
一、标准MVCjava
(1)、是架构型的模型;web
(2)、Model:模型,包含数据和行为,提供模型数据查询和模型数据更新等功能,包含数据和业务;架构
(3)、View:视图,负责模型的展现;app
(4)、Controller:控制器,让模型进行数据处理,让视图进行数据返回和展现;框架
(5)、推模型spa
二、web MVC对象
web是一个请求响应的模型,没法作到模型推送数据blog
三、model1
JSP 负责表现逻辑、业务对象调用、控制逻辑,调用 javaBean 业务对象;
接口
四、model2
(1)、在JavaEE里,web MVC就是指model2的模型;
(2)、servlet做为控制器,JSP做为视图,JavaBean做为模型;
(3)、控制器的问题
a、请求参数封装麻烦;
b、给视图传输共享数据,视图和视图数据严重依赖控制器;
c、控制器逻辑麻烦(增删改查)
(4)、模型:业务和数据,service/dao;
(5)、视图:被绑定为JSP,更换很难;
一、前端控制器:全部的请求都会到达前端控制器;
二、应用控制器:真正的处理请求,视图管理,业务逻辑管理,策略模式;
三、页面控制器(动做):功能处理代码(controller);
四、上下文:全部请求的一些公用的逻辑,数据传递和共享;
生命周期线性图:
总结:
一、DispatcherServlet
(1)、前端控制器,会接收全部请求的servlet;
(2)、全部的交互都是来自于前端处理器,能够减小耦合;
二、HandlerMapping
(1)、处理器映射器;
(2)、将URL映射到Handler,找到的是通过封装的Handler的类型;
三、HandlerExecutionChain
(1)、Handler+interceptor拦截器;
(2)、方法执行前,视图返回前,方法执行完成后,对其附加上通用功能;
四、Handler
(1)、controller
五、HandlerAdapter
(1)、接口,找到适配的类来实现Handler的执行,是真正执行Handler的地方;
六、ViewResolver
(1)、视图解析,将ModelAndView对应的逻辑视图转换为物理视图;
七、View
(1)、接口,不一样的视图实现(JSP,freemarker等);
八、SpringMVC灵活的体现
(1)、拦截器,可自定义拦截器进入执行链;
(2)、HandlerAdapter:执行controller,可自定义adapter执行各类Handler;
(3)、ViewResolver:能够解析不一样的视图;
PS:因做者能力有限,若有误还请谅解;