最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

J2EE平台上MVC设计模式的研究与实现

来源:动视网 责编:小OO 时间:2025-09-30 08:23:09
文档

J2EE平台上MVC设计模式的研究与实现

收稿日期:2002203210J2EE平台上MVC设计模式的研究与实现陆荣幸,郁洲,阮永良,王志强(同济大学计算机科学与工程系,上海200331)摘要:简要介绍了MVC模式思想,讨论了J2EE技术,同时以MVC模式思想构筑了J2EE企业应用平台。关键词:MVC;JSP;Servlet;EJB中图法分类号:TP3931092文献标识码:A文章编号:100123695(2003)0320144203StudyandImplementationofMVCDesignPatternonJ2EEPlat
推荐度:
导读收稿日期:2002203210J2EE平台上MVC设计模式的研究与实现陆荣幸,郁洲,阮永良,王志强(同济大学计算机科学与工程系,上海200331)摘要:简要介绍了MVC模式思想,讨论了J2EE技术,同时以MVC模式思想构筑了J2EE企业应用平台。关键词:MVC;JSP;Servlet;EJB中图法分类号:TP3931092文献标识码:A文章编号:100123695(2003)0320144203StudyandImplementationofMVCDesignPatternonJ2EEPlat
收稿日期:2002203210

J 2EE 平台上MVC 设计模式的研究与实现

陆荣幸,郁 洲,阮永良,王志强

(同济大学计算机科学与工程系,上海200331)

摘 要:简要介绍了M VC 模式思想,讨论了J2EE 技术,同时以M VC 模式思想构筑了J2EE 企业应用平

台。

关键词:M VC ;JSP ;Servlet ;E JB 中图法分类号:TP3931092   文献标识码:A    文章编号:100123695(2003)0320144203

Study and Implementation of MVC Design Pattern on J2EE Platform

LU R ong 2xing ,Y U Zhou ,RUAN Y ong 2liang ,W ANG Zhi 2qiang

(Dept.o f Computer Science &Engineering ,Tongji Univer sity ,Shanghai 200331,China )

Abstract :This paper introduces M VC design pattern briefly ,and discusses J2EE techn ology ,and construct J2EE Enterprise Platform based on M VC design pattern.K ey w ords :M VC ;JSP ;Servlet ;E JB

  在对W eb 应用系统进行实际的开发过程中,我们经常会遇到这样的问题:如何进行系统的架构?如何更有利于模块化的设计与编码,今后功能的扩展,以及系统的快速有效的维护?每次的系统开发,我们都需要根据实际应用寻找一个新的解决方案。为了提高开发的效率,考虑到应用系统的灵活性、安全性、实用性等,我们就需要有一种好的设计模式作为一种可行的方案来解决这一常见问题。M VC 设计模式(模块—视图—控制器模式)是一种“分治”的思想,在实现W eb 应用系统中具有得天独厚的优势。本文主要讨论M VC 设计模式在J2EE 企业级平台构筑中的研究与实现。

1 MVC 模型介绍

111 基本概念

M VC 开发模式是一种“分治”的思想,它将数据的访问和数据的表现进行了分离。通过这种模式,可以开发

一个具有伸缩性、便于扩展、便于整个流程维护的平台。

M VC 主要由三个部分组成:模块(M odel )、视图(View )和控制器(C ontroller )。模块,即相关的数据,它是对象的内在属性,是整个模型的核心,它表示的是解决方案空间的真正的逻辑。它采用面向对象的方法,将问题领域中的对象抽象为应用程序对象。在这些抽象的对象中封装了对象的属性和这些对象所隐含的逻辑。视图是模型的外在表现,一个模型可以对应一个或者多个视图。视图具有与外界交互的功能,主管应用系统与外界的接口:一方面它为外界提供输入手段,并触发应用逻辑运行;另一方面,它又将逻辑运行的结果以某种

