基于Struts架构与Ajax技术结合的C2C化妆品销售平台的设计与实现毕业论文.doc

上传人:sccc 文档编号:4835145 上传时间:2023-05-18 格式:DOC 页数:115 大小:6.84MB
返回 下载 相关 举报
基于Struts架构与Ajax技术结合的C2C化妆品销售平台的设计与实现毕业论文.doc_第1页
第1页 / 共115页
基于Struts架构与Ajax技术结合的C2C化妆品销售平台的设计与实现毕业论文.doc_第2页
第2页 / 共115页
基于Struts架构与Ajax技术结合的C2C化妆品销售平台的设计与实现毕业论文.doc_第3页
第3页 / 共115页
基于Struts架构与Ajax技术结合的C2C化妆品销售平台的设计与实现毕业论文.doc_第4页
第4页 / 共115页
基于Struts架构与Ajax技术结合的C2C化妆品销售平台的设计与实现毕业论文.doc_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《基于Struts架构与Ajax技术结合的C2C化妆品销售平台的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于Struts架构与Ajax技术结合的C2C化妆品销售平台的设计与实现毕业论文.doc(115页珍藏版)》请在三一办公上搜索。

1、基于Struts架构与Ajax技术结合的C2C化妆品销售平台的设计与实现摘要随着互联网技术的广泛应用,电子商务得到了迅速的发展。J2EE技术(包括JSP,Servlet,EJB,web Service,.net等)给WEB应用程序的开发提供了非常灵活的选择,其多层的体系结构向开发者提供了一种基于组件的设计和开发WEB应用的模块化方法。目前Struts已经成为WEB应用开发中最为先进、最为成功的技术框架。而AJAX(ASYNCHRONOUS JavaScript And XML)技术做为一种异步传输技术,电子商务系统网站中,有了更好的效果体现。也给电子商务网站带来一系列的技术更新。本系统结合这两

2、种技术,构建了一个基于这两种技术的电子商务应用系统C2C(Customer To Customer)化妆品销售平台。关键词:J2EE;WEB;JSP;Struts;AJAX;电子商务Based on Struts framework combined with Ajax technology, the design and implementation for the sale of cosmetics C2C PlatformAbstractWith the extensive application of the Internet technology, electronic commer

3、ce has been rapided development. J2EE technology (including JSP, Servlet, EJB, web Service, . Net, etc.) to the WEB application development to provide a very flexible options, multi-tier architecture to provide developers with a component-based design and development WEB application of the modular a

4、pproach. Currently Struts WEB application development has becomed the most advanced and most successful technology framework. And Ajax (ASYNCHRONOUS JavaScript And XML) technology as an asynchronous transfer technology, e-commerce sites in the system, with better results reflected. Also, to bring ab

5、out a series of e-commerce sites to update the technology. The system combines these two technologies, build a technology based on these two e-commerce applications C2C (Customer To Customer) cosmetics sales platform.Key words:J2EE;WEB;JSP;Struts;AJAX;E- commerce毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进

6、行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 毕业论文(设计)授权使用说明本论文(设计)作者完全了解*学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名: 日期: 日期

7、: 注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部

8、分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它目录1 工程项目背景11.1 C2C电子商务及其特点11.1.1较低的交易成本11.1.2 经营规模不受限制11.1.3 便捷的信息搜集21.1.4 加大的销售范围和销售力度21.1.5 扩大的货源21.1.6 高度电子化的支付手段21.2

9、化妆品网上销售项目的提出22 MVC设计模式42.1 设计模式42.2 Web应用系统开发的一般模型42.2.1 Model 1模式52.2.2 Model 2模式62.3 MVC 设计模式62.3.1 MVC 设计模式的结构62.3.2 MVC 设计模式在 J2EE 平台中的应用模型83 STRUTS应用框架与AJAX技术的结合103.1 Struts 框架103.1.1 Struts 框架的提出103.1.2 Struts 的优点103.2 Struts 体系结构113.2.1 Struts 与 Web 应用的关系113.2.2 Struts 的体系结构123.2.3 Struts的工作流

