MVC
1、Struts2由传统的Struts1和WebWork两个经典的MVC框架发展起来。
2、Java Web 应用的结构经历了Model 1 和 Model 2 两个时代。
3、在Model 1 时代下,整个Web应用几乎全部由JSP页面组成,JSP页面接受处理客户端的请求,对请求处理后直接作出响应。用少量的JavaBean来处理数据库的连接、数据库访问等操作。
4、Model 1 的模式实现比较简单,使用与快速开发小规模项目。但从工程化的角度看,它的局限性非常明显:JSP页面身兼View 和Controller两种角色,将控制逻辑好表现逻辑混杂在一起,从而导致代码的重用性非常低,增加了应用的扩展性和维护的难度。
5、Model 2 已经是基于MVC架构的设计模式。在Model 2 架构中,Servlet 作为前端控制器,负责接收客户端发送的请求,在Servlet 中只包含逻辑和简单的前端处理;然后,调用后端的JavaBean来完成实际的逻辑处理,最后转发到响应的JSP页面显示逻辑。如下图所示:
6、在Model 2 模式下,JSP不再承担控制器的责任,它仅仅是表现层角色,仅仅用于将结果呈献给用户,JSP页面的请求与Servlet(控制器)交互,而Servlet负责与后台的JavaBean通信,在Model 2 模式下,模型(Model)由JavaBean充当,视图(View)由JSP页面充当,而控制器(Controller)则由Servlet充当。
7、从某种程度上讲,Model 2 为了降低系统后期维护的复杂度,却导致前期开发的更高复杂度。
8、MVC思想将一个应用分成三个基本部分,Model(模型)、View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性和可维护性。
9、在经典的MVC模式中,事件由控制器处理,控制器根据事件的类型改变模型或视图,反之亦然。具体地说,每个模型对应一系列视图列表,这种对应关系通常采用注册来完成,即:把多个视图注册到同一个模型,当模型发生改变时,模型想所有注册过的视图发送通知,接下来,视图从对应的模型中获得信息,然后完成视图的更新。
10、从设计模式的角度来看,MVC思想非常类似于观察者模式,但与观察者模式存在少许差别:观察者模式先的观察者和被观察者可以是两个相互对等的对象,但对于MVC而言,被观察者往往只是单纯的数据体,而观察者则是单纯的视图页面。
11、MVC的特点:
·多个视图可以对应一个模型,按MVC设计模式,一个模型对应多个视图,可以减少代码复制及代码的维护量,一旦模型发生改变,也易于维护。
·模型返回的数据与显示逻辑分离。模型数据可以应用