欢迎来到天天文库
浏览记录
ID:40731966
大小:1.80 MB
页数:61页
时间:2019-08-06
《博和利高级培训第六讲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SpringMVC技术交流作者:翁玉鹏目录2SpringMVC核心组件1SpringMVC入门简介3SpringMVCDemo实例MVC设计思想MVC即Model-View-Controller,把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。MVC设计思想MVC是一种复合模式,结合了观察者模式、策略模式、组合模式、适配器模式。模型使用观察者模式,以便观察者更新,同时保持两者之间的解耦。控制器是视图的策略,视图使用组合模式实现用户界面。适配器模式用来将模型适
2、配成符合现有视图和控制器的需要的模型。这些模式合作把MVC模式的三层解耦。MVC设计思想视图(View)代表用户交互界面,对于Web应用来说,可以是HTML,也可能是jsp、XML和Applet等。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。MVC设计思想模型(Model):是业务的处理以及业务规则的制定。模型接受视图请求
3、的数据,并返回最终的处理结果。业务模型的设计是MVC最主要的核心。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只是组织管理这些模型,以便于模型的重构和提高重用性。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。MVC设计思想控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同
4、完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。Jspmodel1架构Model1的基础是JSP文件,它由一些相互独立的JSP文件和其他一些JavaClass组成。这些JSP从HTTPRequest中获得所需要的数据,处理业务逻辑,然后将结果通过Re
5、sponse返前端浏览器。Model1的应该说是唯一的好处是“简单”,可以大大加快系统的开发进度。它把表现层和业务逻辑层柔和在一起,不利于以后的维护工作以及开发角色的分配,所以这种模式只能适合于小的系统开发。Jspmodel2架构Model2采用面向对象技术实现MVC模式从而扩展JSP/Servlet的模式。Model2是MVC在Web上的应用。一个Model2规范实现的Web框架一个Model2规范实现的Web框架视图层采用JSP实现;控制层采用Servlet实现,整个框架采用同一个Servlet,以实现请求的中转;模型层采用Java实现,主要决定用来
6、做什么;在模型层后添加了一个DAO,目的是将决定做什么和具体怎么做分开。整个Web框架大致的流程是:首先客户端发送请求,提交JSP页面给中转器(Servlet);中转器根据客户的请求,选择相应的模型层,即Logic,Logic进行相应的逻辑处理;如果需要使用数据库,则通过DAO进行相应的数据库操作。SpringMVC架构SpringMVC是结构最清晰的MVCModel2实现。它的Action也不叫Action,而是称做Controller;Controller接收request,response参数,然后返回ModelAndView(其中的Model不是
7、Object类型,而是Map类型)。但在其它的WebFramework中,Action返回值一般都只是一个ViewName;Model则需要通过其它的途径(如request.attribute,Context参数,或Action本身的属性数据)传递上去。SpringWebMVC请求处理流程SpringMVC特点清晰的角色划分:控制器(controller)、验证器(validator)、命令对象(commandobject)、表单对象(formobject)、模型对象(modelobject)、Servlet分发器(DispatcherServlet)、
8、处理器映射(handlermapping)、视图解析器(viewresolver
此文档下载收益归作者所有