10、程163.2.4 小结163.3 Ajax技术的应用163.3.1什么是AJAX163.3.2解决方案174 C2C销售平台的总体分析214.1 开发环境构建214.1.1 集成开发环境Eclipse214.1.2 Web服务器Tomcat224.1.3 主要插件MyEclipse224.1.4 后台数据库选择224.2 整体需求分析224.2.1功能简介224.2.2网站前台例图234.2.3网站后台例图244.3 数据库结构分析与设计244.3.1数据库总体关系图244.3.2数据库表说明254.4类的设计294.4.1 model类的设计294.4.2 数据库操作类(DAOS)的设计32

11、4.4.3数据库连接类354.4.4 FormBean的设计375 功能模块的设计与实现435.1 会员功能模块的设计与实现435.1.1 按功能分类查看商品435.1.2按品牌分类查看商品445.1.3 Ajax自动完成搜索商品功能465.1.4 高级搜索功能485.1.5 Ajax即时显示功能505.1.6 商品排序功能535.1.7 会员购买商品功能545.1.8 会员订单管理子系统575.1.9 会员留言管理子系统605.2 商家功能模块的设计与实现635.2.1 商家添加商品分类功能635.2.2 商家管理商品分类子系统645.2.3 商家管理库存子系统以及Ajax分类即时显示功能6

12、95.2.4 商家修改商店公告功能725.2.5 商家订单管理子系统745.2.6 商家留言管理子系统775.3 超级管理员功能设计与实现805.3.1商品冻结功能805.3.2商品解封功能825.3.3商店推荐功能846系统测试866.1 系统测试866.2系统测试用例866.2.1游客测试用例866.2.2会员测试用例886.2.2商家测试用例906.2.3 商家测试用例947用户操作967.1 应用系统安装967.2 用户操作967.3 管理员操作968论文结语97参考文献98致谢106附录A 会员页面信息表99附录B 商家页面信息表100附录C 超级管理员后台页面信息表101附录D 业

