springmvc简介
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
springmvc分为前端控制器和应用控制器.前端控制器是DispatcherServlet;应用控制器是处理器映射器进行处理器管理和视图解析器进行视图管理,页面控制器/动作/处理器为Controller接口的实现;支持本地化解析,主题解析及文件上传等;提供了非常灵活的数据验证,格式化和数据绑定机制;提供了约定大于配置的契约式编程支持.
使用请求-响应模型
web端(及浏览器)发送请求------->web服务器(tomcat一般),服务器接收请求,并处理产生响应--->web端(浏览器)接收响应并渲染
mvc
Mvc(Model-View-Controller)三元组. model(模型):数据模型,类似于javabean或领域模型(包含数据和行为),但是现在分开了,分成value
object(数据)和服务层(行为),模型提供模型数据查询和模型数据的状态更新等功能(数据和业务)
View(视图):模型的展示,即用户界面 Controller(控制器):接收用户请求,委托给模型处理,处理完了把返回的模型数据返回给视图,视图进行渲染并展示
webmvc与myc的区别
Webmvc中的模型无法直接发送数据给视图,如果视图想要更新,需要再发一次请求
Springmvc的架构
Springmvc是基于请求驱动的文本框架,使用前端控制器模式进行设计,在根据请求映射规则到相应的页面控制器进行处理
springmvc处理请求的流程
用户发送请求 —>前端控制器,前端控制器根据请求信息来决定选择哪个页面控制器进行处理并把请求委托给页面控制器 —–>页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象(命令对象),并进行验证,最后将命令对象委托给业务对象进行处理没处理完毕后放回一个modelandview —>前端控制器收回控制权,根据返回的视图名,选择视图进行渲染,并把相应的数据模型传给视图 —->前端控制器再次收回控制权,将响应返回给用户
spring web mvc 核心架构
用户发送请求—>dispatcherservler,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制 dispatcherservler–>handlermapper,handlermapper将请求映射为handlerExeutionChain对象(包含一个handler处理器对象(页面控制器),多个handlerinterceptor拦截器对象),通过这个策略模式,很容易的添加新的映射策略 dispatcherservler—>handleradapter,handleradapter将处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易的支持很多类型的处理器 handleradapter—>处理器功能处理方法的调用,handler将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理,并返回一个modelandview对象(包含模型数据,逻辑视图名) modeladnview的逻辑视图名—>viewresolver,viewresolver将把逻辑视图名解析为具体的view,通过这种策略模式,很容易更换其他视图技术 view—>渲染,view会根据model模型数据(map)进行渲染 返回控制权给dispatcherserlvlet,由于dispatcherservlet返回响应给用户