点击【 大 中 小 】,可以选择字体的大小,以便你阅读.
1 MVC结构原理概述
JSP技术的深入发展极大推动了网络应用程序的开发,但是随着Web应用程序工程复杂度的增加,单纯的JSP技术已难以满足需求。MVC模型便在此背景下,经过众多研发人员的努力而提出。MVC即模型视图控制器(Model-View-Control),这3个组件映射到3个主要的实现技术--Bean,JSP以及Servlet,其组件之间的相互作用如图1[1]所示。

图1 MVC结构原理
在图1中,模型(Beans)主要执行工程中业务逻辑的功能,比如保存处理数据、与数据库连接、拼装SQL语句等。视图(JSP)主要执行显示逻辑的功能,即将获取的数据动态显示于网页上。控制器(Servlet)是模型和视图的粘和剂,向模型和视图提供逻辑处理层和授权,即对不同事件调用相应的视图和模型。该种结构成功解决了JSP页面中由于JAVA代码(Scriptlet)太多而导致的层次不清,逻辑混乱等问题。
MVC通过代码分离和开发者角色的分离使工程开发具备了下列优点:
(1) 松散的耦合
各个设计组件功能分工明确,且以灵活的方式相互作用,组件之间以清晰的方式传送信息,使得程序维护十分轻松。
(2) 并行的开发
可以轻松地将功能划分为不同地组件,使开发人员担当不同的角色,比如HTML页面开发者、JAVA软件开发者,从而大大提高了工程开发的效率。
(3) 重用性
控制器作为整个工程的转发中心,是大部分应用程序的公共基础。同时一些公用代码,如和数据库的连接等可以写成基类或接口,通过继承达到重用的目的。
(4) 扩展性
程序的功能随着客户的需求而增加,当某一新功能需加入应用程序时,可维持MVC基本框架不变,只需加入对应的模型(Beans)和视图(JSP)并修改配置文件便可,从而使应用程序有着良好的可扩展性。
2 MVC结构的组件
2.1模型(Beans)
模型组件的实现技术是JAVA语言中的Bean,它实质上是一个维护一些数据,具有一些方法并遵循编码约定的类。编辑一个Bean所必须遵循的约定如下:
(1) 实现Java.io.Serializable或java.io.Externalizable接口;
(2) 提供无变量的构造函数;
(3) 私有属性必须具有相对应的获取/设置方法。
Bean技术封装了实现业务逻辑的具体代码,比如利用JDBC桥与Oracle数据库连接,根据查询条件形成SQL语句,提取数据,保存数据等功能,可以说Bean是编写具体事件处理代码的最好场所。
2.2 视图(JSP)
视图组件的实现技术是JSP。JSP就是在HTML网页中包含了能够生成动态内容的可执行应用程序代码。此应用程序可能包含JavaBean、JDBC对象、Enterprise Java Bean(EJB)和Remote Method Invocation(RMI)对象,所有的部分都可以非常容易的从JSP网页上访问到。使用JSP技术,Web页面设计人员可以使用HTML或者XML标识来设计和格式化页面。使用JSP标识(tag)或者脚本(Scriptlet)来生成页面上的动态内容。生成内容中的业务逻辑被封装在标识和JavaBeans组件中,可捆绑在脚本中。可以说JSP在展示数据方面功能十分强大。JSP中具有4个可直接使用的不同范围的对象,如表1所示。
表1 JSP中的对象

2.3控制器(Servlet)
控制器的实现技术是Servlet。Servlet是一种基于请求/应答的工作模式[2],其主要特点是:
(1) 高效
Servlet技术,为每一个请求创建一个轻量极(Lightweighted)的线程来处理。由于线程占据的系统资源远远小于进程,所以有效避免了CGI中因为每个请求创建进程而引起的资源紧张、效率偏低的问题;
(2) 具备JAVA的所有优点