(1)前端控制器dispatcherservlet(配置表就行)
功能:中央处理器,可以接收请求,自己不做任何处理,只不过是将请求发送中给其他组件接受处理。dispatcherservlet是整个流程的控制中心。
(2)处理器映射器handlermapping(配置表就行)
功能:参照dispatcherservlet邮箱里的url只是请求路径查找handler
最常见的处理器映射器
:beannameurlhandlermapping,simpleurlhandlermapping,controllerclassnamehandlermapping,defaultannotationhandlermapping(不个人建议不使用)
(3)处理器适配器handleradapter(配置即可解决)
功能:按照特定的事件规则(handleradapter要求的规则)去不能执行handler。
是从handleradapter对处理器通过想执行,这是适配器模式的应用,按照扩展多个适配器对许多类型的处理器并且先执行。
最常见的一种的处理器适配器
:httprequesthandleradapter,simplecontrollerhandleradapter,annotationmethodhandleradapter
(4)处理器handler即controller(程序猿c语言设计)
功能:c语言设计handler时通过handleradapter的要求要做,那样适配器才也可以去正确的执行handler。
(5)视图解析器viewreslover(配置即可)
功能:接受视图解析,依据逻辑视图名解析成完全的视图。
viewresolver全权负责将处理结果化合view视图,viewresolver是需要根据逻辑视图名解析成物理视图名即具体看的页面地址,再化合view视图对象,到最后对view进行渲出将处理结果是从页面展示展示给用户。
springmvc框架提供给了功能高效view视图类型,如:jstlview、freemarkerview、pdfview...
(6)视图view(程序猿c语言设计)
view是一个接口,利用类支持差别的view类型(jsp、freemarker、pdf...)
springmvc工作流程描述:
1.用户向服务器发送跪请,只是请求被spring前端再控制serveltdispatcherservlet捕获;
2.dispatcherservlet对各位url参与解析,得到请求资源标识符(uri)。然后把依据什么该uri,动态链接库handlermapping我得到该handler配置的所有相关的对象(除开handler对象这些handler对象不对应的拦截器),后来以handlerexecutionchain对象的形式回;
3.dispatcherservlet依据完成任务的handler,选择类型一个比较好的handleradapter;
4.提纯request中的模型数据,填充后handler入参,又开始先执行handler(controller)。在填充handler的入参过程中,依据你的配置,spring将帮你做一些额外的工作:httpmessageconveter:将帮忙消息(如json、xml等数据)可以转换成一个对象,将对象转换成为委托的响应信息。数据转换:对只是请求消息进行数据转换。如string装换成integer、slip等。数据根式化:对跪请消息通过数据磁盘格式化。如将字符串转换的成磁盘格式化数字或格式化日期等。数据不验证:不验证数据的有效性(长度、格式等),验证结果存储位置到bindingresult或error中。
5.handler先执行能完成后,向dispatcherservlet前往一个modelandview对象;
6.依据什么直接返回的modelandview,中,选择一个合适的viewresolver(必须是巳经需要注册到spring容器中的viewresolver)回给dispatcherservlet;
增强model和view,来软件渲染视图;
8.将渲染结果返回给客户端。