版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、20072007 届毕业生届毕业生 毕业论文毕业论文 题题 目目: : javajava网上书店管理系统设计与实现网上书店管理系统设计与实现 院系名称:院系名称: 国际学院国际学院 专业班级:专业班级: 计算机应用技术计算机应用技术 0707 级级 0101 班班 学生姓名:学生姓名: 阮超阮超 学学 号:号: 2007394010920073940109 指导教师:指导教师: 刘伟杰刘伟杰 教师职称:教师职称: 讲师讲师 2010 年年 6 月月 2 日日 摘要摘要 随着计算机的发展,数据库技术在 internet 中的应用越来越广泛,为广 大网络用户提供了更加周到和人性化的服务。个性化已逐
2、渐成为当今 web 应用 的潮流。本文研究了一种网上书店系统,此方案与现今网上已采用的一些方案 相比,具有用户使用更简单、界面更直观等优点。 本文的出发点也正是如此,本文通过对当今社会上最流行的编程技术 java 及发展越来越快的设计模式 mvc 的解析,全面的说明了制作一个网上书店所运用 的技术,第三章对制作一个网上书店的详细说明,这个网上书店充分运用了 java 及 mvc 模式,实现了用户管理、商品查询、商品购买、订单管理等四个模块。 该网上书店运用的是受大部分编程好爱者认可的 tomcat 服务器,并可运行在 windows 和 linux 平台,具有良好的移植性,并具有很强的亲和力。
3、 关键词关键词:java struts servlet jsp 网上书店 title online bookstores design and realize abstract with the development of computer science, database technology of the internet more extensively for the majority of internet users with a more thoughtful and humane services. customization has become the trend of
4、 todays web applications. in this paper, which is based on data association rules online bookstore, and now this programs has used the internet compared to the number of programs, with a simple user interface more intuitive, and other advantages. online bookstores in china have just started the deve
5、lopment soon. as chinas internet became more widely accessible and online bookstores become more mature, there will be more and more consumer groups, market potential will be fully realized. the online bookstore outdated demanding, not only will not help to resolve the problem, but would delay oppor
6、tunities to make their own in a passive position. a fish-yuan mu, not retreat networking. at present java is the hottest programming language for web development, this text described the characteristics of java and jsp technology and the state of operating on internet, it introduced the relationship
7、 between them and the important programming method of the double technology, and also show the struts technology, and work out an online bookstore system base on this kind of technology. keywords: java struts servlet jsp bookshop 目目 次次 1 绪论 .1 1.1 网上书店的研究背景.1 1.2 国内外的发展状况.1 2 技术背景.2 2.1 java 的网络功能与编
8、程.2 2.2 struts概述 .3 3 网上书店详细设计.8 3.1 需求分析.8 3.2 总体设计.9 3.3 功能设计.9 3.4 数据库设计与实现.10 3.5 网上书店基本流程.15 3.6 网上书店各页面功能.15 3.7 封装了数据库相关操作的bean.18 3.8 业务逻辑层各bean功能.18 3.9 控制处理层.19 4 网上书店的实现.21 4.1 用户管理模块.21 4.2 商品查询模块.26 4.3 商品购买模块.28 4.4 订单管理模块.30 结 论.32 致 谢.33 参考文献.34 1 1 绪论绪论 1.11.1 网上书店的研究背景网上书店的研究背景 电子商
9、务现在越来越受人们欢迎,是基于以下原因: (1)更广阔的环境:人们不受时间的限制,不受空间的限制,不受传统购 物的诸多限制,可以随时随地在网上交易。 (2)更广阔的市场:在网上这个世界将会变得很小,一个商家可以面对全 球的消费者,而一个消费者可以在全球的任何一家商家购物。 (3)更快速的流通和低廉的价格:电子商务减少了商品流通的中间环节, 节省了大量的开支,从而也大大降低了商品流通和交易的成本。 (4)更符合时代的要求:如今人们越来越追求时尚、讲究个性,注重购物 的环境,网上购物,更能体现个性化的购物过程。 1.21.2 国内外的发展状况国内外的发展状况 在各行各业中离不开网络,这正是计算机被
10、广泛应用于网上销售系统的环 境,计算机的最大的好处在于利用它能够进行信息管理。使用计算机进行信息 控制,不仅提高了工作效率,而且大大的提高了其安全性。 实际上,整个交易的过程可以分为三个阶段: 第一个阶段是信息交流阶段:对于商家来说,此阶段为发布信息阶段。主 要是选择自己的优秀商品,精心组织自己的商品信息,建立自己的网页,然后 加入名气较大、影响力较强、点击率较高的著名网站中,让尽可能多的人们了 解你认识你。对于买方来说,此阶段是去网上寻找商品以及商品信息的阶段。 主要是根据自己的需要,上网查找自己所需的信息和商品,并选择信誉好服务 好价格低廉的商家。 第二阶段是签定商品合同阶段:作为 b2b
11、(商家对商家)来说,这一阶段 是签定合同、完成必需的商贸票据的交换过程。要注意的是:数据的准确性、 可靠性、不可更改性等复杂的问题。作为 b2c(商家对个人客户)来说,这一 阶段是完成购物过程的定单签定过程,顾客要将你选好的商品、自己的联系信 息、送货的方式、付款的方法等在网上签好后提交给商家,商家在收到定单后 应发来邮件或电话核实上述内容。 第三阶段是按照合同进行商品交接、资金结算阶段:这一阶段是整个商品 交易很关键的阶段,不仅要涉及到资金在网上的正确、安全到位,同时也要涉 及到商品配送的准确、按时到位。在这个阶段有银行业、配送系统的介入,在 技术上、法律上、标准上等等方面有更高的要求。网上
12、交易的成功与否就在这 个阶段。 2 2 技术背景技术背景 2.12.1 javajava 的网络功能与编程的网络功能与编程 java 是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要 面向 internet 的开发工具。自从 1995 年正式问世以来,java 的快速发展已经 让整个 web 世界发生了翻天覆地的变化。在早期,java 比较多的用在浏览器上, 插入到网页中(即是 java applet 程序),成为最灵活、最强大的网页多媒体的 载体,但由于 java 虚拟机相对于个人电脑而言,有占用资源大,安全性相对较 差等缺点,applet 逐渐的被后起之秀 flash 所替代,
13、但随着 java servlet 的 推出,java 在电子商务方面开始崭露头角,最新的 jsp(java server page)技 术的推出,更是让 java 成为基于 web 的应用程序的首选开发工具,目前的 java 技术已成为所有大型电子商务项目的必然选择。 java 程序可以获取网络上结点的图象、声音、html 文档及文本等资源, 并可以对获得的资源进行处理。例如 java 程序可以每隔一定时间读取某结点提 供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个 url 类型的对象,然后用 java 中相应的方法(method)获取该对象所代表的资 源。 java se
14、rvlet 是 jsp 技术的基础,jsp 本身就是预先被编译成 servlet,然后 再运行的,而且大型的 web 应用程序的开发需要 java servlet 和 jsp 配合才能 完成,servlet 这个名称大概源于 applet,现在国内的翻译方式很多,本文为了 避免误会,本文直接采用 servlet 这个名称而不做任何翻译,读者如果愿意,可 以称之为“小服务程序”。servlet 其实和传统的 cgi 程序和 isapi、nsapi 等 web 程序开发工具的作用是相同的,在使用 java servlet 以后,用户不必再使用 效率低下的 cgi 方式,也不必使用只能在某个固定 w
15、eb 服务器平台运行的 api 方式来动态生成 web 页面。许多 web 服务器都支持 servlet,即使不直接支持 servlet 的 web 服务器也可以通过附加的应用服务器和模块来支持 servlet。得益 于 java 的跨平台的特性,servlet 也是平台无关的,实际上,只要符合 java servlet 规范,servlet 是完全平台无关且是 web 服务器无关的。由于 java servlet 内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且 利用多线程机制可以同时为多个请求服务,因此 java servlet 效率非常高。但 java servlet 也不
16、是没有缺点,和传统的 cgi、isapi、nsapi 方式相同,java servlet 是利用输出 html 语句来实现动态网页的,如果用 java servlet 来开发 整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么 sun 还要推出 java server pages 的原因。 2.22.2 strutsstruts 概述概述 struts 框架工具是 apache 基金会 jakarta 项目中推出的一个子项目。 struts 在英文中是支架、支撑的意思,这也体现出 struts 在开发 web 应用程 序过程所起到的重要作用, struts 为 web 应用提
17、供了通用的框架,让开发人 员可以把主要精力集中在如何解决实际业务问题上,与此同时 struts 框架也允 许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。 采用 struts 可以简化遵循 mvc 设计模式的 web 应用的开发工作,很好地实 现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发 挥 jsp/servlet 优点、并具有强可扩展性的 web 应用。总之, struts 的出现 使得 web 应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。 struts 架构一经推出,即受到 java 开发群体的广泛重视,从 2004 年 开始逐渐
18、升温,并日渐成为 java 创建 web 应用开发的最流行的框架工具, 在目前 java web 程序员的招聘要求中,几乎都提出了对 struts 的要求,精通 struts 架构已经成为 java web 程序员必备的技能。 模型-视图-控制器(mvc)是 80 年代 smalltalk-80 出现的一种软件设计 模式,现在已经被广泛的使用。 1、模型(model) 模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑. 2、视图(view) 视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。 3、控制器(controller) 控制器工作就是根据用户的输入,控制用户界面数
19、据显示和更新 model 对象状态 图 1.1 mvc 组件类型的关系和功能 mvc 式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应 用系统的可维护性、可扩展性、可移植性和组件的可复用性。 早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的 复杂及难以维护。很多 vb,delphi 等 rad 程序都有这种问题。甚至现在的 c#,java 有时候也会出现把业务逻辑写在显示模块中的现象。 尽管 mvc 设计模式很早就提出,但在 web 项目的开发中引入 mvc 却是步履 维艰。主要原因:一是在早期的 web 项目的开发中,程序语言和 html 的分离一 直难以实现。c
20、gi 程序以字符串输出的形式动态地生成 html 内容。后来随着脚 本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在 html 内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和 html 分离。二是脚本语言的功能相对较弱,缺乏支持 mvc 设计模式的一些必要 的技术基础。直到基于 j2ee 的 jsp model 2 问世时才得以改观。它用 jsp 技术 实现视图的功能,用 servlet 技术实现控制器的功能,用 javabean 技术实现模 型的功能 。 sun 在 jsp 出现早期制定了两种规范,称为 model1 和 model2。虽然 model2
21、 在 一定程度上实现了 mvc,但是它的应用用并不尽如人意。 图 1.2 jsp model 1 图 1.3 jsp model 2 model2 容易使系统出现多个 controller,并且对页面导航的处理比较复 杂 有些人觉得 model2 仍不够好,于是 craig r. mcclanahan 2000 年 5 月 提 交了一个 web framework 给 java community.这就是后来的 struts。 2001 年 7 月,struts1.0,正式发布。该项目也成为了 apache jakarta 的 子项目之一。 struts 质上就是在 model2 的基础上实现
22、的一个 mvc 架构。它只有一个中 心控制器,他采用 xml 定制转向的 url。采用 action 来处理逻辑。 struts 跟 tomcat、turbine 等诸多 apache 项目一样,是开源软件,这是 它 的一大优点。使开发者能更深入的了解其内部实现机制。 除此之外,struts 的优点主要集中体现在两个方面:taglib 和页面导航 taglib 是 struts 的标记库,灵活动用,能大大提高开发效率。另外,就目前 国内的 jsp 开发者而言,除了使用 jsp 自带的常用标记外,很少开发自己的标 记,或许 struts 是一个很好的起点。 关于页面导航,我认为那将是今后的一个发
23、展方向,事实上,这样做,使 系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联 系, 这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时, 这 种优势体现得更加明显。 taglib 是 struts 的一大优势,但对于初学者而言,却需要一个持续学习的 过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它 真的很棒。 struts 将 mvc 的 controller 一分为三,在获得结构更加清晰的同时,也增 加了系统的复杂度。 struts 从产生到现在才不过六七年,但已广泛运用于商业软件。虽然它现在 还有不少缺点,但它是一种非常优秀的 j2e
24、e mvc 实现方式。 下图是 struts 的工作流程,所有的请求都提交给 actionservlet 来处理。 图图 1.4 action 控制流程图控制流程图 actionservlet 是一个 frontcontroller,它是一个标准的 servlet,它将 request 转发给 requestprocessor 来处理,actionmapping 是 actionconfig 的 子类,实质上是对 struts-config.xml 的一个映射,从中可以取得所有的配置 信息 requestprocessor 根据提交过来的 url,如*.do,从 action mapping
25、中 得到相应的 actionform 和 action。然后将 request 的参数对应到 action form 中,进行 form 验证。如果验证通过则调用 action 的 execute()方法来执行 action,最终返回 actionforward。 actionforward 是对 mapping 中一个 forward 的包装,对应于一个 url actionform 使用了 viewhelper 模式,是对 html 中 form 的一个封装。其中包 含有 validate 方法,用于验证 form 数据的有效性。action form 是一个符合 java bean 规范
26、的类,所有的属性都应满足 get 和 set 对应。对于一些复杂的 系统,还可以采用 dynaactionform 来构造动态的 form,即通过预制参数来生 成 form。这样可以更灵活的扩展程序。 actionerrors 是对错误信息的包装,一旦在执行 action 或者 form.validate 中出现异常,即可产生一个 actionerror 并最终加入到 actionerrors。在 form 验证的过程中,如果有 error 发生,则会将页面重新导 向至输入页,并提示错误。 action 是用于执行业务逻辑的 requsesthandler。每个 action 都只建立一 个
27、instance。action 不是线程安全的,所以不应该在 action 中访问特定资源。 一般来说,应改使用 business delegate 模式来对 business tier 进行访问以 解除耦合。 struts 提供了多种 action 供选择使用。普通的 action 只能通过调用 execute 执行一项任务,而 dispatchaction 可以根据配置参数执行,而不是仅 进入 execute()函数,这样可以执行多种任务。如 insert,update 等。 lookupdispatchaction 可以根据提交表单按钮的名称来执行函数。 3 3 网上书店详细设计网上书店
28、详细设计 3.13.1 需求分析需求分析 网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。一 个典型的网上商城一般都需要实现商品信息的动态提示、购物车管理、客户信 息注册登录管理、订单处理等模块。 (1)查询:当客户进入网上书店时,应该在主页面中分类显示最新的书目 信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作 者 信息快速查询所需书目信息的功能。 (2)购物车管理:当客户选择购买某图书产品时,应该能够将对应图书信息, 如:价格、数量记录到对应的购物车中,并允许客户返回书目查询页面, 选择其他商品,并添加到购物车中,当对应的购物订单生成后,应该能 够自动清除以生成订
29、单的购物车中的信息。 (3)订单处理:对应客户购买图书商品信息的需求,在确定了所购图书商品 的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最 终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的 出货、送货的处理。 (4)会员注册:为了能够实现图书商品的购买,需要管理客户相关的联系方 式、送货地点等相关的信息。 3.23.2 总体设计总体设计 下表中给出了构成网上书店系统的各个组件,通过下表,可以从宏观上了解各 个组件的功能。 表 3.1 网上书店组件表 控制处理层(控制器)控制处理层(控制器)业务逻辑层(模型)业务逻辑层(模型) index.jspactionform
30、actioncart bookmain.jsplogintformadditemtocartactionbookcat bookshow.jspuserformcartactionbook 用户表示层(视图)用户表示层(视图)控制处理层(控制器)控制处理层(控制器)业务逻辑层(模型)业务逻辑层(模型) userregister.jspbookdetailactionuser generateordersuccess.jsploginactionorderdetail jumptocart.jspbooksearchactionorder loginfail.jspgenerateorderac
31、tion loginsuccess.jsporderaddaction orderaddfail.jsppagectrlaction orderaddress.jspregistaction orderaddsuccess,jsp regfail.jsp regsuccess.jsp searchfail.jsp searchsuccess.jsp showsuccess.jsp order.jsp 3.33.3 功能设计功能设计 (1)图书信息管理 该模块实现图书书目信息的分类显示,也是提供图书信息依据书名 及作者信息快速搜索的功能。此外,在用户选择了对应书目信息后,还 可以显示出有关该图书
32、的详细信息,以便于客户了解所购商品。 (2)购物车管理 用于维护每一个进入网上书店的客户对应的购物车。即将客户所选 购的图书商品信息记录到对应的购物车中,以便于到收银台进行结账处 理。 (3)会员注册 实现网上书店客户信息的注册、及身份验证。由于目前网上商城普 遍采用的方式为送货上门或者邮寄,因此需要收集与客户相关的联系方 式、通信地址等信息。 (4)订单处理 根据客户购物车中的信息,以及客户所选择的送货方式和付款方式, 连同客户对应的个人信息生成订单,以便于后续进行送货处理。 3.43.4 数据库设计与实现数据库设计与实现 .1 数据库的需求分析数据库的需求分析 依据网上书店
33、的处理需求,对就数据表的设计及功能如下: (1)图书基本信息表:存放网上书店所销售图书的基本信息。 (2)客户基本信息表:存放书店客户的基本信息。 (3)订单信息表:存放与客户相关的订单的基本信息。 (4)订单条目详细信息表:存放订单中详细条目的基本信息。 (5)图书分类基本信息表:存放网上书店所提供图书分类的信息。 .2 数据库的分数据库的分 e-re-r 图图 (1) 书目类别(类别号,类别名): bookcat catname id 图 3.1 书目类别 e-r 图 (2) 书(书号,书名,价格,销售价格,书本描述,图片,内容,作者): book name price s
34、aleprice descript image contents author id 图 3.2 书本 e-r 图 (3) 书店客户(客户号,用户名,密码,真实姓名,联系电话,地址,电子邮 箱): storeuser username password name telphone address email id 图 3.3 书店客户 e-r 图 (4) 订单(订单号,生成时间,运输方式,付款方式,总价): orders payment cost id time delivery 图 3.4 订单 e-r 图 (5) 订单条目(订单条目号,总价,单价): orderdetail coun t
35、price 图图 3.53.5 订单条目订单条目 e-re-r 图图 .3 数据库的总数据库的总 e-re-r 图图 storeuse r order bookdetail book 拥有拥有 包含包含 包含包含 包含包含 n 1 n 1 n n 1 bookcat 1 图图 3.63.6 总总 e-re-r 图图 id .4 数据库的逻辑结构设计数据库的逻辑结构设计 以下的表是分析完 e-r 图后所设计出来,每张表存放一类信息: (1)书目类别(书目类别号,类别名) (2)书(书号,书目类别号,书名,价格,销售价格,描述,图片,内容,作者) (3)书店客户(客
36、户号,用户名,密码,真实姓名,联系电话,地址,电子邮箱) (4)订单(订单号,客户号,生产订单时间,运输方式,付款方式,总价) (5)订单条目(订单条目号,订单号,书号,总价,单价) .5 创建数据表的脚本创建数据表的脚本 代码如下: /图书分类基本信息表 create table bookcat( idnumber primary key, catnamevarchar2(40) not null ); /图书基本信息表 drop table book cascade constraints; create table book( idnumber primary key,
37、catidnumber not null references bookcat(id) on delete cascade, namevarchar2(50) not null, pricenumber not null, saleprice number not null, descriptvarchar2(500) not null, authorvarchar2(50) not null, contentsvarchar2(2000) null, imagevarchar2(50) null); /客户基本信息表 drop table storeuser cascade constrai
38、nts; create table storeuser( idnumberprimary key, usernamevarchar2(20) not null, passwordvarchar2(20) not null, namevarchar2(20) not null, telvarchar2(20) not null, emailvarchar2(50) null address, varchar2(100) not null ); /订单信息表 drop table orders cascade constraints; create table orders( idnumber p
39、rimary key, user_idnumber not null references storeuser(id) on delete cascade, timedate not null, deliveryvarchar2(20) not null, paymentvarchar2(20) not null, costnumber ); /订单条目详细信息表 drop table orderdetail cascade constraints; create table orderdetail( idnumber primary key, orderidnumber not null r
40、eferences orders(id) on delete cascade, bookidnumber not null references book(id) on delete cascade, countnumber not null, pricenumber not null ); 3.53.5 网上书店基本流程网上书店基本流程 网上书店在运行过程中页面的基本流程如图 3.7: 3.63.6 网上书店各页面功能网上书店各页面功能 详细功能及描述: (1)获取图书分类信息以及图书基本信息集合 (2)提交显示指定分类图书信息的请求,同时传递对应图书分类编号 , (3)提交书目搜索请求及搜
41、索条件的表单 (4)提交搜索关键字的表单元素 bookmain.jsp 图书查询 bookshow.jsp 图书详情显示 bookshopcart.jsp 购物车管理 userlogin.jsp 会员登录 orderaddress.jsp 会员地址确认 generateordersucce ss.jsp 订单生成 userregister.jsp 新会员注册 order.jsp 订单确认 图图 3.73.7 网上书店基本流程图网上书店基本流程图 (5)选择搜索条件的表单元素 (6)显示图书记录总数、当前页面编号以及总页数 (7)显示图书名称、价格、销售价格、作者信息 (8)提交显示图书详细信息
42、请求的超链接 (9)提交分页显示请求的超链接 .2 显示图书详细信息显示图书详细信息 bookshow.jspbookshow.jsp 页面页面 详细功能及描述: (1)依据图书记录编号获取待显示详细信息的图书类型的对象 (2)分别显示该图书对象的详细信息 (3)显示图书封面图片、名称、详细介绍、价格、销售价格 (4)单击“购买”按钮后,将提交放入购物车的请求 (5)显示图书目录 本页面是在控制器响应了网上书店主页提交的查看图书详细信息请求,即 “bookdeatial.do”请求后,跳转到的页面。在该页面中将获取到的指定图书 详细信息显示出来,同时如果用户单击“购买”按钮,将
43、提交 “bookbuy.do?bookid=”请求,进行后续放入购物车的处理。 .3 显示购物车信息显示购物车信息 bookshopcart.jspbookshopcart.jsp 页面页面 详细功能及描述: (1)获取该用户购物车中信息的集合 (2)提交更新购物车请求的表单 (3)循环显示购物车中的每一条购物记录信息 (4)设置购买数量的文本框 (5)显示图书销售价格 (6)显示图书总价 (7)从购物车中移除购买记录信息 (8)更新订单按钮 (9)提交继续购书请求的超链接 (10)提交清空购物车请求的超链接 (11)提交结算付款请求的超链接 本页面是在用户选择购买某种图书商品
44、后,进入的页面。在该页面中将显 示该用户购物车中现有的所有购买需求记录。同时提供更新购物车的操作界面, 例如,可以输入购买数量或者选择删除购买记录。单击“更新订单”按钮后, 将提交“updateshopcart.do”请求,进行更新购物车信息的处理。此外,也可 以单击“继续购书”按钮,提交“booksearch.do”请求返回网上书店主页面继 续购书,或者单击“清空购物车”按钮提交“clearshopcart.do”请求。同时, 如果用户确认去收银台,则可以单击“结算付款”按钮跳转到 “userlogin.jsp”页面进行用户登录。 .4 网上书店客户登录网上书店客户登录 us
45、erlogin.jspuserlogin.jsp 页面页面 详细功能及描述: (1)提交用户登录请求,同时提交登录用户信息的表单 (2)提交登录用户用户名及密码的表单元素 (3)登录按钮 (4)提交新用户注册请求的超链接 本页面是客户在购物车页面单击“结算付款”按钮后跳转过来的页面,在 该页面中,用户在表单中输入用户名及密码,单击“用户登录”按钮后,将提 交“login.do”请求,以便于进行后续获取用户相关信息的处理,对于没有用 户身份的新客户,可以在本页面中单击“新用户注册”按钮,跳转到 “userregister.jsp”页面进行用户注册。 .5 网上书店客户注册网上书店
46、客户注册 userregister.jspuserregister.jsp 页面页面 详细功能及描述: (1)提交新用户注册请求,同时提交新用户注册信息的表单 (2)提交注册用户姓名、地址、电子邮件地址、电话、用户名、密码以 及确认密码的表单元素 (3)注册按钮 在本页面中注册用户可以在表单中输入对应的注册信息,在单击“注册” 按钮后,将提交“regist.do”请求,同时提交新用户的相关注册信息,以便于 进行后续新用户注册的处理。 .6 送货、付款方式及订单信息送货、付款方式及订单信息 orderaddress.jsporderaddress.jsp 页面页面 详细功能及描述
47、: (1)获取客户信息 (2)提交选择送货方式及付款方式的表单 (3)显示客户信息、姓名、地址、电话、送货方式、付款方式 (4)获取购物车信息集合 (5)获取订单信息、客户信息 (6)显示客户姓名、地址、电话 (7)显示购物车中的信息 (8)显示所购图书书名、数量、总价 (9)显示整张订单总价 本页面是在用户登录通过后,跳转到的页面,在该页面中首先获取对应用 户的客户资料,同时提供送货方式,付款方式及订单信息的选择,在用户单击 “确认”按钮后,将提交“addrconfirm.do”请求,生成生续完整的订单信息。 .7 显示订单生成成功信息显示订单生成成功信息 generateo
48、rdersuccess.jspgenerateordersuccess.jsp 页面页面 详细功能及描述: (1)显示订单生成成功信息 (2)生成订单号 本页面将显示订单成功生成的信息。 3.73.7 封装了数据库相关操作的封装了数据库相关操作的 bean 采用了 struts 架构下提供的数据库连接池建立与数据库的连接,在该 bean 中通过构造方法建立与数据库的连接,并提供了相应的方法完成数据库中的查 询、更新等操作,同时也提供了关闭数据库连接的方法,以便于及时释放资源。 3.83.8 业务逻辑层各业务逻辑层各 beanbean 功能功能 在本系统的业务逻辑层中分别完成了对图书信息、图书分
49、类信息、购物车 信息、订单信息以及客户信息等类型对象的保存和处理。所有文件包含在 web- infclasses 目录中。 .1 封装了图书处理的封装了图书处理的 beanbean(book.javabook.java) 除声明了与图书基本数据相关的基本属性和方法之外,还提供了图书信息 的查询显示处理相关的几个方法。其中在调用查询满足条件的图书信息方法时, 需要提供查询的依据,例如,分类、按作者还是按书名,对应关键字等。 .2 封装了购物车信息处理的封装了购物车信息处理的 beanbean(cart.javacart.java) 为了能够简化类的定义,考虑到购物
50、车中所需要处理的图书基本信息与图 书类型对象中封装的信息相同,只是需要再补充上购买数量即可,因此在定义 该类时继承了图书信息类。 .3 封装了订单住处处理的封装了订单住处处理的 beanbean(order.sorder.s javajava) 除声明了与订单中所需要处理的数据相关的基本属性和方法之外,还提供 了与订单查询、插入及删除处理相关的几个方法。此外,也提供了计算该订单 所涉及总金额的方法。 .4 封装了客记信息处理的封装了客记信息处理的 beanbean(user.javauser.java) 除声明了与用户数据相关的基本属性和方法之外,还提供了与确认
51、用户身 份、获取用户相关信息、插入新用户信息处理相关的几个方法。 .5 封装了图书分类信息处理的封装了图书分类信息处理的 beanbean(bookcat.javabookcat.java) 除了声明了与图书分类数据相关的基本属性和方法之外,还提供了与图书 分类信息查询及显示处理相关的几个方法。 3.93.9 控制处理层控制处理层 下表是网上书店系统中的 action 映射表。该映射决定了 action 与其他 web 组件之间的关联关系。作为前后台之间桥梁,本表中指明了每个 action 的 入口(即调用 action 的组件)及出口(即请求转发的目标组件) ,以及传递 ac
52、tion 的 actionform。 表表 3.13.1 actionaction 控制表控制表 action 入口 actionform 出口 additemtocartactionbookmain.jspbookmain.jsp bookdetailactionbookmain.jspbookmain.jsp booksearchactionindex.jspbookmain.jsp cartactioncart.jsplogin.jsp generateorderactionlogin.jspuserformorder.jsp loginactionorder.jsploginforms
53、uccess.jsp orderaddactionlist.jsplogin.jsp pagectrlactionbookmain.jspbookmain.jsp registactionuserregister.jspuserlogin.jsp (1)additemtocartaction.java 该程序负责处理增加购买的图书时的“additemtocart.do”请求 (2)cartaction.java 该程序是个多匹配的 action,负责处理四个功能,分别是:清除购物车时 提交的“clearcart.do”请求;结帐时提交的“operatecart.do”请求;修改 购物车里指定商
54、品的数量时提交的“modifycart.do”请求;删除购物车里指定 条目的“deletecart.do”请求。 (3)bookdetailaction 该程序负责处理显示指定图书编号的对应图书详细信息时提交的 “bookdetail.do”请求。 (4)booksearchaction 该程序负责处理从图书主页面提交的booksearch.do请求,根据搜索的 条件进行搜索。 (5)generateorderaction 该程序负责处理从订单信息页面提交的generateorder.do请求,把订 单信息存入数据库。 (6)loginaction 该程序负责处理从用户登录页面提交的“logi
55、n.do”请求。 (7)orderaddaction 该程序负责处理从购物车页面提交的orderadd.do请求,根据用户是否 登陆来判断所要转向的页面。 (8)pagectrlaction 该程序负责处理从主页面提交的”pagectrl.do”的分页信息根据所点击 的按纽进行回首页、上一页、下一页的处理。 (9)registeraction 该程序负责处理从新用户注册页面提交的“regist.do”请求。 4 4 网上书店的实现网上书店的实现 本网上书店系统共分为四个功能模块,分别为:用户管理,商品查询,订 单管理,商品购买。各模块的实现如下: 4.14.1 用户管理模块用户管理模块 本模块
56、提供了用户登录功能,用户注册功能。新用户通过点击”注册”按 钮进入主页面,老用户则直接输入用户名和密码进入主页面,若用户名不存在 或密码错误则转向登录错误提示页面。在注册页面中会有必填的项目,当所有 必填信息填完且合法后,则转向注册成功页面,反之出现提示错误页面。 图图 4.14.1 用户登录页面用户登录页面 本页面是客户在购物车页面单击“结算付款”按钮后跳转过来的页面,在 该页面中,用户在表单中输入用户名及密码,单击“用户登录”按钮后,将提 交“login.do”请求,以便于进行后续获取用户相关信息的处理,对于没有用 户身份的新客户,可以在本页面中单击“新用户注册”按钮,跳转到 “userr
57、egister.jsp”页面进行用户注册。网上书店客户登录 userlogin.jsp 页 面的功能为提交用户登录请求,同时提交登录用户信息的表单,提交登录用户用 户名及密码的表单元素,登录按钮,提交新用户注册请求的超链接。其程序主要 代码如下: public class userlogin extends httpservlet public void doget(httpservletrequest request, httpservletresponse response) throws ioexception,servletexception httpsession session =
58、 request.getsession(); string tojsp=haslogin.jsp; if(session.getattribute(userid)=null) string id = request.getparameter(id); string pwd = request.getparameter(password); string query = select * from customer where id=+ +id+ + and password=+pwd+; dbclass db = new dbclass(); db.connect(); resultset r
59、esultset = db.excutequery(query); try if(resultset.next() session.setattribute(userid, id); tojsp=/loginsuccess.jsp; else tojsp=/userlogin.jsp; request.setattribute(errinf, 密码和帐号不匹配); catch(sqlexception sqle) system.err.println(query data base error: +sqle.getmessage(); finally db.closeconnection();
60、 requestdispatcher dispatcher = request.getrequestdispatcher(tojsp); dispatcher.forward(request,response); public void dopost(httpservletrequest req, httpservletresponse resp) throws ioexception,servletexception doget(req,resp); 图图 4.24.2 用户注册页面用户注册页面 在本页面中注册用户可以在表单中输入对应的注册信息,在单击“注册” 按钮后,将提交“regist.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 猪肉销售代理协议
- 油气储运埋地油罐招标信息
- 厂家保证书样式
- 音响器材购销合同
- 购销合同范本版版
- 路灯采购及安装招标文件
- 会议合作影视协议
- 消防设备维护劳务分包
- 气体购买合同格式
- 铝合金城市家具购销合同
- 2024年P气瓶充装理论考试题及答案
- 2024年中国儿童呼吸道合胞病毒感染诊疗及预防指南(实践版)解读课件
- 北京高校物业管理服务人员配置及费用测算指导意见
- DB42∕T 2232-2024 湖北省水利工程护坡护岸参考设计图集
- DB41-T 2704-2024 森林抚育技术规程
- 《新时代大学生劳动教育教程(第二版)》大学生劳动教育全套教学课件
- 2024人教版新教材初中地理七年级上册内容解读课件(深度)
- 六年级数学《百分数的意义》公开课说课
- 金字塔原理完整版-课件
- 第10课《人类社会及其发展规律》第1框《人类社会的存在与发展》同步课堂课件-【中职专用】《哲学与人生》
- 2024年贵州省黔东南州直属事业单位招聘108人历年(高频重点复习提升训练)共500题附带答案详解
评论
0/150
提交评论