形式显示给外界。控制器是模型与视图的联系纽带,控制器提取通过视图传输进来的外部信息,并将其转化成相应事件,对模型进行更新;同时,模型的更新与修改也将通过控制器来通知视图,从而保持视图与模型的一致性。三者之间的关系如图1

所示。

图1 M VC 模式

112 MVC 设计模式的优势

M VC 设计模式具有设计清晰,易于扩展,运用可分

布的特点,因此在构建W eb 应用中具有显著的优势。

(1)M VC 模式结构可适用于多用户的、可扩展的、可维护的、具有很高交互性的系统,如电子商务平台、CRM 系统和ERP 系统等。

(2)M VC 可以很好的表达用户与系统的交互模式,

以及整个系统的程序架构模式。

(3)M VC 模式可以很方便的用多个视图来显示多套数据,从而可以使系统能方便的支持其它新的客户端类型。除了运行桌面型的浏览器外,还可以运行在PDA ,W AP 浏览器上。

(4)对于开发人员来讲,由于M VC 分离了模式中的数据的控制和数据表现,从而可以分清开发者的责任,后台开发人员可以专注业务的处理,前台开发人员专注于用户交互的界面,从而加快产品开发以及推向市场的时间。

2 J 2EE 技术

S UN 公司的J2EE (Java2企业版)是一种利用Java 语

・441・  计算机应用研究2003年

J2EE技术主要有:E JB,Servlets,JSP,JNDI等。J2EE 平台的应用主要由构件构成,应用系统的开发就是设计这些构件并组装成整个企业应用。

211 J SP

JSP技术与ASP技术类似,是一种在服务器端进行解析,动态生成网页传递给客户端W eb技术;它是基于Java技术,将Java代码嵌入HT M L页面中实现的。本质上,JSP是一种高层的Servlet。它与其它网页编写脚本有很大的相似性,但是在执行时有所不同。JSP引擎将它和它所在的HT M L文件一起合成Servlet的代码,然后它的执行就与Servlet的一样:先编译成.class文件,最后由支持Java虚拟机的服务器来执行,最后输出结果。在使用JSP中如果结合使用JavaBean技术,那么对于处理就会更加方便灵活。

212 Servlet

Servlets是Java210中新增的一个全新功能,Servlets 是一种采用Java技术来实现CG I功能的一种技术。Servlet和CG I一样都是运行在W eb服务器上,用来生成W eb页面。与传统的CG I或其它CG I类似替代技术来说,Java Servlets效率更高,使用更方便,功能更强大,更小巧也更便宜。Java Servlet提供了如下许多优势:

(1)Servlet可以和其它资源(文件、数据库、Applet,Ja2 va应用程序等)交互,以生成返回给客户端的响应内容。如果需要,还可以保存请求2响应过程中的信息。

(2)采用Servlet,服务器可以完全授权对本地资源的访问(如数据库),并且Servlet自身将会控制外部用户的访问数量及访问性质。

(3)Servlet可以是其它服务的客户端程序,例如它们可以用于分布式的应用系统中。

(4)可以从本地硬盘,或者通过网络从远端硬盘激活Servlet。

(5)Servlet可被链接(Chain)。一个Servlet可以调用另一个或一个系列Servelt,即成为它的客户端。

(6)采用Servlet T ag技术,可以在HT M L页面中动态调用Servlet。

(7)Servlet API与协议无关。它并不对传递它的协议有任何假设。

(8)像所有的Java程序一样,Servlet拥有面向对象Java语言的所有优势。

213 E JB

E JB(企业JavaBean技术)非常类似于微软的DC OM。它有一个自己要存活、要活动的容器,为了可以让客户进行透明调用,而不必关心位置;它同时又有一个本地和远程接口及一个相关的配置文件。E JB技术同时支持暂时和持久对象。暂时对象称为会话组件(Session Bean),持久对象称为实体组件(Entity Bean)。E JB技术一般应用于数据库操作。在开发过程中,一般采用的开发方式是在会话Bean内部调用实体Bean,因为实体Bean没有状态但是对数据库亲和,而会话Bean中有我们为了控制程序而需要的上下文信息。这样,我们可以结合这两种Bean的所有优点,来比较轻松的进行开发。比如在会话Bean中用实体Bean进行数据库的访问,同时会话Bean用来保存客户的上下文信息。E JB技术的特点有可移植、可重用,平立及可扩展。

