Spring的MVC框架.ppt
《Spring的MVC框架.ppt》由会员分享,可在线阅读,更多相关《Spring的MVC框架.ppt(29页珍藏版)》请在三一办公上搜索。
1、第21章 Spring 的MVC框架,Spring不但一个很好的集成框剪,它还提供了构建Web应用程序的全功能MVC模块。Spring 的MVC框架非常强大并不逊色于其他专业的Web框架,如Struts、WebWork。但在国内Spring MVC应用的并不是特别多,原因可能是Struts太深入人心的缘故吧。虽然Spring MVC并不是本书的重点,但了解它的结构和原理也是十分有好处的。,21.1 Spring MVC简介,Spring的MVC Web 框架是高度可配置的,而且包含多种视图技术,例如JSP、Velocity、Tiles和iText。Spring MVC 分离了控制器、模型对象、
2、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。,21.1.1 Spring MVC的结构,Spring的web框架是围绕DispatcherServlet来进行设计的。DispatcherServlet的作用是将请求分发到不同的处理器。Spring的web框架包括可配置的处理器(handler)映射、视图(view)解析、本地化(local)解析、主题(theme)解析以及对上传文件解析。处理器是对Controller接口的实现,该接口仅仅定义了ModelAndView handleRequest(request,response)方法。可以通过实现这个接口来生成自己的控制器(也
3、可以称之为处理器),但是从Spring提供的一系列控制器继承会更省事,比如AbstractController、AbstractCommandController和SimpleFormController。,21.1.2 Spring Web MVC框架的特点,Spring Web MVC框架提供了大量独特的功能,包括:清晰的角色划分:控制器(controller)、验证器(validator)、命令对象(command object)、表单对象(form object)、模型对象(model object)、Servlet分发器(DispatcherServlet)、处理器映射(handle
4、r mapping)、视图解析器(view resolver)等等。每一个角色都可以由一个专门的对象来实现。强大而直接的配置方式:将框架类和应用类都作为JavaBean配置,支持在一个context中引用其他context的中JavaBean,例如,在web控制器中对业务对象和验证器(validator)的引用。,21.1.2 Spring Web MVC框架的特点,可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要在类似ActionForm的子类中重复它们的定义。可定制的绑定(binding)和验证(validation):比如将类型不匹配作为应用级的验证错误,这可以保存错
5、误的值。再比如本地化的日期和数字绑定等等。在其他某些框架中,只能使用字符串表单对象,需要手动解析它并转换到业务对象。可定制的handler mapping和view resolution:Spring提供从最简单的的URL映射,到复杂的、专用的定制策略。与某些MVC框架强制开发人员使用单一特定技术相比,Spring显得更加灵活。灵活。,21.1.2 Spring Web MVC框架的特点,灵活的model转换:在Springweb框架中,使用基于Map的名/值对来达到轻易地与各种视图技术的集成。可定制的本地化和主题(theme)解析:支持在JSP中可选择地使用Spring标签库、支持JSTL、
6、支持Velocity(不需要额外的中间层)等等。Spring Bean的生命周期可以被限制在当前的HTTP Request或者HTTP Session。准确的说,这并非Spring MVC框架本身特性,而应归属于Sping MVC使用的WebApplicationContext容器。,21.2 DispatcherServlet的功能,和其它web框架一样,Spring的web框架是一个请求驱动的web框架,其设计围绕一个中心的servlet进行,它能将请求分发给控制器,并提供其它功能帮助web应用开发。然而,Spring的DispatcherServlet所做的不仅仅是这些,它和Spring
7、的IoC容器完全集成在一起,从而允许使用Spring的其它功能。,21.2.1 在Web服务器中配置DispatcherServlet,DispatcherServlet顾名思义实际上还是一个Servlet。和其它Servlet一样,DispatcherServlet定义在web应用的web.xml文件里。DispatcherServlet处理的请求必须在同一个web.xml文件里使用url-mapping定义映射。如代码21-1所示演示了如何配置DispatcherServlet。,21.2.2 加载Bean配置文件,当DispatcherServlet配置好以后,DispatcherSer
8、vlet接收到与其对应的请求之时,处理就开始了。下面的列表描述了DispatcherServlet处理请求的全过程:(1)找到WebApplicationContext并将其绑定到请求的一个属性上,以便控制器和处理链上的其它处理器能使用WebApplicationContext。默认的属性名为DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE。(2)将本地化解析器(localResolver)绑定到请求上,这样使得处理链上的处理器在处理请求(准备数据、显示视图等等)时能进行本地化处理。若不使用本地化解析器,也不会有任何副作用,因此如果不需要本
9、地化解析,忽略它就可以了。,21.2.2 加载Bean配置文件,(3)如果上传文件解析器被指定,Spring会检查每个接收到的请求是否存在上传文件,如果是,这个请求将被封装成MultipartHttpServletRequest以便被处理链中的其它处理器使用。(4)找到合适的处理器,执行和这个处理器相关的执行链(预处理器,后处理器,控制器),以便为视图准备模型数据。(5)如果模型数据被返回,就使用配置在WebApplicationContext中的视图解析器显示视图,否则视图不会被显示。有多种原因可以导致返回的数据模型为空,比如预处理器或后处理器可能截取了请求,这可能是出于安全原因,也可能是请
10、求已经被处理过,没有必要再处理一次。,21.2.3 Spring Web应用的上下文,WebApplicationContext仅仅是一个拥有web应用必要功能的普通ApplicationContext。它与一个标准的ApplicationContext的不同之处在于,它能够解析加载主题,并且它知道自己与哪个servlet相关联(通过ServletContext)。WebApplicationContext被绑定在ServletContext上,当需要的时候,可以使用RequestContextUtils提供的静态方法找到WebApplicationContext。Spring的Dispatc
11、herServlet有一组特殊的bean,用来处理请求和渲染相应的视图。这些bean包含在Spring的框架里,可以在WebApplicationContext中配置,配置方式与配置其它bean相同。这些bean中的每一个都在下文作详细描述。此刻读者只需知道它们的存在,便继续对DispatcherServlet进行讨论。对大多数bean,Spring都提供了合理的缺省值,所以在开始阶段,不必担心如何对其进行配置。,21.3 控制器(Controller),控制器的概念是MVC设计模式的一部分,在其他Web框架中常常被称为Action,而在Spring MVC中叫做Controller。应用程序
12、的行为通常被定义为服务接口,而控制器使得用户可以访问应用所提供的服务。控制器解析用户输入,并将其转换成合理的模型数据,从而可以进一步由视图展示给用户。Spring以一种抽象的方式实现了控制器概念,这样使得不同类型的控制器可以被创建。Spring本身包含表单控制器、命令控制器、向导型控制器等多种多样的控制器。可以发现Controller接口仅仅声明了一个方法,它负责处理请求并返回合适的模型和视图。虽然Controller接口是完全抽象的,Controller接口仅仅定义了每个控制器都必须提供的基本功能:处理请求并返回一个模型和一个视图。但Spring也提供了许多可能会用到的控制器。可以直接使用或
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spring MVC 框架
链接地址:https://www.31ppt.com/p-5449078.html