13、务处理JAVABEAN102附录D MODEL103附录E 控制ACTION104基于Struts架构与Ajax技术结合的C2C化妆品销售平台的设计与实现1 工程项目背景1.1 C2C电子商务及其特点国内首次引入电子商务概念是在 1993 年 ,第一笔网上交易发生在 1996 年 ,2000 年进入高速发展时期。目前 ,电子商务(的发展采取了三种基本模式 ,它们分别为B2B (Business To Busi ness) B2C (Business To Customer) 以及 C2C(Customer To Customer)。与前两者不同的是 ,C2C电子商务模式针对的交易对象是个人使用

14、过的商品。它通过为买卖双方提供一个在线交易平台 ,使各地的卖方可以方便地提供商品上网销售 ,各地的买方可以自行选择商品购买。目前 ,世界上通行的 C2C电子商务网站运作模式普遍采取了如下流程(见图 1.1) 。图1.1 C2C电子商务运作流程作为用户对用户的电子商务模式 ,C2C商务平台的性质与传统的二手市场相似 ,然而 ,它不同于传统二手市场活动在网络上的翻版 ,C2C电子商务自身的特点决定了它必然要优于传统的个人买卖市场。具体表现在以下几个方面:1.1.1较低的交易成本 C2C 电子商务采用了基于开放式标准上的 Internet 通信通道 ,与传统的商务活动通信方式 ,如邮寄、传真或报纸、

15、电台、电视台传播等相比较 ,大大降低了通信费用。同时 ,传统二手市场由二手商收购、控制和保存二手商品 ,而在 C2C电子商务模式下由各个卖家保存商品 ,从而最大限度地降低了库存。而且 ,C2C 电子商务通过减少交易环节 , 使得交易成本更低。1.1.2 经营规模不受限制传统二手市场在经营规模上严格由其营业面积的大小所控制 ,当其经营规模扩大时必须相应地扩大其营业面积。但 C2C电子商务利用 Internet 网络提供的虚拟经营环境 ,可以轻易地通过增加网页来扩大其经营规模。1.1.3 便捷的信息搜集 C2C电子商务应用基于 Internet 网络的电子信息技术 ,使得买卖双方很容易获知对方信息

16、 ,这一点是传统二手市场所无法比拟的。1.1.4 加大的销售范围和销售力度 C2C电子商务是基于Internet 网络的商业模式 ,所面对的客户遍布全国 ,甚至是整个世界 ,与传统的二手市场相比 ,无疑扩大了销售范围。在此基础上营运时间由以前的 8 5 天增大到24 7 天 ,方便了买卖双方之间的联系 ,销售力度也随之扩大。1.1.5 扩大的货源交易成本的降低、销售范围和销售力度的加大 ,必然带动客户的数量。客户数量增加的同时也扩大了货物的来源。1.1.6 高度电子化的支付手段Internet 的发展使电子单据取代传统纸质单据 ,通过电子系统实现快速准确的双向式数据信息交流。同时 ,资金支付、

17、结算通过网络系统完成。采取这种高度电子化的支付手段 ,C2C电子商务方便和加速了资金的流动 ,是传统的二手市场所无法取代的。综上所述 ,C2C电子商务自身所具有的特点无形之中增大了买卖双方的经济效益 ,具有广阔的市场前景与发展潜力。1.2 化妆品网上销售项目的提出随着人们的物质生活不断的提高,而追求的美化生活的物质也越来越多啦,如美食、服装、等。而化妆品也成为了人们追求的热点之一,无论是护肤品,化妆品,都是非常热销的商品。所以此项目的提出,是非常符合市场的需求。在开放的网络环境下,基于浏览器/服务器应用方式,实现消费者和销售者的网上交易和在线电子支付的一种新型的商业运营模式。网上化妆品的销售平

18、台拥有更大的销售助力,一方面以电子流代替了实物流。可以大量减少人力、物力;另一方面突破了时间和空间的限制,使得交易活动可以在任何时间、任何地点进行,极大地方便了最终消费者,和给销售者带来更大的经济利益。目前大多数网上购物系统是基于两层体系结构来进行设计和开发的。随着Internet的飞速发展,传统的两层结构面临者严峻的挑战,其中最为突出的问题是开发负担重,维护困难等。本文针对目前购物系统所面临的问题,基于J2EE框架,采用框架技术以及设计模式,设计开发了一个C2C化妆品销售平台。系统具有高可靠性、可扩展性和可重用性的特点。2 MVC设计模式2.1 设计模式在面向对象系统的设计中,可以认为,类及

19、其生成的对象是构成面向对象系统的最基本元素;采用设计方法组合这些元素,得到构成面向对象系统的构件,同时,这些构件的设计方法在经过不断的改进和完善后逐渐成型,成为构成面向对象系统的基本设计参考,也成为设计模式。开发人员一般采用设计模式来抽象和总结系统构件的设计方法,同时将它应用于新的系统构件的设计中。试用类和对象,使开发人员在元素的层次上实现了重用性;而试用设计模式,则在系统构件的层次上实现了重用性。设计模式使开发人员可以更加简单方便地复用成功的设计和体系结构,同时对将来的问题和需求也具有足够的通用性。将已证实的技术表述成设计模式,可以使新系统的开发者更加容易理解原有的设计思路和方法。设计模式在

20、很大程度上改善了软件程序结构,使设计具有更好的弹性。它提供了在特点应用场景下解决问题的类、对象及相互关系的设计方法。这些方法并不针对于具体的系统,只提供了一种设计系统的思路,这样做知识为系统搭起了一个“空架”,要真正的完成系统的开发还需要完成许多具体的编程工作。一个设计模式可能用于不同的系统,一个系统也可能会用到多个设计模式。使用合适的设计模式,不但使代码可重用性、可扩展性得到增强,而且最重要的使能够加快系统的开发速度,提高开发效率。2.2 Web应用系统开发的一般模型在Web应用开发技术的发展史上,曾经涌现了多种技术,但是随着具有优秀的跨平台性的J2EE平台的出现和发展,越来越多的Web应用

21、开始在J2EE平台上进行开发。而作为J2EE平台主要组成部分之一的JSP,逐渐受到了开发人员的广泛青睐,在Web应用系统的开发过程仲占据了重要的一席之地。这是因为JSP页面不仅拥有跨平台和跨Web服务器的特性,而且可以非常容易的将业务逻辑、服务器端处理过程和静态HTML页“所见所得”的功能相结合,同时实现显示、业务逻辑和流程控制等功能,从而帮助开发人员快速的完成任务。JSP技术规范给出了两种试用JSP开发Web应用的方式,这两种凡是可以归纳为模型一(Model 1)和模型二(Model 2),两者的主要差别在于他们处理业务流程不同。2.2.1 Model 1模式在很多情况下,一组JSP页面就可

22、以构成一个完整的Web应用。这种以JSP页面为中心,以JavaBean处理业务逻辑的开发模型被称作Model 1。在这一模型中,JSP页面独自响应请求并处理结果返回客户,所有的数据通过JavaBean来处理,JSP实现页面的表现。这种模型的体系结构如图2.1所示图2.1 (Model 1)系统结构从图2.1可以看出Model 1体系结构的工作流程如下:从客户端的Web浏览器读取用户请求,并请求发送到JSP页面;JSP页面调用相应的业务逻辑JavaBean处理请求;JavaBean根据用户请求操纵位于EIS层的数据库;JavaBean取得返回结果;JavaBean将取得的结果传送给JSP页面;J

23、SP页面将结果生成HTTP文档返回给客户端;JSP文件是构成Model 1的基础,它独立接收和响应用户请求,并将处理结果返回客户。总的来说,这种模式的优点是简单,可以很好的满足小型应用开发的需求。虽然这种模式也实现了页面表现和业务逻辑相分离,然而不加选择地大量试用这种模型,就需要在JSP页面中嵌入大量脚本小程序(script)或Java代码,尤其是在需要处理的业务逻辑比较复杂时,这种情况会变得非常糟糕。大量的嵌入式代码会使整个页面程序变得异常复杂。虽然对Java开发人员而言,这视乎不算是大问题,但如果JSP页面是由美工人员创建并维护(大型项目通常如此),则代码的开发和维护将出现困难。显然,这种

24、模型不适合大型应用的需求。在任何应用,尤其是企业及应用的开发过程中,使用这种模型难免会导致定义不清的响应和项目管理的困难。此外,这种模型还存在另外一个缺陷:每个JSP页面必须单独负责管理应用程序的状态、验证与安全性。2.2.2 Model 2模式Model 2 也称作 JSP+Servlet+JavaBeans 开发模型。这一模型结合了 JSP 和Servlet 技术,充分利用了两种技术原有的优势。在这个模型中,JSP 技术用于表现页面,Servlet 技术负责完成大量的业务处理,JavaBean 用来存储数据。其中,Servlet 用来处理请求的事务,充当一个控制者的角色,并负责向客户发送请

25、求:它创建 JSP 需要的 Bean 和对象,然后根据用户请求的行为,决定将哪个 JSP页面发送给客户。这种模型的体系结构如图 2.2 所示。图 2.2 (Model 2) 体系结构从开发的观点来看,Model 2 具有更清晰的页面表现,清楚的开发角色划分,可以充分发挥开发团队中的网页设计人员和 Java 开发人员的才干。这些优势在大型项目中表现得尤为突出,网页设计人员可以充分展示自身的美术和设计才能来表现页面,而程序编写人员可以充分发挥自己的业务逻辑处理思维来实现业务处理。另外,从设计结构来看,这种模型充分体现了模型一视图一控制器(MVC)的设计模式。事实上,现存的很多开发框架都是基于这种模

26、型的,例如 ApacheStruts 框架、Java Server Faces 框架等。2.3 MVC 设计模式2.3.1 MVC 设计模式的结构正是由于 Model 1 在开发过程中存在许多缺陷,因此基于 MVC 设计模式的Model 2 成为了在 J2EE 平台上开发大型 Web 应用的首推架构。MVC 是 Xerox PARC 在八十年代为编程语言 Smalltalk-80 发明的一种软件设计模式。它属于结构型设计模式,对于生成结构严谨的模块化应用程序的有效性己得到了广泛的证实。MVC 的核心是实现三层甚至多层的松散耦合,它将一个应用系统分为三个组件:(1) Model:模型指的是真正完

27、成任务的代码,包含应用系统的核心功能,表示一个应用系统的数据,并且包含访问、维护和管理这些数据的逻辑。所有属于应用系统持久状态的数据都应该保存于模型对象里。模型提供的服务必须足够适用于不同的终端。一个模型聚集了相关的数据和操作,以提供一个详细而精确的服务;这些被封装在操作中的抽象事物的功能被模型化。一个模型的接口提供了访问和更新模型状态,执行封装在模型中的复杂进程的方法。模型服务被控制器访问,用于查询或更改模型的状态。当模型状态发生变化时,模型会通报给视图。对大多数 Web 应用程序而言,功能比界面感觉更重要。在模型同界面分离的情况下,代码即可实现可管理性和可重用性。例如,在一个保险应用程序中

28、,模型就是处理计算保险费和同数据库交互的那些业务代码。模型通常也被称作业务逻辑。( 2 ) View:视图表示模型的状态,是应用系统的外观,当模型发生改变时,视图也将随之改变,以维持系统数据的一致性。在 MVC 模式下,通常的设计前提是界面任务较小。当然视图也应该具有一定的功能性并遵守可用性的约束,但视图界面不应当处理数据。事实上,视图的每一部分都只能包含采集数据的逻辑,并把采集到的数据传递给设计模式中的其他组成部分进行处理。( 3 ) Controller:控制器是联系模型与视图之间的纽带,控制模型和视图之间的交互过程。它获取并翻译用户输入的动作,指定执行该动作的模型,或者根据用户的输入和执

29、行的结果来选择下一个视图。MVC模式中的三要素模型一视图一控制器之间的关系以及它们之间的协作如图 2.3 所示。图 2.3 MVC模式中的三要素模型一视图一控制器之间的关系由图 2.3 可知,MVC 模式的处理流程是,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型调用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图返回数据,并通过表示层呈现给用户。2.3.2 MVC 设计模式在 J2EE 平台中的应用模型MVC 设计模式是一种用于分离数据维护和数据表现的方法,在 J2EE 中引入MVC 设计模式,有助于把应用划分为合理的组件,从而可以方便的进行系统的开发、维护和

30、扩充。随着 J2EE 各种组件技术的广泛应用和 MVC 设计模式的发展与完善,J2EE 与MVC 设计模式在 Web 应用系统开发领域达到了完美的结合。目前,这种结合己经被广泛的应用于许多企业级 Web 应用系统的开发过程中,其中,JSP 用于创建与用户交互的视图,Java Bean, EJB 等组件用于创建实现业务逻辑的模型,Servlet用于创建实现业务逻辑与用户交互的控制器。Web 应用客户端的用户动作被视图传递给 Servlet 集中处理,Servlet 处理控制逻辑,调用 Beans 激活业务逻辑或修改模型状态。根据用户动作和模型处理的结果,控制器选择一个视图作为用户请求的响应。这样

31、,就形成了清晰的 MVC 设计模式,简化了 Web 应用系统的开发。图 2.4 基于 J2EE 和 MVC 设计模式的系统模型基于 J2EE 和 MVC 设计模式的系统模型如图 2.4 所示,它借鉴了 Model2 的思想,其技术原理是:以 SQL Server, Oracle, Sybase 等企业级数据库系统作为后台数据库,以 Servlet 等高性能服务端程序作为后台总控程序,JSP 页面在前台运行,Servlet 接受用户的输入,分别调用不同的 JSP 页面向浏览器反馈信息,JSP/Servlet 通过 HTTP 连接在服务器端和浏览器端传递数据;JSP/Servlet 并不使用 JD

32、BC 技术直接访问数据库系统,而是把参数传递给 EJB 组件,由 EJB 组件对数据库进行操作,这样就可以封装系统的内部数据;JavaBean 和 EJB 组件还可以把事务分发到其他组件中进行处理,最后把从数据库返回的结果,由JSP/Servlet 发送到前端显示。Web 服务器是 J2EE 体系结构中间层的一个重要组成部分。它在技术上主要是 Servlet 和 JSP,其功能是实现用户界面的表现。由于 JSP 和 Servlet 本质上是服务端的 Java 小程序,因而可以与 Java Applet 及 HTML 客户端交互,具有执行速度快、用户界面生成灵活、安全性好等特点,同时还能使用 J

33、avaBean 实现一些简单的业务逻辑。J2EE 使用 EJB 服务器作为 EJB 组件的部署环境,在 EJB 服务器中提供了在分布式计算中组件需要的所有服务,如组件生命周期管理、数据库连接管理、分布式事务管理、组件命名服务、自动容错以及负载的自动均衡能力等。实现业务逻辑的 EJB 组件可以在 EJB 服务器中高效运行,支持多客户端访问。HTTP 的客户端一般先向运行在 Web 服务器上的 Servlet 或者 JSP 发出请求,通过在 JSP 中嵌入的 Java 代码或是 Servlet 来调用运行在 EJB 服务器中的 EJB 组件,以实现复杂的业务逻辑。3 Struts应用框架与AJAX

34、技术的结合3.1 Struts 框架3.1.1 Struts 框架的提出近年来,随着 Internet 技术的迅猛发展,计算机网络给人们的工作、学习和日常生活带来很大的便利,同时开发 Web 的技术也在不断更新。J2EE 即是其中一个非常有竞争力的选择。J2EE 体系包括 JSP, Servlet, EJB, Web Service 等多项技术。怎样充分利用这些技术,将它们组合起来构造一个满足项目需要的稳定框架是项目开发过程中的一个关键环节。此环节一般主要由架构设计师完成,设计师将根据项目需求,对 J2EE 体系中的各处技术进行筛选取舍,并考虑到开发过程中的角色分工、后期的运行维护,以及系统可

35、重用性、司一扩展性等诸多因素,建立系统的框架。一个成功的软件需要有一个成功的框架,但软件框架的建立是一个复杂而又持续改进的过程,如果能开发出通用的框架将能大大提高缩短开发时间,减少维护工作量。Struts 就是其中一个流行的基于 J2EE 的框架。通过使用 Struts 框架,你不需要再花费大量的时间在整个应用上,你可以集中精力编写应用程序业务逻辑和表示层代码,其它事情都交给 struts 框架负责而无需你关心。显然这将大大加速项目的开发进程,并降低了学习与开发 web应用的难度。Struts 最早是作为 Apache Jakarta 项目的组成部分问世运作。项目的创立者希望通过对该项目的研究

36、,改进和提高 Java Serve Pages(JSP), Servlet、卷标库以及面相对象的技术水准。Struts 是一个开放源代码的 Web 的应用框架,基于 MVC 设计模式,使用 ServJet 和 JSP API 建立,可以用来构建复杂的 Web 应用。它允许我们分解一个应用程序的商业逻辑、控制逻辑和表现逻辑的代码,使它的重用性和维护性更好。3.1.2 Struts 的优点在使用 Java 技术建立 Web 应用的实例中,由于 JSP 技术的发展,很快这种便于掌握和可实现快速开发的技术就成了创建 Web 应用的主要技术。JSP 页面中可以非常容易地结合业务逻辑(Jsp:useBea

37、n)、服务端脚本和 HTML,在 JSP 页面中同时实现显示,业务逻辑和流程控制,从而可以快速地完成应用开发。现在很多的 Web 应用就是由一组 JSP 页面构成的,这种以 JSP 为中心的开发模型又称之为 JSP 模式 1.这种开发模式可以很好的满足快速和小规模的应用开发的需要,但是不能满足大型应用的要求,从工程化的角度考虑,它也有一些不足之处:应用的实现一般是基干过程的,一组 JSP 页面实现一个业务流程,如果要进行改动,必须在多个地方进行修改。这样非常不利于应用扩展和更新。由于应用不是建立在模块上的,业务逻辑和表示逻辑混合在 JSP 页面中,页面被嵌入大量的 Script 或 Java

38、代码,非常不利于系统的重用和改动。为了解决这些问题,在开发大型的 Web 应用时我们可以采用 JSP 模式 2,一个基于 MVC 模式的框架。MVC 是 Model-View-Controller 的缩写,Model 代表的是应用的业务逻辑(通过 JavaBean EJB 组件实现),View 是应用的表示层(由 JSP页面实现),Controller 提供应用的处理程控(一般由一个 Servlet 实现),通过这种设计模型把应用逻辑,处理过程和显示逻辑分开由不同的组件实现。这些组件可以进行交互和重用,从而弥补了 JSP 模式 1 的不足。JSP 模式 2 独有的优点使其更易于实现对大规模系统

39、的开发和管理,但是开发 MVC 系统比简单的 JSP 开发要复杂许多,原来通过建立一个简单的 JSP 页面就能实现应用现在变成了多个步骤的设计和实现过程,因此需要更多的时间学习和掌握。采用 MVC 实现 Web 应用时,选一个现成的 MVC 框架,在此之下进行开发,就能取得事半功倍的效果。现在有很多可供使用的 MVC 框架,由于 Struts 有完整的文档并且相对来讲比较简单,所以用它开发 MVC 系统还是比较方便的。3.2 Struts 体系结构Struts 由一组相互协作的类(组件)、Servlet 以及 JSP 卷标库组成。基于Struts 架构的 Web 应用程序基本上符合 JSP 模

40、式 2 的设计标准,可以说是 MVC设计模式的一种实现。Struts 有其自己的控制器(Controller),同时整合了其它的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts 可以很容易的与数据访问技术相结合,包括 EJB, JDBC 等。在视图层,Struts 能够与 JSP, XSL 等等这些表示层组件相结合。3.2.1 Struts 与 Web 应用的关系既然 Struts 叫做 Web Framework,那么它肯定主要基于 Web 层进行应用系统开发。按照 J2EE 架构的标准,Struts 应当和 JSP/SERVLET 一样,存在于 WebCont

41、ain 一层。3.2.2 Struts 的体系结构Struts 框架是 MVC 的实现,下面就分别从 Model, View, Controller 来看看 Struts 的体系结构。图 3.1 显示了 Struts framework 的体系结构在响应客户请求的时候,各个部分的工作原理:图 3.1 Struts 体系结构框架中三个部分模型,视窗和控制器。在框架中,模型分为两个部分,系统的内部状态,内部状态通常由一组表示根据设计或应用程序复杂度的不同,这些可以是自包含的并具有持续的状态,或只在需要时才获得数据从(某个数据库)。可以改变状态的操作(事务逻辑)。大型应用程序通常在方法内部封装事务逻

42、辑(操作),这些方法可以被拥有状态信息的Bean调用比如购物Bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。小型程序中,操作可能会被内嵌在Action类,它是Struts框架中控制器角色的一部分当逻辑简单时这个方法很适合一般来说,应该将事务逻辑要做什么与Action类所扮演的角色(决定做什么)分开。视图由JSP建立,Struts包含扩展自定义标签库,可以简化创建完全国际化用户界面的过程。Struts中,基本的控制器组件是ActionServlet类中的实例servlet,实际使用的servlet在配置文件中由一组映射(由Action

43、Mapping类进行描述)进行定义。表2.1:体系结构中所试用的组件ActionServlet控制器ActionClass包含事务逻辑ActionForm显示模块数据ActionMapping帮助控制器将请求映射到操作ActionForward用来指示操作转移的对象ActionError用来储存和回收错误Struts标签库可以减轻开发显示层次的工作ActionServlet(控制器)ActionServlet组件在Struts框架中扮演的角色是控制器,其继承自javax.servlet.HttpServlet类。控制器ActionServlet组件负责将HTTP的客户请求信息封装后,根据配置文

44、件的定义,再转发到适当的处理器。根据servlet的标准,所有的servlet必须在Web配置文件中声明,因而ActionServlet也必须在web.xml中定义。当用户向服务器提交请求时,实际上信息是首先发送到控制器ActionServlet组件。只要控制器获得了请求,就会将请求信息转给一些辅助处理类进行处理一般情况下需要继承Action类,在此基础上再开发自己的ActionServlet实例。Action(包含事务逻辑)Action组件的功能类似于客户请求和业务逻辑处理之间的一个适配器,从而将请求与业务逻辑分开分离后可以使客户请求和类Action之间实现多个点对点的映射,另外组件还提供其

45、他辅助功能,例如认证、日志和数据验证。具体Action类的功能一般都在execute()函数中完成,主要包括以下内容:辅助ActionForm进行表单数据的检查。执行必要的业务逻辑,例如存取数据库、调用实体Bean等。更新服务器端的bean数据,后续对象中可能会用到这些数据。根据处理结果决定程序的转向,并以ActionForward对象的形式返回给ActionServlet。ActionForm(显示模块数据)ActionServlet使用ActionForm使用来保存请求的参数。ActionForm实质上是一个JavaBean。这些Bean的属性名称与HTTP请求参数中的名称相对应。控制器将

46、请求参数传递到ActionForm的实例,然后将该实例传送到Action类。ActionForm使用了viewHelper模式,是对HTML中的form一个封装。其中包含validate方法,用于验证form数据的有效性。ActionForm是一个符合规范的类,所有的属性都应满足get和set对应。对于一些复杂的系统,还可以采用DynaActionForm来构造动态的,即通过预制参数来生成这样可以更灵活的扩展程序。框架假设用户在应用程序中为每个表单都创建了一个ActionForm Bean,对于每个在struts-config.xml文件中定义的bean,框架在调用Action类的perfor

47、m()方法之前会进行以下操作:在相关联的关键字下,它检查用于适当类的Bean实例的用户会话,如果在会话中没有可用的Bean,它就会自动创建一个新的Bean并添加到用户的会话中。对于请求中每个与Bean属性名称对应的参数,调用相应的设置方法。当Action perform()被调用时,最新的ActionForm bean传送给它,参数值就可以立即使用了。ActionForm类扩展类org.apach.struts.action.ActionForm类,程序开发人员创建的bean能够包含额外的属性,而且ActionServlet可能使用反射(允许从已加载的对象中回收信息)访问它。ActionForm类提供了另一种处理错误的手段,提供两个方法:Public ActionErrors validate(ActionMapping mapping,ServletRequest request)Public ActionErrors validate(ActionMa

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号