3 J2EE平台上MVC设计思想的实现

311 MVC系统模型构建

J2EE技术结合M VC设计模式在构建企业级W eb应用的实现中,JSP对应于视图,因为整个应用系统主要通过JSP来与外界进行交互;Servlet对应于控制类,作为JSP与E JB之间的中间枢纽;E JB和JavaBean对应于模块,主要进行数据业务的处理。M VC设计模式构建的W eb应用框架如图2

所示。

图2 M VC模式构筑的J2EE平台

M VC系统模型明确的将数据的显示和数据业务的处理分开,从而使得逻辑结构更为清晰。如果数据的显示方式有所改变,只需更改JSP视图页面,而并不要求相应更改数据处理模块;反之,如果业务要求发生变化,也只需更改相应的处理数据模块。因而系统可以很容易加入新的业务,可以灵活适应各种需求的变化。

M VC设计模式应用于W eb应用程序,其整个流程如下:当W eb客户端的HT M L或JSP网页向服务器提交时,服务器端的控制器Servlet统一处理这些提交请求。这个控制器Servlet根据提交的业务不同,将请求传递给相应的业务Bean操作处理,然后将业务Bean的处理结果再传递给视图JSP。视图JSP在服务器上处理之后以HT M L的方式回显给客户端。这里的业务Bean是一系统处理业务逻辑的Java Bean,每个Java Bean处理一种业务。会话Bean和实体Bean都是具体的与数据库的操作,在整个数据模块中供各种业务的Bean进行调用。

312 MVC系统模型技术实现

下面就从技术实现的角度上分析M VC模型的实现,给出具体的实现类图,同时分析其中的关键技术细节。具体的实现类图如图3所示。

M VC模式中最关键的部分在于控制器的实现。控制器必须能够很好的处理视图与模块的交互。在我们的实现中就是基于这样的一种思想。首先我们将所有的提交功能进行编号,每个编号对应一种功能,每种功能对应一个业务处理类,同时每种功能又对应于一个后继页面。将这种关系存入两个X M L文件供控制器调用。X M L文件格式如下:

5

4

1

第3期陆荣幸等:J2EE平台上MVC设计模式的研究与实现  

cmdl //功能编号

cmdl.class //功能实现类

cmdl //功能编号

/nextpage.jsp //功能处理的后继页面

图3 M VC 模式实现的类图

在控制器进行初始化时,首先读取这两个X M L 文

件,然后以Hashtable 对象的形式将对应关系存入内存中,供后面的各种提交请求进行调用。

控制器的实现主要由三个部分组成:M ainServlet ,Re 2questC ontroller 和ScreenC ontroller 。

M ainServlet 主要接受各种业务请求,通过调用Re 2questC ontroller 进行各种请求的处理,此时控制权属于M ainServlet 中。当RequestC ontroller 处理请求,将结果存入Session 之后,M ainServlet 就将请求与响应交于Screen 2C ontroller ,释放控制权。

RequestC ontroller 功能主要是具体处理各种请求,它在初始化时读取X M L 文件,将功能编号与功能实现类存入一张内存H ASH 表中。当M ainServlet 传来请示Request 时,RequestC ontroller 将请求封装在另一个H ashtable 对象中,同时从请求中提取功能编号,然后根据功能编号查找初始化时的那张H ASH 表,找出功能实现类。实例化后,将封装的H ashtable 对象往下处理。主要操作代码如下:

control cmd0=null ;//command 为业务处理的接口对象

S tring func =request.getParameter (″function ″

);//从请求中得到功能编号

S tring processClass =(S tring )ht0.get (func );

