网上书店毕业论文jsp.doc 23页

  • 224.86 KB
  • 2022-04-29 14:09:44 发布

网上书店毕业论文jsp.doc

  • 23页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'网上书店交易系统设计摘要:本文重点介绍了“网上书店”的开发意义及如何分析、设计和实现的。基本功能包括用户注册会员、登录、图书展示、图书查询、在线浏览图书、远程购买、远程交易等。系统开发工具是使用jsp及Access数据库,系统是基于零售商实体户背景开发的,可以有效的实现网上图书交易。在论文中首先介绍了电子商务及开发所使用软件的相关知识,并根据以上知识制作网站。文中主要包括需求分析,总体设计,功能设计,数据库设计与实现等,并通过流程图和文字加以解释说明。关键词:JAVA,Struts,Servlet,JSP,电子商务,网络编程,网上书店OnlinebookstorebusinesssystemAbstract:Thisarticlehasintroducedthemainbodyof‘thewebbookshop’exploitationsignificanceandhowtoanalyse,desigeandrealiaze.Thefundamentalfunctionlogsonincludingconsumerregistermember,thebookshowsbook,browsesonline,long-rangepurchase,long-rangebusinessetc.ThesystemdevelopimplementistousejspandtheAccessdatabase,systemisthatbackgroundisdevelopmentowingtoentityfamilyofretaildealer,thebooktradesonbeingabletobeeffectiverealizinganet.AndhaveintroducedElectronicCommercefirstandhavedevelopedthewhatbeusedasoftwarerelevanceknowledgeinthethesis,makewebsiteaccordingtoallaboveknowledge.Includetheneedanalysis,populationdesign,functiondesignmainlyinculture,databasedesignandrealizationetc.,andbythefactthattheflowchartandcharactersexplainexplanationadditionally.Keywords:JAVA,Struts,Servlet,JSP,E-commerce,Networkprogramming,onlinebookstore.22 目录:网上书店交易系统设计11.电子商务概述31.1 电子商务概念31.2我国电子商务发展现状31.3电子商务的发展前景42.Struts框架与JAVA语言介绍42.1Struts的由来和发展42.1.1MVC简介52.2Struts优缺点72.3Struts的工作流程82.4JAVA语言概述92.5JAVA语言在网络中的功能102.6Servlet技术103.网上书店详细设计113.1开发网络书店的意义113.2需求分析123.3总体设计133.4功能设计133.5数据库设计与实现143.6网上书店基本流程153.7网上书店各页面功能163.8业务逻辑层各bean功能193.9控制处理层204.总结21参考文献2322 1.电子商务概述1.1 电子商务概念随着电子技术和因特网(Internet网络)的发展,信息技术作为工具被引入到商贸活动中,产生了电子商务(ElectronicCommerce简写EC或ElectronicBusiness简写EB)。通俗的说,电子商务就是在计算机网络(主要指Internet网络)的平台上,按照一定的标准开展的商务活动。当企业将它的主要业务通过内联网(Intranet)、外联网(Extranet)以及Internet与企业的职员、客户、供销商以及合作伙伴直接相连时,其中发生的各种活动就是电子商务。1.2我国电子商务发展现状随着计算机与网络技术的普及与发展,我国的电子商务迅速崛起,众多的信息技术企业、风险投资公司、生产流通企业纷纷开展电子商务。从国家经贸委对630多家企业的调查来看,目前企业在互联网应用和开展电子商务方面,东部地区的企业好于中部地区,中部好于西部;所在地在大城市的企业好于地处偏远的企业,新企业好于老企业。经济实力强、利润空间大的企业,信息化建设和电子商务开展得比较好。如联想集团目前已经完成了供应链环节的信息化,做好了开展电子商务的全部基础性工作。同时,大多数企业对信息化建设比较重视,普遍看好电子商务的未来,企业内部信息化建设取得了积极进展,正在由信息孤岛向信息集成跨越;建立在网络应用基础上的电子商务建设也取得了一定进展,一些企业已经通过网络开展采购业务和网上销售。22 企业电子商务的开展一是提高了企业的经营管理水平;二是促进了企业经营管理观念和制度的变革;三是培养和锻炼了一大批人才;四是改善了企业形象,提高了企业的市场认知程度。互联网应用水平较高的企业,其市场开拓能力、成本控制能力、业务流程的重组及企业管理的观念与制度,均得到了不同程度的提高和优化。中石化集团通过网上采购,对采购全过程进行实时监控,使采购过程公开化、规范化,实现了“阳光作业”,在很大程度上杜绝了暗箱操作,大大降低了采购成本,在2000年8月15日物资采购系统正式投入运行使用后的8个月中,上网供应商1700多家,网上累计成交金额34.8亿元,节约采购资金1.87亿元,节约5%。联想集团通过实施资源管理计划(ERP),规范和优化了77个业务流程,加强了财务、销售、生产制造、采购等子系统之间的协同性。许多企业在实施信息化和电子商务建设中,企业领导的观念发生了很大变化,深化了企业内部管理制度的改革,也培养和锻炼了一大批既懂业务又懂信息技术的综合性人才。1.3电子商务的发展前景21世纪将进入电子商务时代,是社会发展的必然,我们将别无选择地生活在电子商务时代。如何面对电子商务方式、如何适应数字化生存并积极参与电子商务时代的国际竞争,是涉及到每个人、每个企业、部门及国家发展与生存的重大问题,也是国家管理部门现在应该规划、并促进其发展的战略问题。目前电子商务在国际上已经得到迅速发展和实践,将在国际商贸和社会生活中占据主导地位。估计到2000年电子化贸易额将有上千亿美元的交易量,并形成世界性电子商务环境。国内电子商务的研究逐渐深入,实践上已经有所行动。我国的管理部门应密切国际合作、制定相应法律、法规和技术标准,及时营造良好的电子商务环境;商务部门和应充分认识到电子商务的社会、经济和生活等方面的特点、电子商务活动的方式方法、以及电子商务的发展和应用表现,促使管理人员熟悉电子商务环境、逐步进入电子商务的活动方式、进行电子商务管理、最终能参与电子商务时代的国际竞争。2.Struts框架与JAVA语言介绍2.1Struts的由来和发展Struts框架工具是Apache基金会Jakarta项目中推出的一个子项目。Struts在英文中是支架、支撑的意思,这也体现出Struts在开发Web应用程序过程所起到的重要作用,Struts为Web22 应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时Struts框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用Struts可以简化遵循MVC设计模式的Web应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥JSP/Servlet优点、并具有强可扩展性的Web应用。总之,Struts的出现使得Web应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。Struts架构一经推出,即受到Java开发群体的广泛重视,从2004年开始逐渐升温,并日渐成为Java创建Web应用开发的最流行的框架工具,在目前JavaWeb程序员的招聘要求中,几乎都提出了对Struts的要求,精通Struts架构已经成为JavaWeb程序员必备的技能。2.1.1MVC简介模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。1、模型(Model)模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.2、视图(View)  视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。3、控制器(controller)控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。22 图2-1MVC组件类型的关系和功能MVC式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的复杂及难以维护。很多VB,Delphi等RAD程序都有这种问题。甚至现在的C#,Java有时候也会出现把业务逻辑写在显示模块中的现象。管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSPModel2问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能。JSPModel1与JSPModel2SUN在JSP出现早期制定了两种规范,称为Model1和Model2。虽然Model2在一定程度上实现了MVC,但是它的应用用并不尽如人意。22 图2-2JSPModel1图2-3JSPModel2  Model2容易使系统出现多个Controller,并且对页面导航的处理比较复杂,有些人觉得model2仍不够好,于是CraigR.McClanahan2000年5月提交了一个WEBframework给JavaCommunity.这就是后来的Struts.2001年7月,Struts1.0,正式发布。该项目也成为了ApacheJakarta的子项目之一。Struts质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑。2.2Struts优缺点 优点: 22 Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。 除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。 关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。缺点: Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。 Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。 Struts从产生到现在还不到半年,但已逐步越来越多运用于商业软件。虽然它现在还有不少缺点,但它是一种非常优秀的J2EE MVC实现方式。2.3Struts的工作流程下图是Struts的工作流程,所有的请求都提交给ActionServlet来处理。图2-4Struts的工作流程图22 ActionServlet是一个FrontController,它是一个标准的Servlet,它将request转发给RequestProcessor来处理,ActionMapping是ActionConfig的子类,实质上是对struts-config.xml的一个映射,从中可以取得所有的配置信息RequestProcessor根据提交过来的url,如*.do,从ActionMapping中得到相应的ActionForn和Action。然后将request的参数对应到ActionForm中,进行form验证。如果验证通过则调用Action的execute()方法来执行Action,最终返回ActionFoward。ActionFoward是对mapping中一个foward的包装,对应于一个url。ActionForm使用了ViewHelper模式,是对HTML中form的一个封装。其中包含有validate方法,用于验证form数据的有效性。ActionForm是一个符合JavaBean规范的类,所有的属性都应满足get和set对应。对于一些复杂的系统,还可以采用DynaActionForm来构造动态的Form,即通过预制参数来生成Form。这样可以更灵活的扩展程序。ActionErrors是对错误信息的包装,一旦在执行action或者form.validate中出现异常,即可产生一个ActionError并最终加入到ActionErrors。在Form验证的过程中,如果有Error发生,则会将页面重新导向至输入页,并提示错误。Action是用于执行业务逻辑的RequsestHandler。每个Action都只建立一个instance。Action不是线程安全的,所以不应该在Action中访问特定资源。一般来说,应改使用BusinessDelegate模式来对Businesstier进行访问以解除耦合。Struts提供了多种Action供选择使用。普通的Action只能通过调用execute执行一项任务,而DispatchAction可以根据配置参数执行,而不是仅进入execute()函数,这样可以执行多种任务。如insert,update等。LookupDispatchAction可以根据提交表单按钮的名称来执行函数。2.4JAVA语言概述Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期,Java比较多的用在浏览器上,插入到网页中(即是JavaApplet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着Java22 Servlet的推出,Java在电子商务方面开始崭露头角,最新的JSP(JavaServerPage)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务项目的必然选择。2.5JAVA语言在网络中的功能Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个URL类型的对象,然后用Java中相应的方法(method)获取该对象所代表的资源。2.6Servlet技术JavaServlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用JavaServlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合JavaServlet规范,Servlet是完全平台无关且是Web服务器无关的。由于JavaServlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此JavaServlet效率非常高。但JavaServlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,JavaServlet是利用输出HTML语句来实现动态网页的,如果用JavaServlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么SUN还要推出JavaServerPages的原因。22 3.网上书店详细设计3.1开发网络书店的意义3.1.1网上书店挤压盗版空间如今发展最快的,最时髦的,恐怕就是网络了。网络给人们带来了实惠、虚拟、幻化,也给文学和图书带来了广阔的生存空间。盗版者利用科学技术,瞄准正版书与盗版书的差价牟取暴利。网络书店的兴起无疑给盗版商以有力的打击,因为发达的网络可以直接疏通图书的发行渠道,缩短了网上购书者与出版社的距离,给图书消费者以清新、便宜的享受。3.1.2网上书店浓缩了图书的库存空间传统图书店内的图书摆放面积是有限的,每增加一本书其成本都在以一定比例增加,而网络书店解决了存储空间问题,每增加一本书成本增长几乎为零。3.1.3数量、种类多,出版时间跨度大综合性的网上书店涉及各种各类内容的图书,提供订购的书目信息达上万、几十万条,而图书出版的时间有最新出版的,也有几十年前的,这是传统书店难以做到的。3.1.4不受时间、地域限制网上书店是24小时向全球各地的用户提供网上服务的,用户借助网络可以漫游于世界各地的图书海洋中,随时选书、下订单。中国人不出国可以去到美国最大的Amazon网上书店;广东人可以不出省去到北京图书大厦(http:∥www.BJBB.com),进行异地购书。3.1.5信息丰富网上书店的栏目丰富:特价书、书业视窗、销售排行、新品上架、最新推荐等,动态地向用户提供各种信息,让用户了解书市的最新情况。另外,每种被检索出来的图书也有详尽的介绍,如基本书目信息、封面、目次、内容提要、书评等,这些信息都有助于用户选书。3.1.6多途径综合检索22 网上书店主要提供分类和自定义搜索的方式对图书或其它商品(音像制品、电脑软件等)进行查找。分类一般是结合《中图法》按用户的阅读习惯或兴趣分类,同一类的图书相对集中在一起,方便用户在同类图书中挑选出高质量的图书。自定义搜索是用户根据自己所需的图书以主题、书名、著者、出版社等信息作为检索点对图书或其它商品进行一般搜索,如果希望检索结果更准确就使用高级检索---同时使用几个检索点查找。这种方法相对于其它购书方式来说找书更快捷。3.1.7价格低廉一般来讲,网上书店买书,要比普通书店便宜。由于抛弃了传统书店运作的所需的服务设施和多重环节,绝对的成本低廉。由于网上书店运营方式是有订购需要时直接到出版社取效性强,除了一部分有收藏价值的外,绝大多数图书都会“掉价”。3.2需求分析网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。一个典型的网上商城一般都需要实现商品信息的动态提示、购物车管理、客户信息注册登录管理、订单处理等模块。根据网上书店的基本需求,本系统需要完成的具体任务如下:A.书图查询:当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者信息快速查询所需书目信息的功能。B.购物车管理:当客户选择购买某图书产品时,应该能够将对应图书信息,如:价格、数量记录到对应的购物车中,并允许客户返回书目查询页面,选择其他商品,并添加到购物车中,当对应的购物订单生成后,应该能够自动清除以生成订单的购物车中的信息。C.订单处理:对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货、送货的处理。D.会员注册:为了能够实现图书商品的购买,需要管理客户相关的联系方式、送货地点等相关的信息。22 3.3总体设计下表中给出了构成网上书店系统的各个组件,通过下表,可以从宏观上了解各个组件的功能。表3-1组件功能表:用户表示层(视图)控制处理层(控制器)业务逻辑层(模型)bookMain.jspActionFormActionDBBookShow.jspLoginFormFirstActionConstantsBookShopCart.jspUserFormBookDetailActionBookOrderAddress.jspBookIdFormBookSearchActionBookCatOrderConfirm.jspBookCatIdFormLoginActionOrderUserLogin.jspPageIdFormBookBuyActionShopCartUserRegister.jspBookShopCartFromAddrConfirmActionUserOrderHistory.jspBookSearchFormClearShopCartActionWrong.jspDeliveryFormOrderDelActionOrderIdFormOrderHistoryActionPageCtrlActionRegistActionUpdateShopCartAction3.4功能设计3.4.1图书信息管理该模块实现图书书目信息的分类显示,也是提供图书信息依据书名及作者信息快速搜索的功能。此外,在用户选择了对应书目信息后,还可以显示出有关该图书的详细信息,以便于客户了解所购商品。3.4.2购物车管理用于维护每一个进入网上书店的客户对应的购物车。即将客户所选购的图书商品信息记录到对应的购物车中,以便于到收银台进行结账处理。3.4.3会员注册实现网上书店客户信息的注册、及身份验证。由于目前网上商城普遍采用的方式为送货上门或者邮寄,因此需要收集与客户相关的联系方式、通信地址等信息。3.4.4订单处理根据客户购物车中的信息,以及客户所选择的送货方式和付款方式,连同客户对应的个人信息生成订单,以便于后续进行送货处理。22 3.5数据库设计与实现3.5.1数据库的需求分析依据网上书店的处理需求,对就数据表的设计及功能如下。A.图书基本信息表:存放网上书店所销售图书的基本信息。B.图书分类基本信息表:存放网上书店所提供图书分类的信息。C.客户基本信息表:存放书店客户的基本信息。D.订单信息表:存放与客户相关的订单的基本信息。E.订单条目详细信息表:存放订单中详细条目的基本信息。3.5.2创建数据表的脚本代码如下://图书分类基本信息表DROPTABLEbookcatCASCADECONSTRAINTS;CREATETABLEbookcat(idNUMBERPRIMARYKEY,catnameVARCHAR2(40)NOTNULL);//图书基本信息表DROPTABLEbookCASCADECONSTRAINTS;CREATETABLEbook(idNUMBERPRIMARYKEY,catidNUMBERNOTNULLREFERENCESbookcat(id)ONDELETECASCADE,nameVARCHAR2(50)NOTNULL,priceNUMBERNOTNULL,salepriceNUMBERNOTNULL,descriptVARCHAR2(500)NOTNULL,authorVARCHAR2(50)NOTNULL,contentsVARCHAR2(2000)NULL,imageVARCHAR2(50)NULL);//客户基本信息表DROPTABLEstoreuserCASCADECONSTRAINTS;CREATETABLEstoreuser(usernameVARCHAR2(20)PRIMARYKEY,passwordVARCHAR2(20)NOTNULL,nameVARCHAR2(20)NOTNULL,telVARCHAR2(20)NOTNULL,addressVARCHAR2(100)NOTNULL,22 emailVARCHAR2(50)NULL);//订单信息表DROPTABLEordersCASCADECONSTRAINTS;CREATETABLEorders(idNUMBERPRIMARYKEY,usernameVARCHAR2(20)NOTNULLREFERENCESstoreuser(username)ONDELETECASCADE,timeDATENOTNULL,deliveryVARCHAR2(20)NOTNULL,paymentVARCHAR2(20)NOTNULL);3.6网上书店基本流程网上书店在运行过程中页面的基本流程如下图:bookMain.jsp图书查询bookShow.jsp图书详情显示bookShopCart.jsp购物车管理userRegister.jsp新会员注册userLogin.jsp会员登录orderAddress.jsp会员地址确认orderConfirm.jsp订单确认orderHistory.jsp历史订单查询图3-1网上书店流程图22 3.7网上书店各页面功能3.7.1网上书店首页bookMain.jsp详细功能及描述l获取图书分类信息以及图书基本信息集合l循环显示图书分类信息l提交显示指定分类图书信息的请求,同时传递对应图书分类编号l提交书目搜索请求及搜索条件的表单l提交搜索关键字的表单元素l选择搜索条件的表单元素l显示图书记录总数、当前页面编号以及总页数l循环显示对应图书书目信息l显示图书名称、价格、销售价格、作者信息l提交显示图书详细信息请求的超链接l提交分页显示请求的超链接,同时提交指定页面编号单击分类时将提交“bookSearch.do?bookCatId=<%=bookCat.getId()%mode=1”请求,以便于获取对应图书分类的相关信息。当选择了查询依据,并且输入了对应关键字,单击“搜索”按钮时,将提交“bookSearch.do”请求,同时提交查询条件,进行后续书目信息搜索的处理。当在书目列表中单击查看详细信息请求时,将发出“bookDetail.do”请求,同时传递对应图书记录的编号,以获取指定图书更加详细的信息。此外,在单击“首页”、“上页”、“下页”超链接后,将“bookPage.dopageId=<%=schSta.getPageId()-1%>”、“bookPage.dopageId=<%=schSta.getPageId()+1%>”等请求,以实现页面的跳转。3.7.2显示图书详细信息bookShow.jsp页面详细功能及描述l依据图书记录编号获取待显示详细信息的图书类型的对象l分别显示该图书对象的详细信息l显示图书封面图片、名称、详细介绍、价格、销售价格l单击“购买”按钮后,将提交放入购物车的请求l显示图书目录本页面是在控制器响应了网上书店主页提交的查看图书详细信息请求,即22 “bookDeatial.do”请求后,跳转到的页面。在该页面中将获取到的指定图书详细信息显示出来,同时如果用户单击“购买”按钮,将提交“bookBuy.do?bookId=<%=book.getId()%>”请求,进行后续放入购物车的处理。3.7.3显示购物车信息bookShopCart.jsp页面详细功能及描述l获取该用户购物车中信息的集合l提交更新购物车请求的表单l循环显示购物车中的每一条购物记录信息l设置购买数量的文本框l显示图书销售价格l显示图书总价l从购物车中移除购买记录信息l更新订单按钮l提交继续购书请求的超链接l提交清空购物车请求的超链接l提交结算付款请求的超链接本页面是在用户选择购买某种图书商品后,进入的页面。在该页面中将显示该用户购物车中现有的所有购买需求记录。同时提供更新购物车的操作界面,例如,可以输入购买数量或者选择删除购买记录。单击“更新订单”按钮后,将提交“updateShopCart.do”请求,进行更新购物车信息的处理。此外,也可以单击“继续购书”按钮,提交“bookSearch.do”请求返回网上书店主页面继续购书,或者单击“清空购物车”按钮提交“clearShopCart.do”请求。同时,如果用户确认去收银台,则可以单击“结算付款”按钮跳转到“userLogin.jsp”页面进行用户登录。3.7.4网上书店客户登录userLogin.jsp页面详细功能及描述l提交用户登录请求,同时提交登录用户信息的表单l提交登录用户用户名及密码的表单元素l登录按钮l提交新用户注册请求的超链接本页面是客户在购物车页面单击“结算付款”按钮后跳转过来的页面,在该页面中,用户在表单中输入用户名及密码,单击“用户登录”按钮后,将提交22 “login.do”请求,以便于进行后续获取用户相关信息的处理,对于没有用户身份的新客户,可以在本页面中单击“新用户注册”按钮,跳转到“userRegister.jsp”页面进行用户注册。3.7.5网上书店客户注册userRegister.jsp页面详细功能及描述l提交新用户注册请求,同时提交新用户注册信息的表单l提交注册用户姓名、地址、电子邮件地址、电话、用户名、密码以及确认密码的表单元素l注册按钮在本页面中注册用户可以在表单中输入对应的注册信息,在单击“注册”按钮后,将提交“regist.do”请求,同时提交新用户的相关注册信息,以便于进行后续新用户注册的处理。3.7.6选择送货方式及付款方式orderAddress.jsp页面详细功能及描述l获取客户信息l提交选择送货方式及付款方式的表单l显示客户信息、姓名、地址、电话、送货方式、付款方式本页面是在用户登录通过后,跳转到的页面,在该页面中首先获取对应用户的客户资料,同时提供送货方式以及付款方式的选择,在用户单击“确认”按钮后,将提交“addrConfirm.do”请求,生成生续完整的订单信息。3.7.7确认订单信息orderConfirm.jsp页面详细功能及描述l获取购物车信息集合l获取订单信息、客户信息l显示客户姓名、地址、电话l显示购物车中的信息l显示所购图书书名、数量、总价l显示整张订单总价l显示订单信息中的送货方式信息l显示付款方式信息l显示订单编号l提交继续购书的请求l提交查看该用户所有订单的请求22 本页面中将全面显示该客户本次购物生成的详细订单信息,同时如果单击“继续购书”按钮将提交“bookSearch.do”请求返回网上书店主页面,如果单击“查看订单”按钮将提交“orderHistory.do”,跳转到“orderHistory.jsp”页面。3.7.8显示客户所有订单信息orderHistory.jsp页面详细功能及描述l获取该用户所有历史订单信息l显示订单信息信息列表l显示订单编号、时间、总价l提交取消订单请求的超链接l提交返回购书请求的超链接本页面将显示与当前用户相关的所有订单信息。同时用户可以单击“取消此单”超链接提交“delOrder.do?orderId=<%=order.getId()%>”请求删除该订单信息,此外也可以单击“返回购书”按钮提交“bookSearch.do”请求跳转到网上书店主页面。3.8业务逻辑层各bean功能在本系统的业务逻辑层中分别完成了对图书信息、图书分类信息、购物车信息、订单信息以及客户信息等类型对象的保存和处理。所有文件包含在WEB-INFclasses目录中3.8.1封装了数据库相关操作的bean(DB.java)采用了Struts架构下提供的数据库连接池建立与数据库的连接,在该bean中通过构造方法建立与数据库的连接,并提供了相应的方法完成数据库中的查询、更新等操作,同时也提供了关闭数据库连接的方法,以便于及时释放资源。3.8.2封装了图书住处处理的bean(Book.java)除声明了与图书基本数据相关的基本属性和方法之外,还提供了图书信息的查询显示处理相关的几个方法。其中在调用查询满足条件的图书信息方法时,需要提供查询的依据,例如,分类、按作者还是按书名,对应关键字等。3.8.3封装了图书分类信息处理的bean(BookCat.java)除了声明了与图书分类数据相关的基本属性和方法之外,还提供了与图书分类信息查询及显示处理相关的几个方法。3.8.4封装了图书查询及显示条件的bean(SearchStatus.java)22 主要封装了设置图书搜索查询条件相关的属性和方法,该程序中的方法将在搜索图书信息的程序中被调用。3.8.5封装了购物车信息处理的bean(ShopCart.java)为了能够简化类的定义,考虑到购物车中所需要处理的图书基本信息与图书类型对象中封装的信息相同,只是需要再补充上购买数量即可,因此在定义该类时继承了图书信息类。3.8.6封装了订单住处处理的bean(Order.java)除声明了与订单中所需要处理的数据相关的基本属性和方法之外,还提供了与订单查询、插入及删除处理相关的几个方法。此外,也提供了计算该订单所涉及总金额的方法。3.8.7封装了客记信息处理的bean(User.java)除声明了与用户数据相关的基本属性和方法之外,还提供了与确认用户身份、获取用户相关信息、插入新用户信息处理相关的几个方法。3.8.8常量文件(Constants.java)3.9控制处理层下表是网上书店系统中的Action映射表。该映射决定了 Action与其他Web组件之间的关联关系。作为前后台之间桥梁,本表中指明了每个Action的入口(即调用Action的组件)及出口(即请求转发的目标组件),以及传递Action的ActionForm。表3-2Action映射表:Action入口ActionForm出口BookSearchActionIndex.jspBookSearchFormBookMain.jspBookDetailActionBookMain.jspBookIdFormBookShow.jspPageCtrlActionBookMain.jspPageIdFormBookMain.jspLoginActionUserLogin.jspLoginFormOrderAddress.jspRegistActionUserRegister.jspUserFormUserLogin.jspBookBuyActionBookShow.jspBookIdFormBookShopCart.jspUpdateShopCartActionBookShopCart.jspBookShopCartFormBookShopCart.jspClearShopCartActionBookShopCart.jspBookShopCart.jspAddrConfirmActionOrderAddress.jspDeliveryFormOrderConfim.jspOrderHistoryActionOrderConfirm.jspOrderHistory.jspOrderDelActionOrderHistory.jspOrderIdFormOrderHistory.jsp3.9.1BookSearchAction.java22 该程序负责处理查询显示满足条件图书书目信息时提交的“bookSearch.do”请求3.9.2PageCtrlAction.java该程序负责处理分页显示图书书目信息时进行页面跳转时提交的“bookPage.do”请求。3.9.3BookDetailAction.Java该程序负责处理显示指定图书编号的对应图书详细信息时提交的“bookDetail.do”请求。3.9.4BookBuyAction.java该程序负责处理购买图书时提交的“bookBuy.do”请求。3.9.5UpdateShopCartAction.java该程序负责处理修改购物数量,或者删除购物记录时提交的“updateShopCart.do”请求。3.9.6ClearShopCartAction.java该程序负责处理从购物车页面提交的清空购物车时的“clearShopCart.do”请求。3.9.7LoginAction.java该程序负责处理从用户登录页面提交的“login.do”请求。3.9.8RegistAction.java该程序负责处理从新用户注册页面提交的“regist.do”请求。3.9.9AddrConfirmAction.java该程序负责处理从订单处理页面提交的选择送货方式及付款方式的“addrConfirm.do”请求。3.9.10OrderHistoryAction.java该程序负责处理从确认订单页面提交查看所有订单信息的“orderHistory.do”请求。3.9.11OrderDelAction.java该程序负责处理从订单信息显示页面选择“取消订单”时提交“delOrder.do”请求。4.总结22 本文主要介绍了电子商务系统开发人员必须掌握的系统体系结构和基本开发模式。在深刻理解体系结构和开发模式的基础上,进一步学习一种主流的Web系统开发框架-Struts。通过对得到实际应用的开发框架的介绍,反过来再促进个人对电子商务系统以及Web应用设计与实现理论的理解。重点讲述了netbeans/access/Struts在WEB应用的一些基本知识,并通过网上书店的程序对struts框架的运用进行了深化,可以看出dreawer与Struts框架结合的模式,在电子商务上应用十分灵活,不过要真正掌握好它们却并不是一件容易的事情,在实际应用的WEB开发中,还有很多关于安全方面的问题需要考虑,比如支付安全,账号管理等等。通过在指导老师的认真帮助下,结合自己在大学所学的专业知识,在整个系统开发过程中进行的比较顺利地完成了自己地毕业设计,总体上对自己地成就还是比较满意的,如今系统的开发问题不会很大,留给自己思考的问题是如何真正的将系统运用到实际中,如何使得网络中创造更多的客户源。22 22'