【VC++开源代码栏目提醒】:网学会员为需要VC++开源代码的朋友们搜集整理了基于J2EE的轻量级Web应用框架 - 硕士论文相关资料,希望对各位网友有所帮助!
中山大学 硕士学位
论文基于J2EE的轻量级Web应用框架 别:硕士 专业:微电子学与固体电子学 指导教师:彭自成 20070608 中山大学硕士学位
论文 题 目: 基于J2EE的轻量级web应用框架 专 业: 微电子学与固体电子学 硕士研究生: 何平 导 师: 彭自成副教授 摘要 一直以来,在企业级应用开发领域,J2EE一直是业界的核心标准之一——特别是在企业级的Web应用系统开发上,J2EE占据了该领域内的大部分市场。
然而,直到今天,我们并没有在sun推荐的J2EE应用架构中看到其所承诺的美好前景,事实恰恰相反,由于J2EE的庞大复杂以及难于部署令很多中小型Web应用系统开发转向使用.net平台。
从2002年开始,J2EE社区就已经开始寻求一种更简单,更加方便开发者使用的,更轻便的J2EE架构。
作者基于轻量级的开发思想以及使用
开源的开发工具,构建了一个轻量级的Web应用框架一LightWAF(Light Web Application Framework),并在此框架上设计及实现了一个中小型Web应用系统——会议室房间预订系统。
本文首先从系统开发的技术路线和架构进行分析,在整体上说明了构建该框架所涉及的基本概念和技术;接着对当前基于J2EE的轻量级Web应用框架的设计及实现提出一些解决方案;然后,按框架的功能层次分别介绍LightWAF框架的各个主要模块的设计及实现,并结合UML图分析了部分核心
代码;最后,介绍如何在LightWAF框架的基础上设计及实现会议室预订系统,并从多方面对该系统进行分析设计,详细介绍该Web系统中最重要子系统-Booking子系统。
关键词:轻量级,J2EE,Struts,MVC 基于J2EE的轻量级Web戍用框架的设汁’j实现 Abstract In the field of enterprise application development,J2EE has always been one ofthe most import industry standards’———。
especially in Web application developmentwhere J2EE takes most part of the market share.However,J2EE application is reallynot as good as SUN has promised,Due to the enormous complexity of J2EE and thedifficulty of the deployment,many company have used.Net Platforms to developmany small and medium-sized Web application systems.Net Platforms.Since 2002,J2EE community has already begun to find a simpler,more convenient for developers,more lightweight J2EE. This author builds a real lightweight Web application framework based on thelightweight methodologies and opensource tools…LightWAF(Light Web ApplicationFramework),and based this framwork,design and implement a small andmedium—sized Web application systems--Conference Room Booking System.Thepaper begins with the introduction of the technical track and architecture of the targetframework,where basic concepts and technologies are covered;And then,It goesthrough some existing problems in current J2EE-based Web application system andpropose solutions;Next,The design and realization of Various modules in L i ghtWAFareSeparately discussed By the functional level framework,some codes are analyzed withthe help of UML.Finally,It describes how to design and implement ConferenceBooking System in the basis of L i ghtWAF,and analysis the W曲system from manyfields,and give details of the important subsystem in the Web systemmBookingSubsystem. Key Words:LightWeight,J2EE,Struts,MVC II 中山大学硕士学位
论文 第一章绪论 1.1研究背景 近年来,随着网络技术飞速发展,Internet己经成为一种在全球范围内进行信息交流、技术协作及商业活动的系统工具,Web己作为世界范围内运用最广泛的,最具有效信息获取和发布的媒体。
Web正改变着企业应用系统开发及实施的方法,传统软件模式正逐渐被Web体系结构所替代,利用分布式计算技术实现多层Web应用系统成为一种主要的开发模式,也是解决复杂大型企业级应用问题的根本所在m. 传统的Web应用开发是将页面显示、业务逻辑和数据处理大部分都集中在页面
代码中,导致了业务逻辑、数据处理和页面显示的耦合性很强,Web应用扩展与维护都比较困难,同时也不利于开发人员分工协作。
传统的Web应用开发在开发大型的企业级Web应用中愈加显得力不从心。
近年来,随着网络技术的迅速发展和J2EE平台的广泛应用,基于B/S的多层Web体系结构逐渐发展成熟起来,多层Web应用的开发己成为主流。
多层的Web应用设计技术和开发工具,能够将页面显示、业务逻辑和数据处理相分离,最大限度地降低系统各模块之问的祸合性,从而增强系统的可扩展性与可维护性,提高
代码重用率,使系统的层次结构更加清晰,易于开发人员的分工协作,充分发挥开发人员的各自特长。
今天,越来越多的开发人员都想编写分布式的,事务型的企业及应用程序,以及平衡速度、安全及服务器方可靠度的技术.如果你已经在这个领域工作,你应该知道在当今的快速变换及需求的电子商务及信息技术的世界里,企业应用程序需要设计、编译、产生低价位的、高速的、占用少量资源的程序。
为了缩减开发成本,快速跟踪企业应用的设计和开发,J2EE技术提供了基于组件的设计方法,。
开发、集成、部署应用程序。
J2EE平台提供了多层分布式应用模式,使具有重用的能力,并集成了基于XML的数据交换—一个统一的安全模式及灵活的事务控制翻。
网络技术的迅速发展和J2EE平台的广泛应用,基于B/S的多层Web体系结构逐渐发展成熟起来,多层Web应用的开发已经成为主流。
但是,在多层Web体 击E于J2EE的轻量级Web融用捋聚的设计1J实现系结构的
设计中,仍然存在着程序可重用程度低、维护
工作繁琐、应变能力较弱等不足。
同时,多层Web应用软件需要面对复杂的
网络环境、多样化的用户需求、灵活的业务模式、复杂的业务流程、众多的组织机构及层次和角色分工等
问题,在业务和技术上也是复杂多变的。
因此,如何组织应用程序以实现简单高效的程序编写、升级、维护和扩展,采用一种好的体系结构、设计模式、可复用的B/S架构的框架进行Web应用软件的开发,是当前Internet技术发展的热点之一,也是一个很值得探讨的研究课题。
1。
1.2国内外研究现状 SON公司提出的J2EE和微软公司的.net是企业Web服务平台市场的两个最重要的应用架构,其中J2EE得到广大
开源社区的支持以及其自身安全,跨平台等优点已经逐渐成为企业Web应用开发的标准。
J2EE平台提供了一种基于组件的方法,有利于降低成本、加快应用程序的开发和设计。
对于一个多层的应用模型,根据功能将其应用逻辑划分成不同的组件,如应用客户组件、EJB组件、WEB组件((Servlet。
JSP)和Applet。
研究的就是如何组装这些组件使之成为一个易开发、易维护、可扩展性好的软件体系结构,从而以更小的成本、更少的资源、更快地完成应用的设计和开发。
在开发的过程中,可以选择良好的软件架构,适当的设计模式,甚至可以开发一套框架结构,从而降低软件开发和维护的成本,增强
软件的复用性最大限度地发挥J2EE平台的技术优势和可扩展性”, 随着面向对象技术、Web技术和J2EE技术的发展,软件架构技术在Web开发中得到了广泛的应用。
近年来,涌现出许多Java
开源的轻量级框架,据2004年3月的初步统计嘲,共有54种,如国外的Struts,Tapstry,WebWork,Spring5IvC,Turbine等,国内的如EasyJWeb等。
Struts是一个基于Sun J2EE平台的MVc框架,主要是采用Servlet和JSP技术来实现的。
由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。
Struts把Servlet、JSp、自定义标签和信息资源(message resources)整合到一个统一的框架中, 2 中山大学硕士学位
论文开发人员利用其进行开发时不用再自己编码实现
全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
EasyJWeb是基于java技术,应用于WEB应用程序快速开发的MVC框架,框架设计构思来源于国内众多项目实践,框架充分借签了当前主要流行的
开源Web框架(Struts、JSF、Tapestry、Webwork),吸取了其优点及精华,利用Velocity作为模板页面引擎,是一个实现了页面及
代码完全分离的MVC开发框架。
是一个能实现中小型Web应用系统快速开发的简易Web框架。
现在市场上支持J2EE规范的应用服务器有IBM WebSphere ApplicationServer。
BEA Weblogic Server,
开源的Jboss,ORACLE Application Server,以及Sun公司的Sun One Application Server. 1.3
论文章节安捧 本文内容的章节安排如下 第一章为绪论,对
论文的研究背景以及国内外的一些研究现状进行描述。
从网络技术发展以及J2EE的广泛应用方面来阐述研究的必要性。
同时简要 的介绍本文的研究内容和文章的组织结构。
第二章为J2EE平台核心技术及轻量级框架架构的阐述。
主要是阐述J2EE 的核心概念以及JZEE为Web应用所提供的框架模型及各种服务技术;同时 介绍了MVC模式,对MVC模式在J2EE上的应用进行了说明;另外简要的介 绍了轻量级框架的架构。
第三章主要基于J2EE的轻量级Web开发框架的开发思想,提出一些关于 轻量级Web应用框架的解决
方案。
第四章为作者在多个Web系统开发过程中,提炼出来的一个基于struts 原理的轻量级Web应用框架—LightWAF的介绍。
该章介绍LightWAF的设计 思想及其重要模块. 第五章介绍一个基于LightWAF框架开发的Web系统—会议室预订系统。
集中介绍该系统的设计过程及其中一些重要部分的实现。
3 堆l-J2EE的轻量级Web脚用框架的设汁’J实现 第六章为总结与展望分析该框架的特色以及对该框架继续改进的一个展望。
4 中山大学硕士学位
论文 第二章J2EE平台核心技术阐述 2.1 J2EE简介 J2EE体系包括很多内容,其中每一个组成部分都堪称庞杂,包括:J2EE平台的多层体系结构、应用组件、企业服务和32EE运行时环境嘲. 2.I.1 J2既核心概念 J2EE是一个企业级应用系统开发平台或中间件体系结构,它通过提供一组应用组件和运行时环境来构造可伸缩的企业应用。
典型地,J2EE属于分布式应用环境,一个企业应用
系统,可以作为一套分布式组件部署在多台服务器上。
J2EE的四个核心概念: J2EE多层应用体系结构:J2EE平台的基本架构 J2EE应用组件:构成J2EE应用的软件元素 J2EE企业服务:应用组件需要用到的一些公共服务设施 J2EE容器:J2EE运行时环境 2.1.2 J2EE多层应用体系结构 J2EE定义了四个独立的层,分别是:客户层、表示逻辑层、业务逻辑层和企业信息系统层,如图2一l所示鲫: 图2-I J2EE四层结构 S 桀f J2EE的轻量级Web应用框架的设计‘J实现 1客户层Client Tier 客户层用来显示信息并接收终端用户输入的信息,将接收到的数据向Web层或者业务层传递.J2EE应用的客户层可以是基于Web,也可以是不基于Web,在一个基于Web的J2EE应用程序中,用户的浏览器在客户层中运行,并从一个Web服务器上下载Web层中的静态HTML页面由jse文件或者Java ervlet生成的动态HTML页面:在一个不基于Web的J2EE应用程序中,一个独立客户程序或其它基于网络的系统,比如手持设备或者汽车电话中的Applet程序在客户层中运行,在不经过Web层的情况下访问Enterprise Java Bean.除此以外。
客户层也可以使用Java Bean类来管理用户的输入. 2%b层耽b Tier J2EE应用程序中的Web组件可以由支持动态网页显示的jsP页面以及用于显示HTML页面的Java Servlet组成。
在Web层上使用JavaServlet和JSP技术来接收从用户端输入的信息,将输入发送到业务层中的Enterprise JavaBean进行处理并接收由业务层返回的处理结果,对客户层作出相应的响应;除此之外,Web层也可以使用Java Bean类来管理用户输入并将输入发送到在业务层中运行的Enterprise Java Bean类来处理。
在部署应用
程序时,负责调用JavaServlet或JSP页面的HTML页面与Web组件打包在一起,部署在Web容器中,这样就组成了Web层。
整个交互过程如图2-2所示: 田 田困 wEB浏览器 . JSP 可选的 EnterPrise Web页面。
Java Java Bean applet和可选的 javabean Servlct Bean类 应用程序客户端 图2-2Web层交互过程 3业务层Business Tier 6 中山大学硕士学位
论文 业务层经常也被称作Enterprise Java Bean(EJB)层。
J2EE应用程序的业务层主要是由用来处理某些特定业务领域, 比如银行, 零售或金融业业务逻辑的EJB组件组成的。
EJB从客户层或者Web层接收数据,对数据进行处理,如果需要的话再将数据发送到企业信息系统层进行存储。
另外,它还可以从存储中检索数据并将数据送回客户程序。
运行在业务层的EJB依赖于容器来为诸如事务,生命周期,状态管理,多线程及资源存储池提供通常都非常复杂的系统级
代码。
4企业信息系统层EIS Enterprise Inforntion System 企业信息系统层运行企业信息系统软件这层包括企业基础设施系统,例如企业资源计划ERP Enterpri se Resource Plan,大型机事务处理grP MainframeTransaction Processing数据库系统及其他遗留信息系统LIS LegacyInformation Systems。
这些系统中存储着企业需要的大量数据。
J2EE应用组件因为某种原因,例如访问数据层,可能需要访问企业信息系统。
2.1.3 J2髓应用组件 J2EE标准定义了一整套相当完备的应用组件框架.应用组件一企业系统的砖瓦——就是建筑在这个框架之上的。
利用这个框架,几乎可以构建从简单的网络门户到复杂的分布式企业级事务应用等任何应用系统。
J2EE组件框架可类比于最基本的建筑材料,它以库、基础类和接口等形式存在;在它之上构建的应用组件则具体实现特定的企业业务逻辑;最后由表示/控制器逻辑进行组件整合,最终组成一个完整的应用系统。
以servlet为例,servlet是J2EE提供的标准应用组件.但一个特定企业应用所需的servlet,需要在基础servlet接口上开发。
在这过程中,开发人员可以利用servlet软件包附带的servlet库和服务。
很多系统级服务,诸如从i甲vrP输入流中读取数据或将数据写至HTTP输出流中,都可以从这些库中获得,用起来非常方便. 因此,将J2EE提供的组件基础结构称之为应用组件框架,而将在它之上所编写的程序
代码称之为应用组件。
但为简单起见,这两个术语也常常被交换使用. J2EE的客户层、表示层和业务逻辑层,都各自有其适用的应用组件,见图2—3叫 7 甚1卜J2EE的轻量级Web脚斤j框架的设计1 J实现 客户层:applet,Javabean 表示逻辑层:servlet,JSP,Javabean 业务逻辑层:企业Javabean 图2—3 J2EE四层结构中的组件 企业信息系统(EIS)层没有可适用的组件,这是因为EIS层处理的是J2EE领域内的所有企业后端资源,诸如数据库、BackOffice或旧有遗留系统、ERP实施等。
很明显,所需要的是要使得应用组件能访问这些资源,而这种访问的实现是由J2EE企业服务来提供的,因此EIS层本身不需要应用组件。
可以看到,企业应用系统是通过开发人员利用组件,编写程序,再部署到各自容器中去的。
在一个特定的企业应用场合,合理运用组件是一项技巧性要求相当高的工作。
由于可供使用的组件种类繁多,如何选择适当的组件组合来构造高效优质的应用系统需要开发人员不仅有一定的知识积累,还要有丰富的实战经验。
J2EE的目标就是要通过对组件的合理利用来进行应用系统的设计和开发。
组件接口保证了各个组件符合标准规范,能在不同的环境中保持一致性,从而为J2EE服务器产品的互操作奠定基础。
应用组件在各个层中连接松散,以此在互操作的同时能保持自身的灵活性和可重用性。
2.1.4 J2EE企业服务 一般认为,现代企业计算解决方案除了企业的业务逻辑外,还需要提供对一些基本服务的支持,J2EE环境的另一大特色就在于它提供了完善的企业级服务, 中山大学硕士学位
论文以满足各类应用的需要。
这些服务主要有: 连通性服务 JDBC(Java Database Connectivity):提供数据库连接和访问服务 JcA(Java Connector Architecture):提供与旧有遗留系统之间的连接 通信服务 Java消息服务JttS(Java Messaging Service).-提供层与组件之间的消息传递 电子邮件服务(JAF/Javamail):提供电子邮件服务 Java IDL/删I—I 10P:CORBA兼容接口,提供J2EE与CORBA的
通信服务 JAX(Java)(ML APIs):提供XML语法分析/绑定服务 认证服务 JNDI(Java Naming and Directory Interface)=提供分布式命名和目录服务 其他服务 JTS/JTA(Java Transaction Service)=提供事务处理/监控服务 JAAS(Java Authentication and Authorization service):提供访问控制 等安全服务 在应用服务器市场,常可见到某些服务的驱动程序与服务器产品本身捆绑在一起的现象。
例如,WebLogic就自带JDBC驱动程序提供J2EE应用和Informix数据库的连接。
目前这已经成为企业评估和挑选不同服务器产品的一个重要选择标准。
2.1.5 J2EE容器 J2髓容器提供了从一个产品生产商过渡到另一个产品生产商的持久环境该环境能够支持可扩展的,具有标准化功能的组件技术旧.容器能够自动执行一些在其他模型中需要专门技术才能实现的标准化的功能, 例如事务管理和安全性同时容器还提供了Java编程语言中用于组件技术的标准API,例如信息服务Java Message Service和数据库接口JDBC.这些容器统一了J2EE编程模型,简化了应用软件开发, 还能维持独立组件和大范围应用软件的便携性. 9 幕于J2EE的轻量级Web肫用框架的设汁1 J实现 J2EE应用组件町以安装部署到以下几种J2EE容器中去 ★Applet容器:提供适合于执行Java Applet的环境,Applet容器通常是运行在客户端机器上的Web浏览器和Java Applets的结合这个环境。
★应用程序客户端容器:提供适合于J2EE应用客户的环境, 应用程序客户端容器管理所有J2EE应用程序中客户端组件的执行。
★Web容器:提供适合于Servlet和JSP开发部署以及运行时管理环境。
Web容器管理所有J2EE应用中JsP页面和Java Servlets组的执行。
Web组件和它们的容器运行在J2EE服务器上。
★EJB容器:提供适合于Enterprise Java Bean的开发,部署以及运行时管理的环境EJB容器管理所有J2EE应用程序中Enterprise Java Bean的执行, EJB容器和EJB组件运行在J2EE服务器上。
典型地,容器提供的基础设施包括:内存管理、同步/分线程、垃圾收集、可用性、可伸缩性、负载平衡和容错。
2.2 MVC模式简介 2.2.1 MVC简介 IIvC模式是’Model-View—Controller”的缩写“1,中文翻译为”模式一视图一控制器”。
MVC应用程序总是由这三个部分组成。
Event(事件)导致Controller改变Model或View,或者同时改变两者。
只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。
类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。
MVC模式最早是smalltalk语言研究团提出的,应用于用户交互应用程序中。
smalltalk语言和java语言有很多相似性,都是面向对象语言,很自然的SUN在petstore(宠物店)事例应用程序中就推荐MVC模式作为开发Web应用的架构模式。
MVC模式是一种架构模式,其实需要其他模式协作完成。
在J2EE模式目录中,通常采用service toworker模式实现,而service to worker模式可由集中控制器模式,派遣器模式和Page IO 中山大学硕士学位
论文Helper模式组成。
而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts提供了抽象类Action使开发者能将Model应用于Struts框架中。
现在来了解一下MVC三个部分在J2EE架构中处于什么位置,这样有助于理解hl\,C模式的实现。
MVC与J2EE架构的对应关系是:View处于Web Tier或者说是Client Tier,通常是JSP/Servlet,即页面显示部分。
Controller也处于WebTier,通常用Servlet来实现,即页面显示的逻辑部分实现。
Model处于MiddleTier,通
常用服务端的javaBean或者EJB实现,即业务逻辑部分的实现。
2.2.2 MVC设计思想 MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层删. 视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。
随着应用的复杂性和规模性,界面的处理也变得具有挑战性。
一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理.业务流程的处理交予模型(Model)处理。
比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型. 模型(Model):就是业务流程/状态的处理以及业务规则的制定.业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请.