MVC(模型—视图—控制器)模式
MVC将用户接口问题分割为三个截然不同的部分:模型、视图和控制器。模型存储应用的状态。视图解释模型中的数据并将它展示给用户。最后控制器处理用户的输入。
因为表示层是请求驱动的,所以“用户”可以是任意请求的发起者。控制器处理该请求。模型就是业务数据,而视图就是最终发生的应答。控制器是与请求发生联系的起点。控制器就是一个主管,首先规划要做哪些更新和要显示什么视图,然后调用被选择的模式和视图以执行真正的规划。模型的工作是管理对该状态的访问,为控制器和视图提供统一的接口。视图从模型中读取数据,并使用这些数据来生成应答。
从某种程度上来说,J2EE内置了MVC的概念。表达层通常由三个主要的组件构成:Servlet、JSP和JavaBean。JavaBean和EJB形式的模型提供对业务层数据的访问。控制器通常就是一些Servlet和支撑类的集合,用于处理输入和控制导航。最终,视图一般实现为JSP页面和静态HTML。遗憾的是,在J2EE背景中,视图和控制器的分界线很容易混淆。使用Servlet的RequestDispatcher对象来转移控制权,该对象可以用于在服务器内转发请求。通过使用RequestDispatcher,我们可以把请求发送给多个servlet、JSP页面或者不涉及客户端的静态HTML页面。视图是没有状态的。每次它被调用的时候,它必须读取模型数据并把它转换为HTML页面格式。视图必须能够从模型中读取出它的数据。因为控制器已经把JavaBean形式的模型存储在请求中了。虽然使用Jav