基于轻量级J2EE的多层web系统框架的研究与应用

VIP免费
3.0 陈辉 2024-11-19 4 4 1.42MB 81 页 15积分
侵权投诉
摘 要
一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而
持续改进的过程,软件开发者们不可能对每个不同的工程做不同的架构,而总是
尽量重用以前的架构,或开发出尽量通用的架构方案。
本文首先介绍了课题的背景和应用现状,指出传统的 J2EE 架构由于种种原因
己经不能适应企业应用系统的发展要求。接着,简单介绍了几种轻量级的 J2EE
用体系结构,着重介绍了轻量级开发相对于传统的开发方法的优势。通过比较各
种体系结构,引出了本文重点研究的基于 Struts+Spring+Hibernate
J2EE Web 应用框架体系结构。
本文所介绍的架构方案的目标就是使得 J2EE 体系结构朝着更简单、更理性的
方向发展,同时充分利用了 J2EE 平台的多种优秀的开源框架。在表示层采用 Struts
框架,该层主要负责用户数据收集和处理结果显示,Struts 采用 MVC 的设计框架,
具有更好的可扩展性,能够更好地实现表示与内容之间的分离。业务逻辑层采用
Spring 框架,它有效的组织了系统中的中间层对象,消除了组件对象创建与使用耦
合紧密的问题,同时消除了使用各种各样格式的属性定制文件的需要,在整个应
用实现中,可以通过一种统一的方法进行配置。数据持久层采用 Hibernate 框架,
Hibernate 提供J2EE 体系结构中的轻量级持久框架,提供了 Java 对象和数据库
模型的一一对应的映射关系。同时还提供了面向对象的查询语言(Hibernate Query
LanguageHQL )和恢复机制。使用 Hibernate 框架,不仅可以大大减少操作数
据库的工作量,更重要的是使程序员能够使用面向对象编程思想来操作数据库。
最后,实现了一个简单的基于轻量级 J2EE 架构的票务系统,展示了运用此新
技术在应用实现中的高效便捷之处。
关键词: J2EE 平台 Struts Spring Hibernate
ABSTRACT
A successful software need a successful framework, however, the establishment of
the framework is a complicated and continually improving process. It is impossible for
explorers to work out different framework for different projects, while, they always try
to utilize the existing framework or, explore the general used framework.
At the first, the author introduces the background of the research project and its
current environment, point out the traditional J2EE architecture is not satisfying the
development of the enterprise application system.Following that, the author represents
the lightweight J2EE application architecture, and point out lightweight architecture
advantages compared with traditional architecture. By comparing, the author leads to
the main point of the paper, the architecture based on Struts+Spring+Hibernate
framework in lightweight J2EE application architecture.
The goal of this architecture is to make the J2EE application architecture simpler
and more rational. In addition, the author introduces the several outstanding open source
frameworks. In the view tier, the author selects Struts as its framework. The framework
is characterized as a MVC framework, it is responsible for collecting the user data and
handle the result, make the development of web application more scalable, content
clearly. In the logical tier, the author selects Spring as its framework, it effectively
organized the middle-ware object, get rid of the problem of the tight connection of
component construction and employment and the need of using various property files.
In the whole application projects, Spring provides an uniform method configurations .In
the data persistence tier, the author uses Hibernate framework based on ORM, this
framework provides light persistence framework in J2EE platform, the one to one
mapping relation and the object-oriented query language and the recovery mechanism.
For the framework, developers can greatly reduce the work of operating database and
make developers freely use the object-oriented method to operate database.
Finally, the author applies the technique to the development of a simple Tickets
system. Through the description of the requirement of the system, shows the
convenience of system of development and maintenance.
Keywords: J2EE, Struts, Spring, Hibernate
目 录
摘 要
ABSTRACT
第一章 引言 .....................................................................................................................1
§1.1 研究背景 .........................................................................................................1
§1.2 J2EE 的发展及问题的提出 ........................................................................... 1
§1.3 研究现状及意义 .............................................................................................2
§1.4 本文的研究思路及研究工作 .........................................................................4
§1.5 论文结构 .........................................................................................................4
第二章 J2EE 平台相关技术及其复杂性 ....................................................................... 5
§2.1 J2EE 平台 ....................................................................................................... 5
§2.1.1 J2EE 概念 ..............................................................................................5
§2.1.2 J2EE 架构 ..............................................................................................5
§2.2 常用 J2EE Web 开发技术简介 ......................................................................7
§2.3 J2EE 应用复杂性及其原因 ......................................................................... 12
§2.4 降低 J2EE 应用复杂性的办法 ................................................................... 13
第三章 轻量级 J2EE 框架分析 .................................................................................... 14
§3.1 轻量级 J2EE 架构 ........................................................................................ 14
§3.2 轻量级 J2EE 架构的优缺点分析 ................................................................ 14
§3.3 Web 层应用框架 .......................................................................................... 15
§3.3.1 Web 应用开发的早期模式 .................................................................15
§3.3.2 MVC 模式 ........................................................................................... 15
§3.3.3 Struts 应用框架 ...................................................................................18
§3.4 业务逻辑层 Spring 框架概述 ......................................................................23
§3.4.1 Spring 简介 ......................................................................................... 23
§3.4.2 Spring 的组成模块 ............................................................................. 24
§3.4.3 控制反转模式和面向方面编程(AOP) .............................................. 25
§3.4.4 Spring 框架的工作原理 ..................................................................... 26
§3.4.5 Spring Bean 封装机制 ........................................................................ 27
§3.4.6 Spring 的优点 ..................................................................................... 28
§3.5 持久化层应用框架 .......................................................................................29
§3.5.1 面向应用程序持久层设计问题 ......................................................... 29
§3.5.2 对象持久化的概念 ............................................................................. 30
§3.5.3 几种流行的对象持久化技术 ............................................................. 31
§3.5.4 Hibernate 技术 .................................................................................... 34
第四章 基于 SSH 的轻量级系统体系架构设计 ......................................................... 38
§4.1 架构设计的总体目标 ...................................................................................38
§4.2 轻量级容器 ...................................................................................................39
§4.3 轻量级 SSH 架构总体设计 ......................................................................... 40
§4.4 架构详细设计 .................................................................................................41
§4.4.1 表示层设计 ......................................................................................... 41
§4.4.2 业务层设计 ......................................................................................... 42
§4.4.3 持久层设计 ......................................................................................... 42
§4.5 Struts+Sprin+Hibernate 原理分析 ............................................................... 43
§4.5.1 Struts+Spring 原理分析 ......................................................................43
§4.5.2 Hibernate+Spring 原理分析 ............................................................... 45
§4.6 本架构的特点 ...............................................................................................45
第五章 基于 SSH 框架的车站票务系统的实现 ......................................................... 47
§5.1 系统开发环境 ...............................................................................................47
§5.2 需求分析 .......................................................................................................47
§5.3 系统设计 .......................................................................................................49
§5.3.1 系统架构设计 ..................................................................................... 49
§5.3.2 系统业务实体设计 ............................................................................. 50
§5.3.3 数据模型设计 ..................................................................................... 51
§5.4 业务逻辑设计 ...............................................................................................52
§5.4.1 数据层设计 ......................................................................................... 52
§5.4.2 创建持久化类 ..................................................................................... 54
§5.4.3 对象/关系映射文件 ............................................................................ 56
§5.4.4 服务层设计 ......................................................................................... 57
§5.5 系统逻辑分析 ...............................................................................................57
§5.5.1 web.xml 文件 ...................................................................................... 57
§5.5.2 struts-config.xml beans.xml 文件 .................................................. 58
§5.6 系统功能的具体实现 ...................................................................................59
§5.6.1 创建系统中的视图 ............................................................................. 59
§5.6.2 配置数据源和事务管理 ..................................................................... 60
§5.6.3 异常控制 ............................................................................................. 63
§5.7 具体模块功能的实现 ...................................................................................65
§5.7.1 用户注册流程图 ................................................................................. 65
§5.7.2 用户注册模块的 DAO 配置 .............................................................. 65
§5.7.3 用户注册模型 ..................................................................................... 66
§5.7.4 用户注册控制器 ................................................................................. 67
§5.7.5 配置模型和控制器 ............................................................................. 68
§5.8 所遇困难及其解决方案 ...............................................................................70
§5.8.1 Struts 中开发自定义 taglib 的解决方案 ............................................71
§5.8.2 J2EE 应用国际化的解决方案 ............................................................72
§5.8.3 Hibernate 中数据库表主键的解决及批量删除性能优化 ................ 73
第六章 总结与展望 .....................................................................................................75
参考文献 .........................................................................................................................76
作者在读期间科研成果简介 .........................................................................................78
...........................................................................................................................79
第一章 引言
1
第一章 引言
§1.1 研究背景
在目前应用系统的开发中,由于 Web 开发的灵活性,易维护性的特点,软件
设计已经从传统C/S 式向 Web 应用模式(B/S 模式)转化。因此近年来出现
了越来越多的 Web 应用,但这些 Web 应用系统的共同特点是 Web 页面多、导航
困难、业务逻辑复杂。由于 Web 应用的大型化、功能日趋复杂,使得传统的开发
方式不再适合。随着 Web 技术的不断发展,Web 应用不再局限于提供一些静态的
内容、甚至也不满足于提供一些简单的动态内容。多层体系结构正是适合 Web
用的特点而发展起来的,与传统的模式相比,这种多层模式在原有的客户机和数
据库服务器之间增加了一个中间层,称为应用服务器层,专门负责处理应用逻辑,
并具有事务管理、连接缓冲等功能,而客户机只需通过图形界面和客户进行交互。
在多层 Web 应用系统中,系统至少由三层体系结构组成:客户端(浏览器)-Web
服务器+应用服务器-数据库服务器。客户端采用标准的网络浏览器,方便用户访
问信息;第二层包括 Web 服务器和应用服务器,所有的显示逻辑、应用逻辑、控
制逻辑都在这一层,系统的复杂性也主要体现在这一层;数据库服务器层存储数
据信息和数据逻辑,所有与数据有关的安全性控制、完整性控制、数据的一致性
以及并发操作等都是在该层实现的。
在三层体系结构中,Web 服务器是显示逻辑的核心,它将信息组织成超文本,
通过超文本标记语言(HTML)和超文本传输协议(HTTP)实现与浏览器的交互;而应
用服务器负责处理应用逻辑,并进行事务管理;数据库服务器负责处理数据逻辑,
实现对数据库的读写操作。通过应用服务器层,把应用逻辑从客户端和数据库服
务器独立出来,向开发者提供了一种创建、部署和维护大规模的 Web 应用系统的
模块化方式,这将更适合开发复杂的 Web 应用系统。
§1.2 J2EE 的发展及问题的提出
Web 应用发展至今,己经有很多公司提供了自己的 Web 编程语言和工具。最
出名的有 Sun 公司的 J2EE 技术和 Sun One 软件环境,Microsoft 公司的 C#
基于轻量级 J2EE 的多层 web 系统框架的研究与应用
2
DOTNET 技术,Oracle 公司的以数据库为主的 Web 平台等,这些技术都提供了支
持“客户-服务器结构”的 Web 编程语言。一般认为,DOTNET 能够迅速上手
但随着规模的扩大会变得难以维护,所以适合于中小规模的应用软件开发。 在
Web 编程技术中,Java 技术从设计之初就将跨平台作为首要目标之一,并由于其
安全性、易用性、模块化和易扩展性等特点倍受欢迎并得到广泛的应用。 Java
言作为 Internet 时代备受关注的技术之一,在开发网络应用中有着重要的地位,
且基于 J2EE 的应用是真正平台无关的。
作为一种企业级网络应用程序开发技术,J2EE 是目前唯一在市场上得到了广
泛应用的技术体系。J2EE 多层架构自推出以来,逐渐得到了广泛的应用,形成了
一个面向企业级的分布式、多层次的软件体系结构规范,成为企业应用开发的标
准。J2EE 的每一层又定义了相应的组件开发规范,通过组件来实现层的功能,组
件技术的应用大大地提高了软件的可重用性。总之,J2EE 提供了简单、实用、标
准化、分布式的 Web 编程方法,有效掌握这些方法会使程序开发者事半功倍。
但随J2EE 在实践中的大量应用,J2EE 体系存在的各种弊端也逐渐表现出
来:(1)无法快速开发出原型系统。(2)Web 层与后台逻辑层过于耦合,主要表现
是在 JSP 页面中大量嵌入 Java 代码,或直接在页面中进行数据库操作,使得维护
起来很困难。(3)大数据量查询性能需要优化。(4)数据表/数据模型的更改会引起
多个层面变化,修改量大,存在质量隐患等。由于页面中经常会嵌入数据库访问
语句,当在修改后台数据库模型或表结构时,前台页面就需要重构。(5)EJB 属于
重量级组件,对应用服务器要求较高,必须有专门的 EJB 服务器,用以提供 EJB
容器来支持 EJB 的运行。而且 EJB 定义了较为复杂的 EJB API,如果使用不当,
可能导致不恰当的应用系统设计,结果使得应用系统的总体性能下降。
§1.3 研究现状及意义
虽然 EJB 不断推出新规范,如 EJB 2.lEJB 3.0 等解决了 EJB 的一些老问题,
但这些新规范并没有根本解决 EJB J2EE 应用系统带来的问题。EJB 把组建模型
和远程支持放到同一个标准,同时处理组件模型和远端支持增加了复杂性。由于
EJB 的架构给 J2EE 应用系统带来巨大的复杂性,对于 J2EE 中的实体 EJB 的批判
声一浪高过一浪,他已逐渐被业界的人士所弃用,而开发人员也不断寻找更简单
EJB 替代品。
如今,针对 J2EE 体系架构中存在的这些问题,很多专家、研究机构试图采用
一些轻量级的、灵活的 J2EE 框架,来替代传统的使用 EJB J2EE
第一章 引言
3
Web 层框架 StrutsWebWork 实现了 MVC(Model-View-Controller)模式,让模型、
视图、控制器分离,解决了 Web 层与后台业务逻辑过于耦合的状况。Apache 组织
Struts 框架开始于 2000 年,是采用 Java Servlet/Java Server Pages 技术,开发 Web
应用程序的开放源代码的框架,它具有结构清晰、易于移植、易于扩展的特点。
WebWork 是由 Open Symphony 组织开发的,致力于组件化和代码重用的拉出
式 MVC 模式的 J2EE Web 框架,现在的 WebWork2.x 前身是 Rickard Oberg 开发
WebWork另外 ORM 框架 HibernateIBatis 提供了一组软件服务,将应用程序与
其使用和操纵的数据源分离,隐藏了访问这些数据源的数据访问 API分离了数据
访问逻辑与业务逻辑。作为某一层次的应用,这些框架解决了 J2EE 开发过程中某
一 层 次 存 在 的 问 题 , 无 疑 是 可 以 提 高 应 用 程 序 的 开 发 效 率 。 还 有
AJAX(Asynchronous JavaScript + XML),它是多种技术的整合,与传统的 Web
发技术相比,Ajax 具有异步交互、XML 数据封装和重视 JavaScript 脚本等特点。
异步交互是指用户与 Web 之间的交互方式是异步的,异步交互能力是 Ajax 最突
出的特点。
Web Services 也是一个崭新的分布式计算模型,利用 XMLSOAPUDDI
WSDL WSFL 等标准构造一个松散耦合的分布式计算环境,实现现有各种异构
平台的通信和数据共享。JMXJava Management ExtensionsJava 管理扩展)
是一个为应用程序、设备、系统等植入管理功能的框架。JMX 可以跨越一系列
构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、
网络和服务管理应用AOP 框架 Spring 是一个解决了许多J2EE 开发中常
的问题的强大框架,它提供了管理业务对象的一致方法并且鼓励对接口的编程而
不是对类编程的良好习惯,它的终极目标是完全替代 EJB
一般来说,应用框架是整个系统的可重用设计,是构建应用程序的模版,
本质上是一系列设计模式的抽象实现,并提供一些框架基础服务。基本上针对不
同的应用,不同的层次都有很多相应的框架。这些框架整合了 J2EE 所提供的基础
服务组件,基于以上不同的设计模式和架构模式,提出了各自最佳开发实践。这
些框架的出现极大推动了 J2EE 技术,特别是基于 Web J2EE 技术的发展。
应用这些框架满足企业级应用开发的时候,出现了一个问题,那就是如何
合理高效地进一步整合这些具有特定功能的开发框架,从而实现出一个完整高效
的基于 J2EE 面向 WEB 的企业级应用开发框架。因此,如何合理地选择不同的开
发框架并将其整合为一个通用的、高效率的、安全的企业级应用框架对于开发基
J2EE Web 应用显得尤为迫切和必要。
基于轻量级 J2EE 的多层 web 系统框架的研究与应用
4
§1.4 本文的研究思路及研究工作
本文要研究的主要内容是通过研究 J2EE 多层体系框架的各种技术及其存在的
缺陷或不足,试图结合目前流行的多种开源的框架Web 层框架,逻辑业务层框
架,持久层框架构建一种通用、健壮、安全的基于 J2EE 架构的多层 Web 框架。
在本文中,我们首先研究了 J2EE 框架的概念及由来,分析了 J2EE 的体系
构和层次构成等。 其次,我们研究了目前流行的各层应用框架,重点介绍了 Web
层应用框架 Struts、业务逻辑层框架 Spring 和数据持久层框架 Hibernate
接着本人在综合比较了多种框架体系的基础上,采用了 Struts+Sprin+Hibernate
轻量级的 J2EE 框架体系,并在此基础上给出这一框架的一个具体系统的实现。
后列举了应用该框架实例中所遇到的问题及改进方法,然后分析总结论文的主要
工作与成果,并分析框架的不足和尚待解决的问题。
§1.5 论文结构
全文共分为六章,主要内容如下:
第一章:引言。简述了本文的研究背景及研究内容,说明了本文的研究意义,
并列出了论文的内容结构。
第二章:J2EE 框架综述。全面介绍了 J2EE 框架的概念及特点。分析了 J2EE
体系层次结构及各层组件如 ServletJSPEJBXML 等。
第三章:轻量级 J2EE 应用框架分析。本章首先介绍了 MVC 模式的基本概念
及特点,接着着重分析了 Web 层框架 Struts 的架构,原理等知识来说明它为何能
克服 J2EE 本身结构体系中存在的一些问题。接着介绍了业务逻辑层框架 Spring
概念等相关理论,最后分析了当前流行的持久化技术 Hibernate 的体系结构、开发
流程、核心接口及特点。
第四章:基于 Struts+Spring+Hibernate 的系统体系架构设计。根据前面介绍的
各种技术的概念、原理提出了基于 Struts+Spring+Hibernate J2EE 应用解决方案,
从系统架构的角度分析该解决方案的设计思想和理念,为最后部分的实践作了充
分的准备工作。
第五章:车站票务系统的实现。通过利用以上设计的系统架构实现了一个
单的车站票务系统。以此来说明此架构的开放过程以及遇到的问题和解决方案。
第六章:总结与展望。总结了本人的工作及研究成果,最后提出了该框架
不足及尚待解决的问题。
第二章 J2EE 平台相关技术及其复杂
5
第二章 J2EE 平台相关技术及其复杂性
§2.1 J2EE 平台
§2.1.1 J2EE 概念
J2EE 是一种利用 Java2 平台来简化企业解决方案的开发、部署和管理相关的
复杂问题的体系结构。J2EE 是由 SUN 公司领导的,各厂商(如 IBMBEAOracle
等公司)共同制定并得到广泛认可的工业标准。该标准的制定采用开放路线,吸
收了许多厂商多年来在系统设计、系统集成方面的经验,是企业级应用程序的开
发平台和中间件体系结构,提供了企业级计算模型和运行时的环境。
J2EE 术的基础就是核Java 平台Java 2 平台的标准版J2EE 仅继
了标准版中的许多优点,包括“编写一次、随处运行”的特性、方便存取数据库
JDBC APICORBA 技术以及能够在 Internet 应用中保护数据的安全模式等等,
同时还新增了一整套诸如 Java Servlet APIEJB(Enterprise Java Bean)JSP(Java
Server Page)以及支XML 技术的标准化模块组件。这些模块组件的应用有助于
企业级应用程序的编写,为不同厂商产品的配合与兼容提供了可靠的保证。
目前,Java2 平台有 3 个版本,它们是适用于小型设备和智能卡的 Java2 平台
Micro 版(Java 2 Platform Micro Edition, J2ME)、适用于桌面系统的 Java2 平台标准
(Java 2 Platform Standard Edition, J2SE)用于和服务的
Java 2 平台企业版(Java2 Platform Enterprise Edition,J2EE)
§2.1.2 J2EE 架构
J2EE 体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用
性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE 降低
了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完
全支持 Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,
增强了安全机制,提高了性能。
摘要:

摘要一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而又持续改进的过程,软件开发者们不可能对每个不同的工程做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案。本文首先介绍了课题的背景和应用现状,指出传统的J2EE架构由于种种原因己经不能适应企业应用系统的发展要求。接着,简单介绍了几种轻量级的J2EE应用体系结构,着重介绍了轻量级开发相对于传统的开发方法的优势。通过比较各种体系结构,引出了本文重点研究的基于Struts+Spring+Hibernate框架的轻量级J2EE的Web应用框架体系结构。本文所介绍的架构方案的目标就是使得J2EE体系结构朝着更简单、更理性的...

展开>> 收起<<
基于轻量级J2EE的多层web系统框架的研究与应用.pdf

共81页,预览9页

还剩页未读, 继续阅读

作者:陈辉 分类:高等教育资料 价格:15积分 属性:81 页 大小:1.42MB 格式:PDF 时间:2024-11-19

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 81
客服
关注