//根据功能编号查找HASH 表ht0得到实现类名称

cmd0=(control )Class.forName (processClass ).newInstance ();//实例化一个业务类对象

ValueH older vh =cmd0.Process (ht1);

//将封装请求的HASH 表ht1作为参数进行请求处理Session.setAttributes (″valueholder ″,vh );

//将返回对象vh 存入session 中,供JSP 调用

S creenC ontroller 功能主要是处理响应,将请求结果与JSP 页面结合回显给客户端。在初始化过程中,它与Re 2questC ontroller 一样,读取X M L 文件,将功能编号与功能的后继页面存入一张H ASH 表中。当M ainS ervlet 将请求与响应传递过来时,它首先从请求中获取功能编号,随后根据功能编号查收H ASH 表,得出后继页面。随后将后继页面(主要是JSP 页面)结合业务处理类存入S ession 中的结果进行处理,组织成HT M L 的格式回显给客户端。

M VC 模式中的模块部分主要由一系列的业务JavaBean 和会话Bean ,实体Bean 组成。为了便于控制器处理,我们

对业务Bean 的实现采取了接口技术。我们定义了接口C ontrol 及其方法Process ()。Process ()的实现在下面具体的业务中实现,即一系列的具体的业务Bean 实现C ontrol 接口,采用统一的Process ()来进行处理。

public interface control{//各种业务Bean 的统一接口

ValueH older process (Hashtable hb );//统一的接口方法}

public class cmd1im plements control{//具体的业务Bean

public ValueH older process (Hashtable hb ){//具体的业务实现方法

  …  return vh ;

}}

其中ValueH older 对象的作用是存放业务处理的结果,存入Session 中,供ScreenC ontroller 处理JSP 时使用。

模块部分的会话的Bean 与实体Bean 主要是对数据的具体操作。在设计中根据业务的要求,我们采用的原则是对于数据集和非敏感数据操作采用会话Bean 直接操作数据库。对于单个数据和敏感数据操作采用会话Bean 调用实体Bean ,再与数据库进行操作的方式。

M VC 模式中视图部分主要是一系列HT M L 和JSP 页面,主要功能是进行请求和将模块处理的数据表现给客户端。其中关键的一点就是针对每一个提交都要确定其功能。因此对于表单的提交需要增加一个隐含属性,确定其功能。

//确实功能是cmdl

根据M VC 模式,图4显示了一个业务的全过程

图4 M VC 模式中业务处理过程

4 结论

M VC 作为一种设计模设在W eb 应用中具有独特的优势,本文主要从实现角度,将M VC 的思想运用于J2EE 平台的构筑。在该开发项目中,我们运用了这种设计模式,取得了明显的效果。

参考文献:

[1]McLaughlin B.Java and X M L [Z].O ’Reilly&Ass oiates ,Inc.,

2000.

[2]Wendy Boggs.UM L with Rational R ose 从入门到精通[M].邱

仲潘1北京:电子工业出版社,20001

[3]R oman E D.Mastering Enterprise JavaBean[Z].1999.

[4]Java 2Platform ,Enterprise Edition S pecification Version 1.2

[E B/O L ]1http ://java.sun.com/J2ee/docus.htm.

作者简介:

陆荣幸(19782),男,硕士生,主要研究方向为分布式系统、网络安全;郁洲,硕士生;阮永良,教授;王志强,学士。

・1・  计算机应用研究2003年

文档

J2EE平台上MVC设计模式的研究与实现

收稿日期:2002203210J2EE平台上MVC设计模式的研究与实现陆荣幸,郁洲,阮永良,王志强(同济大学计算机科学与工程系,上海200331)摘要:简要介绍了MVC模式思想,讨论了J2EE技术,同时以MVC模式思想构筑了J2EE企业应用平台。关键词:MVC;JSP;Servlet;EJB中图法分类号:TP3931092文献标识码:A文章编号:100123695(2003)0320144203StudyandImplementationofMVCDesignPatternonJ2EEPlat
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top