【delphi开源代码栏目提醒】:网学会员delphi开源代码为您提供优秀毕业论文关于网上书店管理系统(计算机理工类学子毕业论文) - 毕业设计参考,解决您在优秀毕业论文关于网上书店管理系统(计算机理工类学子毕业论文) - 毕业设计学习中工作中的难题,参考学习。
毕业
论文毕业
论文毕业
论文毕业
论文SHANGHAISHANGHAISHANGHAISHANGHAIUNIVERSITYUNIVERSITYUNIVERSITYUNIVERSITYGRADUATIONGRADUATIONGRADUATIONGRADUATIONPROJECPROJECPROJECPROJECTTTTTHESISTHESISTHESISTHESIS网上书店系统OnlineOnlineOnlineOnlineBookStoreBookStoreBookStoreBookStoreSystemSystemSystemSystem学学学学院院院院高等技术学院专专专专业业业业计算机技术与应用学学学学号号号号03321018姓姓姓姓名名名名导导导导师师师师完成日期完成日期完成日期完成日期2006年4月2目录目录目录目录中英文摘要第一章JAVA的网络功能与编程1-1JAVA语言简介1-2JAVA语言在网络上的应用1-3JSP的基础——Servlet技术第二章Struts概述2-1Struts的由来和发展2-1-1MVC简介2-2Struts优缺点3-3Struts的工作流程第三章网上书店详细设计3-1需求分析3-2总体设计3-3功能设计3-4数据库设计与实现3-4-1数据库的需求分析3-4-2创建数据表的脚本3-5网上书店基本流程3-6网上书店各页面功能3-7业务逻辑层各bean功能3-8控制处理层总结参考文献3摘要摘要摘要摘要JAVA语言是目前Internet上大型的WEB应用程序开发时使用得最热门的编程语言本文描述了JAVA和JSP技术的特点以及在互联网上的使用情况介绍这两种技术的重要编程方法和两者之关的联系同时也会应用相关的Struts框架并完成一个基于这种技术的网上书店系统。
【关键字】JAVAStrutsServletJSP网络编程电子商务网上书店AbstractAbstractAbstractAbstractAtpresentJAVAisthehottestprogramminglanguageforWEBdevelopmentThistextdescribedthecharacteristicsofJAVAandJSPtechnologyandthestateofoperatingonInternetItintroducedtherelationshipbetweenthemandtheimportantprogrammingmethodofthedoubletechnologyAndalsoshowtheStrutstechnologyAndworkoutanonlinebookstoresystembaseonthiskindoftechnology.Keywords:JAVAStrutsServletJSP
webprograminternetbookshop4第一章第一章第一章第一章JAVAJAVAJAVAJAVA的网络功能与编程的
网络功能与编程的网络功能与编程的网络功能与编程1-11-11-11-1JAVAJAVAJAVAJAVA语言简介Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。
自从1995年正式问世以来Java的快速发展已经让整个Web世界发生了翻天覆地的变化。
在早期Java比较多的用在浏览器上插入到网页中即是JavaApplet程序成为最灵活、最强大的网页多媒体的载体但由于Java虚拟机相对于个人电脑而言有占用资源大安全性相对较差等缺点Applet逐渐的被后起之秀Flash所替代但随着JavaServlet的推出Java在电子商务方面开始崭露头角最新的JSPJavaServerPage技术的推出更是让Java成为基于Web的应用程序的首选开发工具目前的Java技术已成为所有大型电子商务项目的必然选择。
1-21-21-21-2JAVAJAVAJAVAJAVA语言在网络上的应用Java程序可以获取网络上结点的图象、声音、HTML
文档及文本等资源并可以对获得的资源进行处理。
例如Java程序可以每隔一定时间读取某结点提供的最新数据并以图表的形式显示出来。
在编程处理上一般先生成一个URL类型的对象然后用Java中相应的方法method获取该对象所代表的资源。
1-31-31-31-3JSPJSPJSPJSP的基础————————ServletServletServletServlet技术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的原因。
5第二章第二章第二章第二章StrutsStrutsStrutsStruts概述概述概述概述2-12-12-12-1StrutsStrutsStrutsStruts的由来和发展Struts框架工具是Apache基金会Jakarta项目中推出的一个子项目。
Struts在英文中是支架、支撑的意思这也体现出Struts在开发Web应用程序过程所起到的重要作用Struts为Web应用提供了通用的框架让开发人员可以把主要精力集中在如何解决实际业务问题上与此同时Struts框架也允许开发人员根据实际需要进行扩展和定制从而可以更好的适应用户的需求。
采用Struts可以简化遵循MVC设计模式的Web应用的开发工作很好地实现
代码重用使开发人员从一些繁琐的
工作中解脱出来快速开发能够充分发挥JSP/Servlet优点、并具有强可扩展性的Web应用。
总之Struts的出现使得Web应用的开发过程大大简化从而能够缩短开发周期、提高开发效率。
Struts架构一经推出即受到Java开发群体的广泛重视从2004年开始逐渐升温并日渐成为Java创建Web应用开发的最流行的框架工具在目前JavaWeb程序员的
招聘要求中几乎都提出了对Struts的要求精通Struts架构已经成为JavaWeb
程序员必备的技能。
2-1-12-1-12-1-12-1-1MVCMVCMVCMVC简介模型-视图-控制器MVC是80年代Smalltalk-80出现的一种软件设计模式现在已经被广泛的使用。
1、模型Model模型是应用程序的主体部分。
模型表示业务数据或者业务逻辑.2、视图View视图是应用程序中用户界面相关的部分是用户看到并与之交互的界面。
3、控制器controller控制器工作就是根据用户的输入控制用户界面数据显示和更新model对象状态。
6MVC式的出现不仅实现了功能模块和显示模块的分离同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性早期的程序中如果不注意对数功能和显示的解耦合常常会导致程序的复杂及难以维护。
很多
VBDelphi等RAD程序都有这种
问题。
甚至现在的CJava有时候也会出现把业务逻辑写在显示模块中的现象管MVC设计模式很早就提出但在Web项目的开发中引入MVC却是步履维艰。
主要原因一是在早期的Web项目的开发中程序语言和HTML的分离一直难以实现。
CGI程序以字符串输出的形式动态地生成
HTML内容。
后来随着脚本语言的出现前面的方式又被倒了过来改成将脚本语言书写的程序嵌入在HTML内容中。
这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。
二是脚本语言的功能相对较弱缺乏支持MVC
设计模式的一些必要的技术基础。
直到基于J2EE的
JSPModel2问世时才得以改观。
它用JSP技术实现视图的功能用Servlet技术实现控制器的功能用JavaBean技术实现模型的功能JSPJSPJSPJSPModelModelModelModel1111与JSPJSPJSPJSPModelModelModelModel2222SUN在JSP出现早期制定了两种规范称为Model1和Model2。
虽然Model2在一定程度上实现了MVC但是它的应用用并不尽如人意JSPModel1JSPModel2model2容易使系统出现多个Controller并且对页面导航的处理比较复杂有些人觉得model2仍不够好于是CraigR.McClanahan2000年5月提交了一个7WEBframework给JavaCommunity.这就是后来的Struts.2001年7月Struts1.0正式发布。
该项目也成为了ApacheJakarta的子项目之一Struts质上就是在Model2的基础上实现的一个MVC架构。
它只有一个中心控制器他采用XML定制转向的URL。
采用Action来处理逻辑2-22-22-22-2StrutsStrutsStrutsStruts优缺点优点Struts跟Tomcat、Turbine等诸多Apache项目一样是
开源软件这是它的一大优点。
使开发者能更深入的了解其内部实现机制。
除此之外Struts的优点主要集中体现在两个方面Taglib和页面
导航。
Taglib是Struts的标记库灵活动用能大大提高开发效率。
另外就目前国内的JSP开发者而言除了使用JSP自带的
常用标记外很少开发自己的标记或许Struts是一个很好的起点。
关于页面导航我认为那将是今后的一个发展方向事实上这样做使系统的脉络更加清晰。
通过一个配置文件即可把握整个系统各部分之间的联系这对于后期的维护有着莫大的好处。
尤其是当另一批开发者接手这个项目时这种优势体现得更加明显。
缺点Taglib是Struts的一大优势但对于初学者而言却需要一个持续学习的过程甚至还会打乱你网页编写的习惯但是当你习惯了它时你会觉得它真的很棒。
Struts将MVC的Controller一分为三在获得结构更加清晰的同时也增加了
系统的复杂度。
Struts从产生到现在还不到半年但已逐步越来越多运用于商业软件。
虽然它现在还有不少缺点但它是一种非常优秀的J2EEMVC实现方式。
3-3Struts的工作流程下图是Struts的工作流程所有的请求都提交给ActionServlet来处理。
8ActionServlet是一个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的包装对应于一个urlActionForm使用了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函数这样可以执行多种任务。
如insertupdate等。
LookupDispatchAction可以根据提交表单按钮的名称来执行函数。
9第三章第三章第三章第三章网上书店详细设计网上书店详细设计网上书店详细设计网上书店详细设计3-13-13-13-1需求分析网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。
一个典型的网上商城一般都需要实现商品信息的动态提示、购物车管理、客户信息注册登录管理、订单处理等模块。
根据网上书店的基本需求本系统需要完成的具体任务如下A.书图查询:当客户进入网上书店时应该在主页面中分类显示最新的书目信息以供客户选择所需图书同时也应该提供按照图书名称或者作者信息快速查询所需书目信息的功能。
B.购物车管理当客户选择购买某图书产品时应该能够将对应图书信息如价格、数量记录到对应的购物车中并允许客户返回书目查询页面选择其他商品并添加到购物车中当对应的购物订单生成后应该能够自动清除以生成订单的购物车中的信息。
C.订单处理对应客户购买图书商品信息的需求在确定了所购图书商品的价格、数量等信息后提示用户选择对应的送货方式及付款方式最终生成对应的订单记录以便于网站配货人员依据订单信息进行后续的出货、送货的处理。
D.会员注册为了能够实现图书商品的购买需要管理客户相关的联系方式、送货地点等相关的信息。
3-23-23-23-2总体设计系统组成下表中给出了构成网上书店系统的各个组件通过下表可以从宏观上了解各个组件的功能。
用户表示层视图控制处理层控制器业务逻辑层模型bookMain.jspActionFormActionFormActionFormActionFormActionActionActionActionDBBookShow.jspLoginFormFirstActionConstantsBookShopCart.jspUserFormBookDetailActionBookOrderAddress.jspBookIdFormBookSearchActionBookCatOrderConfirm.jspBookCatIdFormLoginActionOrderUserLogin.jspPageIdFormBookBuyActionShopCartUserRegister.jspBookShopCartFromAddrConfirmActionUserOrderHistory.jspBookSearchFormClearShopCartActionWrong.jspDeliveryFormOrderDelActionOrderIdFormOrderHistoryActionPageCtrlActionRegistActionUpdateShopCartAction103-33-33-33-3功能设计1图书信息管理该模块实现图书书目信息的分类显示也是提供图书信息依据书名及作者信息快速搜索的功能。
此外在用户选择了对应书目信息后还可以显示出有关该图书的详细信息以便于客户了解所购商品。
2购物车管理用于维护每一个进入网上书店的客户对应的购物车。
即将客户所选购的图书商品信息记录到对应的购物车中以便于到收银台进行结账处理。
3会员注册实现网上书店客户信息的注册、及身份验证。
由于目前网上商城普遍采用的方式为送货上门或者邮寄因此需要收集与客户相关的联系方式、
通信地址等信息。
4订单处理根据客户购物车中的信息以及客户所选择的送货方式和付款方式连同客户对应的个人信息生成订单以便于后续进行送货处理。
3-43-43-43-4数据库设计与实现3-4-13-4-13-4-13-4-1数据库的需求分析依据网上书店的处理需求对就数据表的设计及功能如下。
A图书基本信息表存放网上书店所销售图书的基本信息。
B图书分类基本信息表存放网上书店所提供图书分类的信息。
C客户基本信息表存放书店客户的基本信息。
D订单信息表存放与客户相关的订单的基本信息。
E订单条目详细信息表存放订单中详细条目的基本信息。
3-4-23-4-23-4-23-4-2创建数据表的脚本
代码如下____________________________________________________________________________//图书分类基本信息表DROPTABLEbookcatCASCADECONSTRAINTSCREATETABLEbookcatidNUMBERPRIMARYKEYcatnameVARCHAR240NOTNULL//图书基本信息表DROPTABLEbookCASCADECONSTRAINTSCREATETABLEbookidNUMBERPRIMARYKEYcatidNUMBERNOTNULLREFERENCESbookcatidONDELETECASCADE11nameVARCHAR250NOTNULLpriceNUMBERNOTNULLsalepriceNUMBERNOTNULLdescriptVARCHAR2500NOTNULLauthorVARCHAR250NOTNULLcontentsVARCHAR22000NULLimageVARCHAR250NULL//客户基本信息表DROPTABLEstoreuserCASCADECONSTRAINTSCREATETABLEstoreuserusernameVARCHAR220PRIMARYKEYpass
wordVARCHAR220NOTNULLnameVARCHAR220NOTNULLtelVARCHAR220NOTNULLaddressVARCHAR2100NOTNULLemailVARCHAR250NULL//订单信息表DROPTABLEordersCASCADECONSTRAINTSCREATETABLEordersidNUMBERPRIMARYKEYusernameVARCHAR220NOTNULLREFERENCESstoreuserusernameONDELETECASCADEtimeDATENOTNULLdeliveryVARCHAR220NOTNULLpaymentVARCHAR220NOTNULL//订单条目详细信息表DROPTABLEorderdetailCASCADECONSTRAINTSCREATETABLEorderdetailorderidNUMBERNOTNULLREFERENCESordersidONDELETECASCADEbookidNUMBERNOTNULLREFERENCESbookidONDELETECASCADEcountNUMBERNOTNULLpriceNUMBERNOTNULL_____________________________________________________________________123-53-53-53-5网上书店基本流程网上书店在运行过程中页面的基本流程如下图bookMain.jsp图书
查询bookShow.jsp图书详情显示bookShopCart.jsp购物车管理userLogin.jsp
会员登录orderAddress.jsp会员地址确认orderConfirm.jsp订单确认orderHistory.jsp历史订单查询userRegister.jsp新会员
注册133-63-63-63-6网上书店各页面功能3-6-13-6-13-6-13-6-1网上书店首页bookMain.jspbookMain.jspbookMain.jspbookMain.jsp详细功能及描述获取图书分类信息以及图书基本信息集合循环显示图书分类信息提交显示指定分类图书信息的请求同时传递对应图书分类编号提交书目搜索请求及搜索条件的表单提交
搜索关键字的表单元素选择搜索条件的表单元素显示图书记录总数、当前页面编号以及总页数循环显示对应图书书目信息显示图书名称、价格、销售价格、作者信息提交显示图书详细信息请求的超链接提交分页显示请求的超链接同时提交指定页面编号在本页面中当单击选择书目分类时将提交“bookSearch.dobookCatIdltbookCat.getIdmode1”请求以便于获取对应图书分类的相关信息。
当选择了查询依据并且输入了对应关键字单击“搜索”按钮时将提交“bookSearch.do”请求同时提交查询条件进行后续书目信息搜索的处理。
当在书目
列表中单击查看详细信息请求时将发出“bookDetail.do”请求同时传递对应图书记录的编号以获取指定图书更加详细的信息。
此外在单击“首页”、“上页”、“下页”超链接后将分别提交“bookPage.dopageIdlt0gt”、“bookPage.dopageIdltschSta.getPageId-1gt”、“bookPage.dopageIdltschSta.getPageId1gt”等请求以实现页面的跳转3-6-23-6-23-6-23-6-2显示图书详细信息bookShow.jspbookShow.jspbookShow.jspbookShow.jsp页面详细功能及描述依据图书记录编号获取待显示详细信息的图书类型的对象分别显示该图书对象的详细信息显示图书封面图片、名称、详细介绍、价格、销售价格单击“购买”按钮后将提交放入购物车的请求显示图书目录本页面是在控制器响应了网上书店主页提交的查看图书详细信息请求即“bookDeatial.do”请求后跳转到的页面。
在该页面中将获取到的指定图书详细信息显示出来同时如果用户单击“购买”按钮将提交“bookBuy.dobookIdltbook.getIdgt”请求进行后续放入购物车的处理。
143-6-33-6-33-6-33-6-3显示购物车信息bookShopCart.jspbookShopCart.jspbookShopCart.jspbookShopCart.jsp页面详细功能及描述获取该用户购物车中信息的集合提交更新购物车请求的表单循环显示购物车中的每一条购物记录信息设置购买数量的文本框显示图书销售价格显示图书总价从购物车中移除购买记录信息更新订单按钮提交继续购书请求的超链接提交清空购物车请求的超链接提交结算付款请求的超链接本页面是在用户选择购买某种图书商品后进入的页面。
在该页面中将显示该用户购物车中现有的所有购买需求记录。
同时提供更新购物车的操作界面例如可以输入购买数量或者选择删除购买记录。
单击“更新订单”按钮后将提交“updateShopCart.do”请求进行更新购物车信息的处理。
此外也可以单击“继续购书”按钮提交“bookSearch.do”请求返回网上书店主页面继续购书或者单击“清空购物车”按钮提交“clearShopCart.do”请求。
同时如果用户确认去收银台则可以单击“结算付款”按钮跳转到“userLogin.jsp”页面进行用户登录。
3-6-43-6-43-6-43-6-4网上书店客户登录userLogin.jspuserLogin.jspuserLogin.jspuserLogin.jsp页面详细功能及描述提交用户登录请求同时提交登录用户信息的表单提交登录用户用户名及密码的表单元素登录按钮提交新用户注册请求的超链接本页面是客户在购物车页面单击“结算付款”按钮后跳转过来的页面在该页面中用户在表单中输入用户名及密码单击“用户登录”按钮后将提交“login.do”请求以便于进行后续获取用户相关信息的处理对于没有用户身份的新客户可以在本页面中单击“新用户注册”按钮跳转到“userRegister.jsp”页面进行用户注册。
3-6-53-6-53-6-53-6-5网上书店客户注册userRegister.jspuserRegiste.