SpringMvc课件(PPT 61页).pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《SpringMvc课件(PPT 61页).pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SpringMvc课件PPT 61页 SpringMvc 课件 PPT 61
- 资源描述:
-
1、LOGO第1页,共61页。目目 录录 Spring MVC 核心组件Spring MVC 入门简介Spring MVC Demo 实例第2页,共61页。MVCMVC设计思想设计思想MVCMVC即即Model-View-ControllerModel-View-Controller,把一个应用的输入、处理,把一个应用的输入、处理、输出流程按照、输出流程按照ModelModel、ViewView、ControllerController的方的方式进行分离,这样一个应用被分成三个层式进行分离,这样一个应用被分成三个层模模型层、视图层、控制层。型层、视图层、控制层。第3页,共61页。MVCMVC设计思
2、想设计思想 MVC MVC是一种复合模式,结合了观察者模式、是一种复合模式,结合了观察者模式、策略模式、组合模式、适配器模式。策略模式、组合模式、适配器模式。模型使用观察者模式模型使用观察者模式,以便观察者更新,同,以便观察者更新,同时保持两者之间的解耦。控制器是视图的策略,时保持两者之间的解耦。控制器是视图的策略,视图使用组合模式实现用户界面。适配器模式用视图使用组合模式实现用户界面。适配器模式用来将模型适配成符合现有视图和控制器的需要的来将模型适配成符合现有视图和控制器的需要的模型。模型。这些模式合作这些模式合作把把MVCMVC模式的三层解耦。模式的三层解耦。第4页,共61页。MVCMVC
3、设计思想设计思想 视图视图(View)(View)代表用户交互界面,对于代表用户交互界面,对于WebWeb应用来应用来说,可以是说,可以是HTMLHTML,也可能是,也可能是jspjsp、XMLXML和和AppletApplet等。等。一个应用可能有很多不同的视图,一个应用可能有很多不同的视图,MVCMVC设计模式对于设计模式对于视图的处理仅限于视图上数据的采集和处理,以及视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型。业务流程的处理交予模型(Model)(Model)处理。处理。比如
4、一个订单的视图只接受来自模型的数据并比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。递给控制和模型。第5页,共61页。MVCMVC设计思想设计思想 模型模型(Model)(Model):是业务的处理以及业务规则的制定。模型接受视图:是业务的处理以及业务规则的制定。模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计是请求的数据,并返回最终的处理结果。业务模型的设计是MVCMVC最主要的最主要的核心。核心。MVCMVC设计模式告诉我们,把应用的模型按一定的规则抽取出来设计模式告诉我们,把应用的
5、模型按一定的规则抽取出来,抽取的层次很重要,抽象与具体不能隔得太远,也不能太近。,抽取的层次很重要,抽象与具体不能隔得太远,也不能太近。MVCMVC并没有提供模型的设计方法,而只是组织管理这些模型,以便并没有提供模型的设计方法,而只是组织管理这些模型,以便于模型的重构和提高重用性。于模型的重构和提高重用性。业务模型还有一个很重要的模型那就是数据模型。数据模型主业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关库,从数据
6、库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。数据库的操作只限制在该模型中。第6页,共61页。MVCMVC设计思想设计思想 控制控制(Controller)(Controller)可以理解为从用户接收请求可以理解为从用户接收请求,将模型与视将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层型,选择什么样的视图,可以完成什么样的用户请求。
7、控制层并不做任何的数据处理。并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后例如,用户点击一个连接,控制层接受请求后,并不处理业务信并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。,一个视图可能对应多个模型。第7页,共61页。Jsp model 1Jsp model 1架构架构 Model 1的基础是JSP文件,它由一些相互独立的JSP文件和其他一些Java Class组成
8、。这些JSP从HTTP Request中获得所需要的数据,处理业务逻辑,然后将结果通过Response返前端浏览器。Model 1的应该说是唯一的好处是“简单”,可以大大加快系统的开发进度。它把表现层和业务逻辑层柔和在一起,不利于以后的维护工作以及开发角色的分配,所以这种模式只能适合于小的系统开发。第8页,共61页。Jsp model 2Jsp model 2架构架构 Model 2采用面向对象技术实现MVC模式 从而扩展JSP/Servlet的模式。Model2是MVC在Web上的应用。第9页,共61页。一个Model 2规范实现的Web框架 第10页,共61页。一个Model 2规范实现的
9、Web框架 视图层采用JSP实现;控制层采用Servlet实现,整个框架采用同一个Servlet,以实现请求的中转;模型层采用Java实现,主要决定用来做什么;在模型层后添加了一个DAO,目的是将决定做什么和具体怎么做分开。整个Web框架大致的流程是:首先客户端发送请求,提交JSP页面给中转器(Servlet);中转器根据客户的请求,选择相应的模型层,即Logic,Logic进行相应的逻辑处理;如果需要使用数据库,则通过DAO进行相应的数据库操作。第11页,共61页。Spring MVC 架构架构 Spring MVC是结构最清晰的MVC Model 2实现。它的Action也不叫Action
10、,而是称做Controller;Controller接收request,response参数,然后返回ModelAndView(其中的Model不是Object类型,而是Map类型)。但在其它的Web Framework中,Action返回值一般都只是一个View Name;Model则需要通过其它的途径(如request.attribute,Context参数,或Action本身的属性数据)传递上去。第12页,共61页。Spring Web MVC请求处理流程请求处理流程第13页,共61页。Spring MVC 特点特点 清晰的角色划分:控制器(controller)、验证器(validat
11、or)、命令对象(command object)、表单对象(form object)、模型对象(model object)、Servlet分发器(DispatcherServlet)、处理器映射(handler mapping)、视图解析器(view resolver)等。每一个角色都可以由一个专门的对象来实现。强大而直接的配置方式:将框架类和应用程序类都能作为JavaBean配置,支持跨多个context的引用,例如,在web控制器中对业务对象和验证器(validator)的引用。可适配、非侵入:可以根据不同的应用场景,选择合适的控制器子类(simple型、command型、form型、wi
12、zard型、multi-action型或者自定义),而不是从单一控制器(比如Action/ActionForm)继承。第14页,共61页。Spring MVC 特点特点 可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。可定制的绑定(binding)和验证(validation):比如将类型不匹配作为应用级的验证错误,这可以保存错误的值。再比如本地化的日期和数字绑定等等。在其他某些框架中,你只能使用字符串表单对象,需要手动解析它并转换到业务对象。可定制的handler mapping和view resolution:Spring提供从最简单的URL映
13、射,到复杂的、专用的定制策略。与某些web MVC框架强制开发人员使用单一特定技术相比,Spring显得更加灵活。灵活的model转换:在Springweb框架中,使用基于Map的 键/值对来达到轻易地与各种视图技术的集成。第15页,共61页。Spring MVC 特点特点 可定制的本地化和主题(theme)解析:支持在JSP中可选择地使用Spring标签库、支持JSTL、支持Velocity(不需要额外的中间层)等等。简单而强大的JSP标签库(Spring Tag Library):支持包括诸如数据绑定和主题(theme)之类的许多功能。JSP表单标签库:在Spring2.0中引入的表单标签
14、库,使得在JSP中编写 表单更加容易。Spring Bean的生命周期可以被限制在当前的HTTP Request或者HTTP Session。第16页,共61页。目目 录录 Spring MVC 入门简介Spring MVC 核心组件Spring MVC Demo 实例第17页,共61页。Spring MVC Spring MVC 重要组件重要组件1.spring mvc1.spring mvc请所有的请求都提交给请所有的请求都提交给DispatcherServlet,DispatcherServlet,它会委托应用系统的其他它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。模块负责
15、负责对请求进行真正的处理工作。2.DispatcherServlet2.DispatcherServlet查询一个或多个查询一个或多个HandlerMapping,HandlerMapping,找到处理请求的找到处理请求的Controller.Controller.3.DispatcherServlet3.DispatcherServlet请请求提交到目标请请求提交到目标ControllerController4.Controller4.Controller进行业务逻辑处理后,会返回一个进行业务逻辑处理后,会返回一个ModelAndViewModelAndView5.Dispathcher5.
16、Dispathcher查询一个或多个查询一个或多个ViewResolverViewResolver视图解析器视图解析器,找到找到ModelAndViewModelAndView对象指定对象指定的视图对象的视图对象6.6.视图对象负责渲染返回给客户端视图对象负责渲染返回给客户端 第18页,共61页。Spring MVC Spring MVC 架构类图架构类图第19页,共61页。DispatcherServlet第20页,共61页。DispatcherServletv应用了应用了“Front ControllerFront Controller”模式模式 是所有是所有 Spring MVC Spr
17、ing MVC 请求的中枢。请求的中枢。v继承了继承了HttpServletHttpServlet,是一个,是一个ServletServlet,由,由WebApplicationContextWebApplicationContext 加载加载v如果不作其它配置,会加载默认组件如果不作其它配置,会加载默认组件第21页,共61页。在web.xmlweb.xml配配DispatcherServlet web.xml dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/m
18、vc.xml 1第22页,共61页。HandlerMapping第23页,共61页。HandlerMappingv将将webweb请求映射到正确的处理器(请求映射到正确的处理器(handlerhandler)上)上 ,通常是一个通常是一个 ControllerControllerv不需用自定义处理器映射不需用自定义处理器映射 已经内置了很多处理已经内置了很多处理器映射策略器映射策略 v在处理器映射中通过配置拦截器(包括处理器执在处理器映射中通过配置拦截器(包括处理器执行前、执行后、或者执行前后运行拦截器)将使行前、执行后、或者执行前后运行拦截器)将使其功能更强大其功能更强大 第24页,共61页
19、。BeanNameUrlHandlerMappingv把一个把一个 URL URL 影射到一个和它名字相同的已注册的影射到一个和它名字相同的已注册的beanbean 比如比如 /simple/simple 将影射到一个名为将影射到一个名为“/simple/simple”的的beanbean。v可以给可以给beanbean多个名字多个名字 (别名别名)通过空格来分隔通过空格来分隔v必须有一个必须有一个namename属性属性 “/”在在xmlxml中不能定义中不能定义idid属性属性v在在beanbean名字中可以使用通配符名字中可以使用通配符 (/simple(/simple*)v是默认的是默
20、认的 HandlerMapping,HandlerMapping,如果在上下文中没有如果在上下文中没有找到处理器映射,找到处理器映射,DispatcherServletDispatcherServlet会为你创建会为你创建一个一个BeanNameUrlHandlerMappingBeanNameUrlHandlerMapping,但不鼓励,但不鼓励第25页,共61页。BeanNameUrlHandlerMappingdispatcher-servlet.xml 第26页,共61页。SimpleUrlHandlerMappingv最常用的处理器映射,将请求的最常用的处理器映射,将请求的URLs
21、URLs 影射到影射到handlershandlersv由一系列的分别代表由一系列的分别代表URLsURLs 和和beanbean 的名字的的名字的name/valuename/value 对来定义影射。对来定义影射。vBeanBean的名字可以用通配符的名字可以用通配符 (/simple(/simple*)第27页,共61页。SimpleUrlHandlerMappingdispatcher-servlet.xml /simple.htm=simpleController /test*=testController 第28页,共61页。ControllerClassNameHandlerMa
展开阅读全文