【VC++开源代码栏目提醒】:网学会员--在 VC++开源代码编辑为广大网友搜集整理了:Struts框架在J2EE信息系统开发中的应用研究 - 硕士论文绩等信息,祝愿广大网友取得需要的信息,参考学习。
西南交通大学 硕士学位
论文Struts框架在J2EE信息系统开发中的应用研究 级别:硕士 专业:计算机应用技术 指导教师:尹治本 20060401 西南交通大学硕士研究生学位
论文 第1II页a solution for common Droblem of chinese disorder in word processorand word display is presented.As well, a pagination method for webdata display is presented. A system test s01ution for the system isbrought forward, Using this test s01ution, the functional ity, theperformance and the integrality of web application can be tesedeffectively.Lastly,because of the disadvantage of Struts frameworkthat Struts controller and web container have so close coupling thatStruts Action can’t be tested in unit with lightweight, anameliorative method using Context Encapsulation pattern is broughtforward and also validated in the thi s svstem.Key words: J2EE,IⅣC,Struts Framework,Traffic Information SerViceSystem for Public Travel, System Test 西南交通大学硕士研究生学位
论文 第1页 第1章绪论1.1课题背景 Internet的飞速发展,大大改变了人类传统的生活、工作、
学习的方式,网络时代,各企业、政府的信息化建设速度明显加快,信息化已经成为当今社会的一个重要特征。
伴随着我国
交通运输业的快速发展,交通信息化应用正逐步深入到交通政务、基础设施管理信息服务、运输服务等多个领域,交通部在《20lO年公路水路交通信息化发展思路及2004—2005年规划方案》中提出建立公众出行交通信息服务系统等示范工程。
构建公众出行交通信息服务网站,以其传播快、影响大等特点作为公众出行交
通信息服务系统的一个主要信息发布方式,将为公众获取出行信息提供极大方便。
网络技术的迅速发展和J2EE平台的广泛应用,基于B/S的多层web体系结构逐渐发展成熟起来,多层web应用的开发已经成为主流。
但是,在多层web体系结构的设计中,仍然存在着程序可重用程度低、维护工作繁琐、应变能力较弱等不足。
同时,多层web应用软件需要面对复杂的
网络环境、多样化的用户需求、灵活的业务模式、复杂的业务流程、众多的组织机构及层次和角色分工等问题,在业务和技术上也是复杂多变的。
因此,如何组织应用程序以实现简单高效的程序编写、升级、维护和扩展,采用一种好的体系结构、设计模式、可复用的B/s架构的框架进行web应用软件的开发,是 西南交通大学硕士研究生学位
论文 第2页的精髓,严谨清晰的结构使其具有良好的扩展能力、良好的可维护性和广阔的发展空间,同时,通过降低程序员编码的难度使其能够将更多的精力专注于业务逻辑的设计和系统框架的构建。
未来的
计算机体系是基于web的分布式计算,J2EE架构无疑是当前满足这一趋势的最佳选择州。
因而在实际应用实施中,J2EE俨然已经成为不可替代的企业级应用解决方案。
模式是一种指导,在一个良好的指导下,有助于完成任务,有助于作出一个良好的设计方案,达到事半功倍的效果,而且会得到解决问题的最佳方法。
MVC是Xerox PARC在20世纪80年代为编程语言smalltalk一80发明的一种设计模式,至今已经被广泛使用Ⅲ。
MVc模式利用控制器来分离模型和视图,达到层间松耦合的效果,能够有效地解决在web应用系统开发过程中由于系统结构的复杂程度较高而带来的诸多关键性问题,如
代码之间的松祸合问题,
代码的易维护性问题,组件的可重用性问题,不同技能的开发人员如何分工的问题等等。
MVC模式已被推荐为sun公司J2EE平台的设计模式,基于Mvc模式的J2EE应用开发在实际应用中,受到越来越多的欢迎。
框架”1是特定应用领域中的面向对象软件重用技术,是由特定应用领域的软件体系结构所决定的软件架构。
应用框架可以降低
软件开发的成本、提高软件质量。
随着面向对象技术、web技术和J2EE技术的发展,软件架构技术在web开发中得到了广泛的应用。
近年来,涌现出许多Javaweb层
开源框架,据2004年3月的初步统计【12】,共有54种,如struts、webwork、spring Mvc等。
Struts是Apache基金会Jakarta项目组的一个Open Source项目,它采用MvC模式,能很好地帮助java开发者利用J2EE开发web应用。
Struts很好地实现了业务逻辑与用户界面的分离,同时,它提供了大量的自定义标签库,可以在JsP页面中分离动态显示逻辑与静态的HTML
代码,使页面
代码更清晰,可读性大大提高。
struts作为一个不断升级中的
开源项目,功能越来越强大,已经成为MVC模式的首选框架,在国内外许多大型B/s项目中得到应用。
1.3本文所做的工作及结构安排 在开发公众出行交通信息服务系统时,综合考虑了
代码重用、系统管理、操作简便、应用安全以及后期维护等方面的要求,采用了J2EE平台开发系统,全面贯彻MVC设计模式,并将系统的web层构建于Struts框架之上。
本文将结合公众出行交通信息服务系统网站的实施,探讨web应用的体 西南交通大学硕士研究生学位
论文 第3页系结构、设计模式及框架,重点研究基于Struts框架的系统实现。
论文在对当前流行体系结构、框架进行比较的基础上,对系统进行分析、设计,采用J2EE体系结构,struts框架实现系统,并就系统的测试、发布、运行及实现中的关键问题进行简单阐述。
整个
论文分为七个部分: 第一章, 绪论,介绍课题的选题、选题意义,相关理论、技术研究现状,并对项目情况进行简单介绍,最后对本文的工作及结构安排进行概要介绍。
第二章, J2EE体系结构及MVc模式,概述了wEB应用程序体系结构,tE较.NET与J2EE架构,介绍了J2EE多层体系结构、J2EE核心组件;探讨了Mvc设计模式,阐述Mvc模式的原理,分析Mvc设计模式的优点与不足,总结了MVC模式的适用范围。
第三章, Ⅳ耶层应用框架一Struts框架研究。
首先对框架的概念、意义进行介绍,分析了影响web层应用框架选择的因素,然后深入剖析struts框架的体系结构、实现Mvc设计模式机制、框架的
工作流程、开发流程及各组件的使用,然后对实现^lvc模式的几种比较流行的框架进行介绍和分析,总结了struts框架的优点与缺点,得出struts是一个比较优秀和成熟的框架,是构件web系统的最佳选择。
第四章, 基于UML及Struts的系统分析与设计,采用u札对系统进行分析设计。
首先简单介绍本系统的项目背景、需求规格,然后根据
系统功能用uML建模方式做需求分析,重点分析了旅游服务子模块的需求,建立了用例图、功能活动图、顺序图,最后介绍了该系统基于Struts框架的体系结构、网络拓扑结构的设计。
第五章, 基于J2EE运用Struts框架的旅游服务子模块的实现。
首先介绍了系统开发环境的选取,接着详细阐述了基于Struts框架实现公众出行交通信息服务系统的过程,重点阐述了系统中如何对应实现模型、视图、控制器和如何配置它们,然后,就系统实现中的常见问题(数据分页显示
问题、中文问题等)的解决
方案进行详细探讨,最后就项目经验进行总结。
第六章, 系统的测试、发布、运行。
从局部测试、整体性能测试两方面对系统进行测试,重点讨论action的测试一StrutsTestCase;针对Struts的控制器与web容器紧密耦合,采用context模式封装web构件,实现解耦,并提出了基于该实现的测试方法一Lightwei曲tTest:最后就系统的发布和运行进行说明。
总结与展望,对
论文所做的主要工作进行说明和总结,并对课题及相关技术的进一步发展进行分析、展望。
西南交通大学硕士研究生学位
论文 第4页 第2章J2EE体系结构及MVc模式2.1 web应用程序体系结构概述 随着web系统复杂度的提高,应用服务器程序采用多层结构(N—TierArchitecture),进一步对原有三层结构的中间层进行细分。
从上而下依次为用户界面层、表示逻辑层、业务层、数据防问层和数据层,如图2—1科所示。
用户界面层 表示逻辑层 业务层 数据访问层 数据层 图2 l多层结构的web程序 Mlcroson.NET与s卟J2EE是目前的企业wcb服务平台市场的两个最重要的应用架构。
它们都为针对分布式多层应用的
设计、集成、性能、安全性和可靠性等诸多方面为用户提供了总体的指南和规范,基了:这些指南和规范,技术提供商提供了相应的平台、工具和编程环境。
在具体的应用架构中,包括了针对应用的表现层服务、服务器端进程、会话管理、商业逻辑架构、应用数据缓存、应用逻辑、持久化性、事务、安全和日志服务等等。
表2一l列出了.NET与J2EE的主要特征。
它们之间最重要的差别是.NET是个套件产品,而J2EE是一组规范和标准,.NET支持语言中立,而J2旺支持平台中立:.NET依附于ⅣINDw0S平台,J2EE依附于Java技术。
立:.NET依附于WINDw0S平台,』2EE依附于Java技术。
西南交通大学硕士研究生学位
论文 第5页 表2一l J2EE与.NET特征比较特征 J2EE .NET技术类型 标准 产品解释器 JRE CLR动态Web页面 JSP AST.NET中间层技术 EJB COM+数据库访问 JDBC、SQL ADO.NETWeb服务 SOAP、WSDL、 UDDI SOAP、WSDL、UDDl分布协议 RMI/110P DCoM消息队列API JMS MSMQ命名和目录服务 JNDI ADSl分布事务处理 JTS MTS J2EE架构在一致性、扩展性、性能方面比.NET有相当的优势,并且能够提供更好的安全机制,在企业级大型应用的开发上,J2EE‘架构能够提供更好的支持。
本系统开发中采用J2EE架构。
2.2 J2EE体系结构 J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如”编写一次、随处运行”的特性、方便存取数据库的JDBc API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及xML技术的全面支持。
是一个能够使企业开发者大幅缩短投放市场时间的体系结构。
2.2.1 J2EE四层模型 J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。
事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易, 西南交通大学硕士研究生学位
论文 第6页但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议——通常是某种数据库协议。
它使得重用业务逻辑和界面逻辑非常困难。
现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层。
一个多层化应用能够为不同的每种服务提供一个独立的层,图2—2显示了J2EE典型的四层结构〔17,18,19〕。
J勰E 魔.【ll程蹿。
2 r磊〕 客户司瓣 蠹一 |I魁鞭两l L-,_#j!_?÷—_—_—_萎 —司 一 眺b 嫠 {.. } 固,圈 ,一,… J2雌 服务器 萼} 瑶 舅 一 1● ●; ● ●j 效辩痒 聪努禚 图2—2 J2EE典型的四层结构 ·运行在客户端机器上的客户层组件 ●运行在J2EE服务器上的web层组件 ·运行在J2EE服务器上的业务逻辑层组件 ●运行在EIS服务器上的企业信息系统层软件2.2.2 J2EE核心技术 J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于web的多层应用提供了功能支持:(1)JDBc(Java Data Base connectivny)为访问不同的数据库提供了一种统一的途径(2)JNDI(Java N硼e and Directory Interface)用于执行名字和目录服务。
(3)EJB(Enterprise JavaBeans),提供了一个框架来开发和实施分布式的商务逻辑,由此,显著地简化了可伸缩性和高度复杂的企业级应用的开发。
EJB规范定义了EJB组件在何时、如何与它们的容器进行交互作用。
容器负责 西南交通大学硕士研究生学位
论文 第7页提供公用的服务,例如目录服务、事务服务、安全性、资源缓冲池以及容错 ,性。
(4)RMI,RMI(Remote Method Invoke)协议调用远程对象上的方法。
它使用了序列化方式在客户端和服务端传递数据。
RMI是一种被EJB使用的较低层的协议。
(5)Java IDL/CORBA,开发人员可以将Java和CORBA集成在一起。
(6)JSP,可以接受客户端的请求并动态地生成HT^IL响应页面。
(7)Java servlet,servlet也是一种java程序,它扩展了web服务器的功能。
servlet作为一种服务器端的应用,当被请求时开始执行,这与cGI Perl脚本很相似。
servlet提供的功能大多与jsp类似,不过实现的方式不同。
JsP通常是在HTML页面中嵌入少量的java
代码,而Servlets全部由java写成并生成HTML页面。
(8)xML(Extensible Markup Language)是~种可以用来定义其他标记语言的语言,它通常被用在在不同的系统或不同的商务过程之间共享数据。
xML的发展和java是相互独立的。
但是,它和java的具有相同的目标一平台的独立性。
通常将java和xML结合,可以得到一个完美的、具有平台独立性的企业系统集成方案。
(9)JMs,用来和面向消息的中间件通信的应用程序接口(API)。
(10)JTA(Java Transaction Architecture)定义了一种标准的API,应用系统可以利用它来访问和实现各种事务。
(儿)JTs(Java Transaction service)是cORBA oTs事务监控的基本实现,它规定了事务管理器的实现方式。
(12)Java Mail, Java Mail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。
不仅支持SMTP服务器,也支持IMAP服务器。
(13)JTA(JavaBeans Activation Framework),JavaMail利用JAF来处理MIME编码的邮件附件。
MIME的字节流可以被转换成Java对象,或者转换自Java对象。
大多数应用都可以不需要直接使用JAF。
2.3 MVC设计模式 web应用系统多采用B/s模型的三层或多层结构。
如图2一l所示,主要包括用户界面设计、业务逻辑设计、数据库设计三个主要方面。
web应用的传统开发方式将业务逻辑和表现逻辑集成在一起,混合了HTML
代码与应用程序逻 西南交通大学硕士研究生学位
论文 第8页辑,使得界面设计的更改和业务逻辑的更新困难,进而导致系统容易出错、调试困难、开发进展缓慢。
理想的web
程序要求无论客户是何种类型(如浏览器、Applet或手机等),数据的查询和处理都使用相同的数据资源,改变客户类型和程序界面不会影响到数据处理的部分。
这就要求将程序中“变”和 “不变”的部分分开,尽量减少组件之间不必要的联系,使其相对独立并保持松散连接。
针对web程序中的用户界面、业务逻辑、数据库三种系统设计需求,MVc将系统划分为模型层、视图层和控制器层。
MVC是xerox PARC在20世纪80年代为编程语言small talk一80发明的一种设计模式,至今已经被广泛使用。
Mvc模式利用控制器来分离模型和视图,达到层间松耦合的效果,能够有效地解决在web应用系统开发过程中由于系统结构的复杂程度较高而带来的诸多关键性问题,如
代码之间的松耦合问题,
代码的易维护性问题,组件的可重用性问题,不同技能的开发人员如何分工的问题等等。
Mvc模式已被推荐为sun公司J2EE平台的设计模式,基于MVc模式的J2EE应用开发在实际应用中,受到越来越多的欢迎。
2.3.1 MVc模式的工作原理 ———————+ 方法调用 图2—3 Mvc设计模式 …………..+ 事件 ^lVC强制性地把应用程序的输入、处理和输出分开。
MVC把应用程序分成 西南交通大学硕士研究生学位
论文 第9页三个核心模块;模型、视图和控制器,它们分别担负不同的任务。
图2—3显示了这几个模块各自的功能以及它们的相互关系。
(1)视图 视图是用户看到并与之交互的界面。
视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。
视图可以向模型
查询业务状态,但不能改变模型。
视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。
对于基于请求/响应方式的web应用,模型位于Web服务器端,视图位于用户浏览器端,目前无法做到模型向视图主动发出数据更新事件,使用户界面能自动刷新。
(2)模型 模型是应用程序的主体部分。
模型表示业务数据和业务逻辑,一个模型能为多个视图提供数据。
由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。
(3)控制器 控制器接收用户的输入并调用模型和视图去完成用户的请求。
当web用户单击web页面中的提交按钮来发送HTML表单时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。
(4)MVC处理过程 首先控制器接收用户的请求,并决定应该调用哪个模型来处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。
2.3.2 MVC的优点与不足1、Mvc模式的优点: (1)设计清晰:用模块中的公用方法来操作它的数据和状态,很容易理解如何来控制模块的行为。
当设计一个应用时,这种方法将使整个程序更加容易执行和维护。
(2)可维护性:表示层和业务层分离,可以方便地更改表示层
代码而不用重新编译模型(Model)和控制器(Controller)
代码,使得web应用更易于维护和修改。
(3)高重用和可适应性:MVC模式允许使用各种不同样式的视图,(任意web(HTTP)浏览器或无线浏览器(wAP))来访 西南交通大学硕士研究生学位
论文 第1 1页和可扩展性需求有限的静态的应用程序来说,标准的JsP模式也好似一个可行的选择方案。
但对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,MVc将会使软件在健壮性、
代码重用和结构方厩上一个新的台阶。
尽管在最初构建MVc框架时会花费一定的工作量,但从长远的角度来看,它会大大提高后期软件开发的效率。
2.3.4 JSP ModeI 1与JSP Model2 尽管MVc设计模式很早就出现了,但在web应用的开发中引入MVC却是举步维艰。
主要原因是在早期的web应用开发中,程序语言和HTML的分离一直难以实现。
通常在JSP页面执行业务逻辑的程序
代码,和HTML表示层数据混杂在一起,难以分离出单独的业务模型,造成HTML和Java
代码强耦合、调试困难等诸多问题。
为了解决这些问题,sun公司先后制定了两种规范川一JsP模型1(Modell)和JsP模型2(Model2)。
虽然 ̄Iodell在一定程度上实现了MVC,但是它的运用并不理想;直到基于J2EE的JSPModel2问世才得以改观【1】。
1、JSP Modell Modell被称为“以JsP为中心”的设计模式,是JsP和JavaBean技术的结合。
JsP页面独自响应请求,处理后把结果返回给客户端。
所有的数据都通过JavaBean处理,JsP页面同时实现显示、业务逻辑和流程控制功能,从而快速完成应用开发。
其结构如图2—4所示。
0口 1请求 浏 览 器 ■U 日 4响应 web服务器 应用服务器和数据库 图2~4 JsP Modell结构 使用.