- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
springMVC学习springMVC学习
2.1、Spring Web MVC是什么
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
?
另外还有一种基于组件的、事件驱动的Web框架在此就不介绍了,如Tapestry、JSF等。
?
Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response)?方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。
√让我们能非常简单的设计出干净的Web层和薄薄的Web层;
√进行更简洁的Web层的开发;
√天生与Spring框架集成(如IoC容器、AOP等);
√提供强大的约定大于配置的契约式编程支持;
√能简单的进行Web层的单元测试;
√支持灵活的URL到页面控制器的映射;
√非常容易与其他视图技术集成,如Velocity、FreeMarker等等,因为模型数据不放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用);
√非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API;
√提供一套强大的JSP标签库,简化JSP开发;
√支持灵活的本地化、主题等解析;
√更加简单的异常处理;
√对静态资源的支持;
√支持Restful风格。
Spring Web MVC框架也是一个基于请求驱动的Web框架,并且也使用了前端控制器模式来进行设计,再根据请求映射规则分发给相应的页面控制器(动作/处理器)进行处理。首先让我们整体看一下Spring Web MVC处理请求的流程:
?
如图2-1
?
图2-1
具体执行步骤如下:
1、? 首先用户发送请求————前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图2-1中的1、2步骤;
2、? 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图2-1中的3、4、5步骤;
3、? 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图2-1中的步骤6、7;
4、? 前端控制器再次收回控制权,将响应返回给用户,图2-1中的步骤8;至此整个结束。
?
问题:
1、? 请求如何给前端控制器?
2、? 前端控制器如何根据请求信息选择页面控制器进行功能处理?
3、? 如何支持多种页面控制器呢?
4、? 如何页面控制器如何使用业务对象?
5、? 页面控制器如何返回模型数据?
6、? 前端控制器如何根据页面控制器返回的逻辑视图名选择具体的视图进行渲染?
7、? 不同的视图技术如何使用相应的模型数据?
?
首先我们知道有如上问题,那这些问题如何解决呢?请让我们先继续,在后边依次回答。
?
1、Spring Web MVC核心架构图,如图2-2
?
图2-2
?
?
架构图对应的DispatcherServlet核心代码如下:
?
java代码:
Java代码??
//前端控制器分派方法??
protected?void?doDispatch(HttpServletRequest?request,?HttpServletResponse?response)?throws?Exception?{??
????????HttpServletRequest?processedRequest?=?request;??
????????HandlerExecutionChain?mappedHandler?=?null;??
????????int?interceptorIndex?=?-1;??
??
????????try?{??
????????????ModelAndView?mv;?
您可能关注的文档
- skype服务营销skype服务营销.doc
- SLF4J中文手册SLF4J中文手册.doc
- skp许多技巧skp许多技巧.doc
- SCNU信息汇总SCNU信息汇总.docx
- SKKX加盟合作协议书SKKX加盟合作协议书.doc
- sgip错误码sgip错误码.doc
- SMA10CASMA10CA.doc
- smarty缓存smarty缓存.doc
- SMART原则SMART原则.doc
- Smarty笔记Smarty笔记.doc
- 冀教版四年级上册数学第四单元 线和角 测试卷含答案【b卷】.docx
- 冀教版四年级上册数学第四单元 线和角 测试卷含完整答案(网校专用).docx
- 中山翠亨新区建筑信息模型(BIM)交付标准.pdf
- 冀教版四年级上册数学第四单元 线和角 测试卷含完整答案(名校卷).docx
- 冀教版四年级上册数学第四单元 线和角 测试卷含完整答案(夺冠).docx
- 冀教版四年级上册数学第四单元 线和角 测试卷含完整答案(历年真题).docx
- 冀教版四年级上册数学第四单元 线和角 测试卷含答案【b卷】.docx
- 冀教版四年级上册数学第四单元 线和角 测试卷含完整答案(名师系列).docx
- 冀教版四年级上册数学第四单元 线和角 测试卷含完整答案(有一套).docx
- 冀教版四年级上册数学第四单元 线和角 测试卷含完整答案【精品】.docx
最近下载
- (19三96)山西省尧都区部分联校课堂教学模式改革的研究与实践(名校课模讲座三之96).doc
- 硬笔楷书字帖常用字练习完整版整理.pdf
- 魏氏组织的形成原因及如何解决.doc
- 入职(电气技术员)测试题(含答案).doc
- 2022-2023年副主任医师(副高)-健康教育与健康促进(副高)考试题库1(含答案).docx VIP
- 2024年化工企业安全管理人员试题试题库真题A4版打印.docx
- 2023年PLC及其应用理论知识考核试题及答案.pdf
- 2024年电气控制与PLC专业知识考试题库及答案(含A.B卷).pdf VIP
- 使用林地可行性报告编写规范.pdf VIP
- 水产品 投标方案(技术方案).doc
文档评论(0)