




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于基于 javajava 的在线购物系统的设计与实现的在线购物系统的设计与实现摘摘 要要电子商务(electronic commerce)是互联网上出现的新概念。它是利用计算机技术、网络技术和远程通信技术,实现整个商务(买卖)过程中的电子化、数字化和网络化。随着它的广泛使用,给人们带来了便利,并逐渐改变了人们的生活方式. 国内在线购物网站多数是用 asp,php 技术实现的,而基于 jsp 的优秀网站较少。本系统网上图书超市采用 jsp+javabean+ sql server 数据库三层模式设计并实现。本论文详细地阐述了系统的需求分析、系统总体架构、详细设计以及模块的实现过程,主要实现了
2、以下模块功能:会员注册、登录/注销;用户管理;浏览图书详细信息;图书搜索;图书管理;购物车;订单;订单管理等。关键词关键词: jsp;sql server;javabean;在线购物 design and implementation of online shopping system based on javaabstractelectronic commence over internet is a new concept. to realize electronic, digital and networking commerce, computer technology, networ
3、k technology and telecommunications are used. with its widely used, it brings people with a lot of convenience, and is changing the way of peoples life.most domestic online shopping websites are implemented with asp, php, and few are based on jsp. this systemweb-based bookstore is implemented with j
4、sp, javabean, and sql server database in three-tier model. in the paper, requirements analysis, general framework, detailed design and realization of each module are introduced. these modules includes member registration, login in/login out, user management, browsing books detailed information, sear
5、ching book, library management, the shopping car, orders and orders management etc. key words: jsp;sql server;javabean; online shopping 目目 录录论文总页数:29 页1引言.11.1课题背景.11.2国内外研究现状.11.3本课题的研究方法.22关于 jsp.22.1jsp 简介.22.2jsp 的运行原理.22.3jsp 页面的组成.32.4jsp 的运行环境.32.5javabean技术介绍.43需求分析.43.1系统说明.43.2系统功能简介.44系统设
6、计.54.1功能模块.54.2系统设计思想.64.3系统总体流程.64.4网站架设.74.4.1 开发环境.74.4.2 建立站点.74.5数据库设计.75系统实现.95.1编写 javabean.95.1.1 数据库操作的 javabean 的实现.105.1.2 字符串处理的 javabean 的实现.105.1.3 保存购物信息的 javabean 的实现.105.2网站前台主要功能模块实现.115.2.1 网站前台首页设计.115.2.2 重点推荐展台的实现过程.115.2.3 新书上架实现过程.135.2.4 图书分类实现过程.135.2.5 用户管理实现过程.145.2.6 购物车
7、实现过程.155.2.7 生成订单实现过程.195.2.8 订单查询实现过程.205.2.9 销售排行实现过程.205.3网站后台主要功能模块设计.215.3.1 后台登录实现过程.215.3.2 图书管理页面实现过程.215.3.3 用户管理实现过程.235.3.4 订单管理实现过程.245.3.5 公告管理实现过程.255.3.6 退出系统实现过程.256系统测试.256.1测试环境.256.2测试结果.26总 结.26参考文献.27致 谢.错误!未定义书签。错误!未定义书签。声 明.错误!未定义书签。错误!未定义书签。 第 1 页 共 36 页 1 1引言引言1.11.1 课题背景课题背
8、景随着 internet 国际互联网的发展,越来越多的企业开始建造自己的网站。基于 internet 的信息服务,商务服务已经成为现代企业一项不可缺少的内容。很多企业都已不满足于建立一个简单的仅仅能够发布信息的静态网站。现代企业需要的是一个功能强大的,能提供完善的电子商务服务的动态商务网站。jsp 是 sun 公司推出的一种网站开发技术,sun 公司借助自己在 java 上的不凡造诣,又把人们引进 jsp 时代,jsp 即 java server page,它可以在servlet 和 javabean 的支持下,完成功能强大的 web 应用程序。jsp 网站架设将成为未来网站架设的趋势,而国内
9、电子购物网站多数是用 asp,php 技术实现的,而基于 jsp 的优秀网站较少。所以,在我的毕业设计中,我采用了 jsp 作为开发工具,构建了一个能实现简单的电子商务的小型动态商务网站网上图书超市销售系统。该系统能实现用户的注册、登录功能;能够实现商品的查询,订购等功能。该系统基本上具备一个网上商品销售系统应该具备的功能,该设计项目基本上体现了构建一个动态商务网站所需要的技术,可以说,目前的大型商务网站也就是我们这个小型网站在内容上的扩充和重复。1.21.2 国内外研究现状国内外研究现状伴随着 internet 向我们大踏步走来,国内外网上交易已开始逐步普及,电子商务将成为 21 世纪主流的
10、商业模式。网上图书超市作为电子商务中的一种,是随着这些网络技术的发展而出现的一种新型图书销售渠道。它通过人与电子通信方式的结合,依靠计算机网络,以通讯技术为基础,实现图书销售的网上交易。网上图书超市同传统的店面书店相比,网上图书超市的经营方式和销售渠道是全新的;它 24 小时的全天候和全方位服务是店面书店所不能比及的;成本低廉更是开设网上图书超市的主要原因。而与其他商品相比,书籍运送几乎不怕碰撞碎裂,不具时效性;同时书本具有功能单一,形式简单,易于判断和选择而独具优势,最适合于网上交易;再次是单价低,降低了消费者第一次在网络购物的门槛,所以网上图书超市成了电子商务的先锋。现在这一切正在朝着更人
11、性化的方向发展。随着 internet 技术的迅速发展和日益普及,市场竞争日益激烈,利用网络进行服务和管理已经成为一种趋势.网络的发展给用户带来了很大的方便, 风起云涌的网站在炒足了概念之后,都纷纷转向了务实,而务实比较鲜明的特点之一:是绝大多数的网站都在试图做实实在在的网上交易,所谓网上交易就是利用计算机技术、网络技术和远程通信技术,实现整个商务(买卖)过程中的电子化、数字化和网络化,它具有如下优势:第 2 页 共 29 页 (1)更广阔的环境:人们不受时间的限制,不受空间的限制,不受传统购物的诸多限制,可以随时随地在网上交易。(2)更广阔的市场:在网上这个世界将会变得很小,一个商家可以面对
12、全球的消费者,而一个消费者可以在全球的任何一家超市购物。 (3)更快速的流通和低廉的价格:网上超市减少了商品流通的中间环节,节省了大量的开支,从而也大大降低了商品流通和交易的成本。(4)更符合时代的要求:如今人们越来越追求时尚、讲究个性,注重购物的环境, 网上购物,更能体现个性化的购物过程。1.31.3 本课题的研究方法本课题的研究方法本次毕业设计应首先分析淘宝网、易趣网等购物网站的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识(包括计算机网络技术、相关协议、信息安全、jsp 等相关知识等),选择所熟悉的开发工具进行本毕业设计的开发;在设计中以需求分析为基础
13、,写出系统开发计划、实现流程及相关问题的实现方法。2 2关于关于 jspjsp2.12.1 jspjsp 简介简介jsp(java server pages)是一种建立在 servlet 规范提供的功能之上的动态网页技术,和 asp 类似,它们都是在通常的网页文件中嵌入脚本代码,用于产生动态内容,不过 jsp 文件中嵌入的是 java 代码和 jsp 标记。jsp 文件在用户第一次请求时,会被编译成 servlet,然后由这个 servlet处理用户的请求,所以 jsp 也可以看成是运行时的 servlet。servlet 是 java 对 cgi 的回应。它们在服务器上执行和解释浏览器的请求
14、,承担客户端和其他应用程序之间的中间层的角色。servlet 主要是把动态的内容混合到静态的内容中以产生 html。jsp 页面在 html 元素中潜入 java 脚本代码和 jsp 标记,使得文件长度变短,格式更加清晰。另一方面,jsp 把静态和动态的内容分离开来,实现了内容和表示的分离。使用 jsp,不需要单独配置每一个文件,只要扩展名是.jsp,jsp 容器(也是 servlet 容器)就会自动识别,将其转换为 servlet 为客户端服务。术语 web 容器和 jsp 容器是同义的。2.22.2 jspjsp 的运行原理的运行原理在 jsp 第一次获得来自于客户端浏览器的请求时,jsp
15、 文件将被 jsp 引擎(jsp engine)转换成一个 servlet,即将”.jsp”文件编译成 java class 文件。当 servlet 引擎接收到请求后,如果设置了使用最新的 jsp,它就会去找第 3 页 共 29 页 jsp 文件,检查该文件在上次编译后是否改动过。如果改动过,就会重新编译生成新的 servlet,最终将请求转交给编译好的 servlet 引擎执行。在编译时如果发现 jsp 文件有任何语法错误,转换过程将中断,并向客户端发出出错信息;如果编译成功,则所转换产生的 servlet 代码被编译,然后该 servlet 被 jsp 引擎加载到内存中。此时 jsp 引
16、擎还请求了 jspinit()方法的执行,并对此 servlet 初始化。jspinit()方法在 servlet 的生命周期中只被请求一次,然后将被调用来处理客户端的请求和回复操作。对于所有随后对该jsp 文件的请求,服务器将检查该 jsp 文件自最后一次被存取后是否经过修改。如果没有修改,则将请求交还给还在内存中的 servlet 的 jspservice()方法,执行回复操作。由于 servlet 始终驻于内存,所以响应是非常快的。jsp 页面在第一次访问时由于要转化和编译,运行速度较慢,但是当第二次访问该页时,由于文件已经被编译成字节码文件了,所以速度非常得快。2.32.3 jspjs
17、p 页面的组成页面的组成jsp 页面看上去像标准的 html 和 xml 页面,并附带有 jsp 引擎能够处理和解析执行的代码与组件。通常,jsp 代码和组件用于创建在最终页面上显示的文本。通常来说,jsp 页面包括编译指令,声明,表达式等内容。(1)编译指令:使用 jsp 编译指令(% 和 %内的)来指定所使用的脚本语言,servlet 实现的接口,servlet 扩展的类,servlet 导入的软件包。jsp指令的一般语法形式为:。 (2)声明:用于声明合法的变量和方法。与任何语言相同,jsp 语言使用变量来保存数据。这些变量用 declaration 元素声明,声明的语法为。当页面被初始
18、化的时候,jsp 页面中的所有声明都被初始化。除了简单的变量,方法也能被声明。声明不对当前的输出流产生任何影响。(3)表达式:通过计算表达式所得到的结果来表示某个值。表达式的形式为:。表达式求值的结果被强制转换为一个字符串,并插入到当前的输出流中。2.42.4 jspjsp 的运行环境的运行环境要运行 jsp(注意,不是浏览 jsp 页面) ,需要有支持 jsp 的服务器。这里分 2 种情况:一种是自身就支持 jsp 的服务器,如 jrun,weblogic,jswdk 等;而另一种则是在不支持 jsp 的服务器上安装 jsp 引擎的插件,如在 iis,apache等服务器上安装 websph
19、ere,tomcat,resin 等插件。其中主流服务器是weblogic 和 tomcat.tomcat 服务器是 apache group jakarta 小组开发的一个免费服务器软件,第 4 页 共 29 页 适合于嵌入 apache 中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。访问的地址 http:/jakarta. /tomacat/index.html, tomcat 服务器的兼容性很好,如 weblogic服务器采用其为 web 服务器引擎,jbuilder 将其作为标准的测试服务器,sun公司也将其作为 jsp 技术应用的示例服务器。不足
20、之处是它的配置比较麻烦,而且有一些安全性的问题没有解决。但是 tomcat 服务器有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好。2.52.5 javabeanjavabean 技术介绍技术介绍javabean 技术是一种基于 java 的组件技术,javabean 组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据的提取等,是解决代码重用问题的一种策略。以前的组件无法实现真正的代码重用,其主要原因就是它们对于处理平台的依赖和对开发语言的依赖过重。由于 java 语言在这些方面所具有的特点和优势,使得基于它的软件 javabean 组件技术倍受人们的关注。它的任务就是:
21、一次编写,可以在任何地方执行,可以在任何地方重用。javabean 组件可以在任何地方冲用包括了可以在应用程序、其他组件、文档、web 站点和应用程序构造器工具等多种方案中再利用。为了创建和使用 java 软件组件,javabean 被实现为一种独立于平台和结构的应用程序接口,它的实现可忽略内部的结构及细节问题,只需要定义其外部的特征及对外功能就行。其中,属性、方法和事件三种接口可以独立对外进行开发。javabean 的实质就是一个.class 文件,也可以成为类文件。javabean 以binary 格式保存,可以保护 java 源代码不容易被他人抄袭。3 3需求分析需求分析3.13.1 系
22、统说明系统说明本系统是一个中小型的电子商务系统-网上图书超市,可以为各类用户提供方便的在线买书环境,符合目前国内流行的电子商务模式。用户可以在系统中实现注册、浏览图书、搜索查询图书、下订单、处理订单等功能;管理员可以通过用户管理、订单管理、图书管理、公告管理、投票管理等管理功能来对系统进行维护更新。3.23.2 系统功能简介系统功能简介网上图书超市系统是一个典型的 jsp 数据库开发应用程序,由前台商品展示及销售、后台管理 2 部分组成。前台商品展示及销售第 5 页 共 29 页 该部分主要包括新书上架、重点推荐、销售排行、购物车、会员管理、收银台及订单查询、商品查询等。后台管理该部分主要对商
23、城内的一些基础数据进行有效管理,包括图书管理、用户管理、订单管理、公告管理等。4 4系统设计系统设计4.14.1 功能模块功能模块网上图书超市的前台功能结构如图 1 所示图 1 前台功能结构图网上图书超市的后台功能结构如图 2 所示 图书超市前台图书展台收银台会员管理购物车网上调查重点推荐新书上架订单查询销售排行图书分类浏览网上调查查看调查结果添加至购物车清空购物车移出图书查看购物车填写订单信息购书结帐会员注册会员资料修改会员登录订单查询第 6 页 共 29 页 图 2 后台功能结构图4.24.2 系统设计思想系统设计思想本系统采用三层架构设计,它的工作原理如图 3 所示。图 3 三层架构拓扑
24、图采用三层构架以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。这样用户界面层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。图书超市后台图书管理用户管理订单管理公告管理投票管理退出查看图书信息添加图书信息修改图书信息删除图书信息查看用户信息冻结/解冻查看订单信息执行订单查看公告信息添加公告信息删除公告信息浏览投票项目添加投票项目删除投票项目退出后台管理第 7 页 共 29 页 4.34.3 系统总体流程系统总体流程图4 用户流程图由于后台管理流程图与用户流程图基本相同,因此只
25、例出如图4用户流程图4.44.4 网站架设网站架设.1 1 开发环境开发环境硬件平台:cpu:p41.8ghz;内存:256mb 以上。软件平台:操作系统:windows 2000 server;数据库:sql server 2000;开发工具包:jdk version1.5jsp 服务器:tomcat 5.5浏览器:ie5.0 及以上版本,推荐使用 ie6.0;分辨率:最佳效果 1024768。jdbc 驱动: jdbcodbc driver.2 建立站点建立站点在 tomcat 5.5webapps 文件夹下以网上图书超市系统的名称第 8 页 共 29 页 b
26、ooksupermarket 建立文件夹,然后在 booksupermarket 下建立 web-inf(注意全部是大写)文件夹,最后在 web-inf 下建立 classes 文件夹,lib 文件夹及web.xml 保存类文件,需要的包保存储信息及站点的信息。4.54.5 数据库设计数据库设计本系统数据库采用 sql server 2000 数据库,系统数据库名称为db_bookmanage,共包含 8 张表,根据项目的需求建立相应的数据表的设计结果如下面所示:表 1 图书信息表 tb_bookinfo字段名数据类型长度允许空说明isbnvarchar15图书 isbn 号,主键bookna
27、mevarchar200图书名typevarchar50图书类别名称publishervarchar100出版社名称writervarchar100作者introducetext16yes图书简介pricemoney8价格pdatevarchar50yes出版日期covervarchar100yes图书的封面文件名称intimedatetime8图书信息录入时间newbookint4标志是否为新书commendint4yes标志是否推荐该图书,1 为推荐,默认值为 0 表不推荐表 2 用户信息表 tb_member字段名数据类型长度允许空说明idint4主键自动编号,用户 id号usernam
28、evarchar4no用户名第 9 页 共 29 页 truenamevarchar20no用户的真实姓名passwordvarchar20用户密码cityvarchar20所在城市addressvarchar100联系地址postcodevarchar6邮政编码cardnovarchar24yes证件号码cardtypevarchar20yes证件类型gradeint4yes用户等级amount money8yes消费金额telvarchar20yes联系电话emailvarchar100email 地址freezeint4yes是否被冻结,为 1 表示被冻结,为 0 表示未被冻结表 3 订
29、单信息主表 tb_order字段名数据类型长度允许空说明order idbigint8自动编号,订单编号bnumbersmallint2品种数usernamevarchar15用户名truenamevarchar15用户真实姓名addressvarchar100联系地址postcodevarchar10邮政编码telvarchar20联系电话emailvarchar100e-mail 地址payvarchar20付款方式carrvarc2运送方式第 10 页 共 29 页 yhar0rebatefloat8折扣orderdatesmalldatetin4订单日期bzvarchar200yes备
30、注信息enforceint4yes标志是否被执行,值 1 表示已被执行,为 0 表示未被执行表 4 订单信息明细表 tb_order_detail字段名数据类型长度允许空说明idbigint8订单信息明细的自动编号orderidbigint8订单号isbnvarchar20图书 isbn 号pricemoney8单价numerint4购买数量表 5 折扣信息表 tb_rebate字段名数据类型长度允许空说明gradevarchar20自动编号,等级amountmoney8消费金额rebatefloat8打折比率表 6 管理员信息表 tb_manager字段名数据类型长度允许空说明idint4自
31、动编号managervarchar30管理员名称pwdvarchar30 密码表 7 公告信息表 tb_bbs第 11 页 共 29 页 字段名数据类型长度允许空说明idint4自动编号contentvarchar4000公告内容intimedatetime8 yes公告的内容,默认值为getdate()表 8 投票信息表 tb_poll字段名数据类型长度允许空说明idint4自动编号optionnamevarchar50投票项目pollint4票数,默认为 05 5系统系统实现实现5.15.1 编写编写 javabeanjavabean根据系统的需求编写需要的 javabean。下面将给出网
32、上图书超市需要的javabean 的编写过程。.1 数据库操作的数据库操作的 javabeanjavabean 的的实现实现在系统开发过程中经常需要对数据库操作,这就需要连接数据库和操作数据库(包括数据的插入,更新,删除和查询等) ,数据库操作的 javabean 是一个公共类,通常包括连接数据库的方法 getconnection、执行查询语句的方法executequery、执行更新操作的方法 executeupdate、关闭数据库连接的方法close。因此程序开发就可以将连接数据库和操作数据库的代码写成了一个javabean “conndb.java”,编写完成后将其源代码放
33、到 tomcat 5.5webappsbooksupermarketweb-infsrcbeans 文件夹中。(1)指定javabean“conndb”保存的包,并导入所需的类包,并将其保存到“beans”包中。(2)在构造方法 conndb 中定义该类中所需的变量。通常将方法中常用的变量均放在构造方法中。(3)创建执行查询语句的方法 executequery,返回值为 resultset 结果集。(4)创建执行更新操作的方法 executeupdate,返回值为 int 型的整数,代表更新的行数。(5)创建执行更新操作,并返回该操作中自动编号字段的自动编号的方法executeupdate_i
34、d。第 12 页 共 29 页 (6)创建关闭数据库连接的方法 close。(7)编译 conndb.java,用“javac conndb.java”,生成 conndb.class,将其放到 tomcat 5.5webappsbooksupermarketweb-infclassesbeans 文件夹中。.2 字符串处理的字符串处理的 javabeanjavabean 的的实现实现字符串处理的 javabean 是解决程序中经常出现的有关字符串处理问题的方法的类。包括将数据库中及页面中有中文问题的字符串进行正确的显示和存储的方法 chstr 和将字符串中的回车换行、空格及
35、html 标记符正确显示的方法convertstr 两个方法。下面是编写网上图书超市的字符串处理的javabean“chstr”的详细过程。(1)编写解决输出中文乱码问题的方法chstr。(2)接着编写显示文本中的回车换行、空格及保证 html 标记的正常输出的方法 convertstr。.3 保存购物信息的保存购物信息的 javabeanjavabean 的的实现实现在购物车程序中需要使用一个 bookelement 对象保存所选图书信息,生成该对象的 javabean “bookelenent.java”程序代码。5.25.2 网站前台主要功能模块网站前台主要功能模块实现实
36、现.1 网站前台首页设计网站前台首页设计根据前期的分析及客户的要求,网上图书超市的前台主要包括重点推荐展台,新书上架,图书分类,图书查询,用户管理,购物车,订单生成,订单查询和销售排行等模块。在网上超市前台首页的运行结果如下图 5 所示第 13 页 共 29 页 图 5 首页.2 重点推荐展台的实现过程重点推荐展台的实现过程(1)在网站前台的居中位置,分栏列出了超市推荐的图书信息,主要包括图书封面,名称,出版社,作者及定价等信息。同时列置了“添加至购物车”按钮和“查看”按钮,分别用于将图书添加至购物车和查看图书的详细信息。重点推荐图书信息同图书基本信息同时保存在
37、图书信息表 tb_bookinfo 中,以字段 commend 标识,当 commend 字段的值为 1 时,代表该图书为重点推荐图书。查询重点推荐图书的代码如下:这里需要注意的是, “添加购物车”按钮只有在用户登录后才可以显示,即是只有登录的用户才可以购买图书。(2)根据图书的 isbn 号查询图书的详细信息,图书详细页面的运行结果如图 6 所示:第 14 页 共 29 页 图 6 图书简介在 book_detail.jsp 页面中首先查询符合 isbn 值的图书信息,关键代码如下:将查询结果显示到页面中,此时需要对“图书简介”进行处理,以便正确显示回车换行和空格符。关键代码如下: /此处省
38、略了显示图书信息的 html 代码 第 15 页 共 29 页 .3 新书上架实现过程新书上架实现过程在前台首页中,单击“新书上架”超链接可以进入到新书上架页面newbook.jsp,运行结果如图 7图 7 新书上架上架新书消息保存在图书信息表 tb_bookinfo 中,以字段 newbook 标志,当 newbook 字段的值为 1 时,代表该图书为上架新书。上架新书页面关键代码:.4 图书分类实现过程图书分类实现过程为了方便用户查询所需图书信息,在网站中设置了图书分类显示模块。单击导航条中的“图书分类”超链接即可进入图书分类显示页面,在该页面左的“图书分类
39、列表”中列出数据库中的全部图书类别,用户单击即可在右显示该图书信息列表,单击书名可以查看相应图书的详细信息,如果用户已经登录,还可以直接将图书信息添加到购物车中,图书分类显示页面的运行结果如图 8图 8 图书分类在图书分类页面 booksort.jsp 左的“图书分类列表”中列出了数据库中的全部图书类别,查询图书类别主要通过 select 语句的 group by 字句实现,具第 16 页 共 29 页 体过程:显示图书分类信息时,需要注意的是,不能再使用 while 语句,而应该使用 dowhile 语句,否则少一条记录,这是因为在指定图书默认类别时,已经应用 rs_type.next()语
40、句将记录指针移动到下一条记录了,显示图书分类信息的关键代码: /此处省略填写订单信息代码在图书分类页面 booksort.jsp 的右侧的图书列表中将显示指定类别的图书信息。当用户没有选择类别,可以通过获取类别结果集 rs_type 中的第一条记录的值指定默认类别,否则应用 request 对象的 getparameter 方法来获取选择的类别并查询,部分代码:string ptype=;if (request.getparameter(type)!=null)ptype=chstr.chstr(request.getparameter(type);elseif(rs_type.next()p
41、type=rs_type.getstring(type);elseresponse.sendredirect(index.jsp);resultset rs_book=conndb.executequery(select * from tb_bookinfo where type=+ptype+);%.5 用户管理实现过程用户管理实现过程用户管理主要包括用户注册,用户登录,用户个人资料修改,由于用户个人资料修改比较简单,不多做说明。1用户注册第 17 页 共 29 页 为了统一管理,系统规定只有会员才能购买图书,所以要购买图书的新用户必须先进行用户注册。用户注册的入口位置在网站
42、首页的左侧。用户点击“注册”即可进入用户注册页面,如图 9图 9 用户注册网站要求用户名必须唯一,用户可以先看自己的用户名是否被注册。由于是网络程序,所以注册后在保存用户信息时候,还需要再次对注册用户进行检测。如果不存在,则保存该用户信息。否则提示该名用户已经被注册,请重新注册。保存用户注册信息页面 register_deal.jsp。2用户登录用户登录窗口如图 10图 10 用户登录如果用户输入的用户名存在,并且冻结字段的值不为 1,则判断用户输入的密码是否正确,如果密码也正确,则成功登录,否则提示登录失败。.6 购物车实现过程购物车实现过程购物车主要包括所选图书的添加,查看
43、购物车,单件图书购买数量的修改,清空购物车 4 部分。1添加到购物车 cart_add.jsp主要采用 vector 类型的变量 cart 来存储购物数据的,被保存在 session第 18 页 共 29 页 中,然后将图书信息保存到 cart 中,主要代码:string isbn=chstr.chstr(request.getparameter(isbn);string sql=select * from tb_bookinfo where isbn=+isbn+;resultset rs=conndb.executequery(sql);float price=0;if(rs.next()
44、price=rs.getint(price);bookelement mybookelement=new bookelement();mybookelement.isbn=isbn;mybookelement.price=price;mybookelement.number=1;boolean flag=true;vector cart=(vector)session.getattribute(cart);if(cart=null)cart=new vector();elsefor(int i=0;i2查看购物车查看购物车页面 cart_see.jsp 的顶部首先需要判断购物车是否为空,如果为
45、空将页面直接跳转到购物车为空页面 cart_null.jsp,否则显示购物车信息。显示购物车信息主要是将保存在 session 中的数据利用 for 语句输出到 ie 中,同时根据图书的定价,购买数量自动计算每种图书的金额和购物车中的全部图书的合计金额。代码如下:vector cart=(vector)session.getattribute(cart);第 19 页 共 29 页 if(cart=null | cart.size()=0)response.sendredirect(cart_null.jsp);else/此处插入显示购物车信息的代码,将在下面给出% /此处省略填写订单信息代码
46、%float sum=0;float pric=0;string isbn=;string bookname=;string publisher=;for(int i=0;i /此处省略填写订单信息代码 !-function check()if(isnan(form1.num.value)alert(请不要输入非法字符);return false;history.back();if(form1.num.value=)alert(请输入修改的数量);第 20 页 共 29 页 return false;history.back();-图 11 购物车如图 11 由于在购物车中并没有保存图书的名称
47、,所以在获取图书信息时,还需根据图书的 isbn 号重新到数据表中查图书名称,代码如下: resultset rs_newbook=conndb.executequery(select * from tb_bookinfo where isbn=“+ isbn+” ”);if(re_book.next()bookname=re_book.getstring(“bookname”);3从购物车中移去指定图书实现从购物车中移去指定图书可以通过 vector 类的 removeelementat(int index)方法实现,非常方便。页面 cart_move.jsp 代码为:vector cart
48、=(vector)session.getattribute(cart);trystring id=request.getparameter(id);int id=integer.parseint(id);cart.removeelementat(id);/移去指定图书信息session.setattribute(cart,cart);response.sendredirect(cart_see.jsp);catch(exception e)%4清空购物车实现的方法很简单,只需要将保存在 session 中的购物信息清空即可,清空购物车页面 cart_clear.jsp 代码为:session.
49、removeattribute(cart);response.sendredirect(cart_null.jsp);第 21 页 共 29 页 .7 生成订单实现过程生成订单实现过程生成订单时,不但要保存用户订单中所购买的图书信息和订单信息,同时还需要返回一个可供用户随时查询的唯一订单号。用户查看购物车页面中的“去收银台结帐”超连接即可进入到收银台页面填写订单信息,在该页面中系统会根据用户登录的用户名自动填写用户基本信息,除用户名不可更改外,其他的均可修改,收银台页面的运行结果如图 12图 12 收银台在收银台页面 cart_checkout.jsp 中,首先应用判断用户是否
50、已经购物,然后再判断用户是否登录,如果用户没有购物或是没有登录都将给予提示并返回到网站首页。关键代码为:%if(session.getattribute(cart)=)out.println(alert(您还没有购物!);window.location.href=index.jsp;);string username=;username=(string)session.getattribute(username);if (username!=)tryresultset rs_user=conndb.executequery(select * from tb_member where usern
51、ame=+username+);第 22 页 共 29 页 if(!rs_user.next()session.invalidate();out.println(alert(请先登录后,再进行购物!);window.location.href=index.jsp;);return;elsestring truename=rs_user.getstring(truename);string address=rs_user.getstring(address);string postcode=rs_user.getstring(postcode);string tel=rs_user.getstr
52、ing(tel);string email=rs_user.getstring(email);%.8 订单查询实现过程订单查询实现过程订单查询实现页面是为用户查询订单信息执行状态而设计的,用户成功登录后,单击网站中的“订单查询” ,即可进入到订单查询页面,该页面列出当前用户的全部订单概要信息列表。查询订单概要信息主要从订单主表 tb_order 中根据当前登录的用户名获取订单信息,关键代码如下:resultset rs=conndb.executequery(select * from tb_order where username=+(string)session.getat
53、tribute(username)+);并根据订单编号查看订单的详细信息。.9 销售排行实现过程销售排行实现过程该页面运行结果如图 13 所示图 13 销售排行销售排行数据主要是将销售明细表中的数量 isbn 字段分组并统计销售数量第 23 页 共 29 页 再应用子查询获取销售数量最高的前 10 本图书,最后再使用连接查询获取相应的图书信息,关键代码如下:resultset rs_sort=conndb.executequery(select * from (select top 10 * from ( select sum(number) as amount,isbn fr
54、om tb_order_detail group by isbn )as tab order by amount desc) o inner join tb_bookinfo b on o.isbn=b.isbn order by o.amount desc);5.35.3 网站后台主要功能模块设计网站后台主要功能模块设计在后台设计中主要有 7 个模块,分别是:后台登录,图书管理,用户管理,订单管理。公告管理,投票管理,退出。.1 后台登录实现过程后台登录实现过程后台登录页面运行结果如图 14图 14 后台登录为了网站的安全,防止一些不法分子蓄意破坏,需要为网站后台设计用于验证
55、用户身份的文件 safe.jsp,完整代码如下:%if (session.getattribute(username)=null)out.println(alert(您还没有登录!);window.location.href=index.jsp;);%然后,在网站首页后的每个页面都加入以下代码:这样当用户没有正常登录时,即可弹出“您还没有登录”的提示对话框,确定后将退出后台页面,返回网站首页。.2 图书管理页面实现过程图书管理页面实现过程图书管理模块主要实现对图书信息的管理,包括分页显示图书信息,添加图书信息,修改图书信息,删除图书信息等功能。第 24 页 共 29 页 1 分
56、页显示图书信息分页显示图书信息页面,主要是数据表中的图书信息以列表的方式显示,并为之添加修改和删除的超链接,方便以后对图书信息进行修改和删除。分页显示图书信息页面的运行结果如图 15图 15 图书管理在分页显示图书信息页面中主要显示图书的 isbn 号,图书名称,出版社,是否为新书,是否推荐等信息,至于图书的其他信息,可以单击图书名称超链接进入图书详细信息页面查询实现图书查询的代码比较简单,只需使用javabean 的 executequery 方法和一条 sql 语句即可实现,代码如下:对网页中的数据进行分页显示的实现方法如下:(1) 确定记录跨度,即是每页显示的记录数,这可以根据页面的实际
57、情况由自己规定,例如本系统设置为 10(2) 确认记录的总条数,这可以通过结果集的 getrow()方法获得,此时需要读者注意,使用 getrow()方式时必须先使用结果集的 last()方法。(3) 根据公式“总页数=总记录数/跨度”计算总页数,如果得出的总页数有余数,则舍去令其等于 1 (4) 获取传递的当前页数参数(page) ,并把它转换成整型数据,如果该页数小于 1,则令其等于 1,如果大于最大页数,则令其等于最大页数。第 25 页 共 29 页 (5) 计算当前记录数,当前记录数=(获取的页数1)*跨度+1(6) 通过 for 循环分页显示图书信息2 添加图书信息添加图书信息页面主
58、要用于向数据库中添加新的图书信息。添加图书信息页面的运行结果如图 16图 16 图书添加为了保证图书信息在数据表中的唯一性,根据用户输入的图书 isbn 号判断图书信息是否存在,如果存在则给予提示信息并返回,否则将图书信息保存到数据表中。 3 删除图书信息根据参数 isbn 来删除指定的图书信息。.3 用户管理实现过程用户管理实现过程系统管理员查看用户基本信息,并对于经常失信的用户予以冻结或解冻。用户信息管理页面的运行结果如图 17图 17 用户管理 在介绍如何冻结用户和对已经被冻结的用户进行解冻之前,首先让我们第 26 页 共 29 页 对用户数据表进行简要的分析,在用户信息
59、表 tb_member 中,除了包括用户基本信息字段外,还包括一个标记用户信息是否被冻结的字段 freeze,该字段为int 型,默认值为 0,在设计程序时候规定该字段的值只有 0 和 1 两个,0 代表未冻结,1 代表已经被冻结。由此可见,实现冻结用户只需将该用户的 freeze字段值设置为 1 即可,实现解冻只需将 freeze 字段设置为 0 即可。实现冻结用户页面 member_freeze.jsp 的关键代码如下:if(request.getparameter(id)!=)int id=integer.parseint(request.getparameter(id);string
60、sql=update tb_member set freeze=1 where id=+id;int ret=0;ret=conndb.executeupdate(sql);if (ret!=0)out.println(alert(该会员信息已经被冻结!);window.location.href=membermanage.jsp;);elseout.println(alert(操作失败!);window.location.href=membermanage.jsp;);说明:实现对已经被冻结的用户进行解冻的方法同冻结用户类似,只需将freeze 字段的值修改为 0 即可。.4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级语文下册 成语故事 第十六课 半途而废 第四课时 课后练习教学设计 新教版(汉语)
- 二手车市场环境变化对评估结果的影响试题及答案
- 酒店总经理个人工作总结(31篇)
- 第一单元快乐读书吧:读读儿童故事教学设计-2023-2024学年二年级下册语文统编版
- 陕西省蓝田县高中地理 第二章 自然环境中的物质运动和能量交换 2.2 地球表面形态 地球表面形态教学设计 湘教版必修1
- 宠物饮食与常见疾病试题及答案
- 五年级数学(小数四则混合运算)计算题专项练习及答案
- 财务出纳人员的工作计划范文(7篇)
- 前台年终工作总结合集(3篇)
- 社团部门工作总结(锦集15篇)
- 文物修复师国家职业技能标准
- 危险化学品目录2023
- YY/T 0825-2011牙科学牙齿外漂白产品
- 浙江省医疗机构麻醉药品、精神药品管理实施细则
- 《中国近现代史纲要》 课件 第十一章 中国特色社会主义进入新时代
- 机关单位申请要人的请示范文
- 铀矿冶安全规程
- 国标热镀锌钢管规格尺寸理论重量表
- 设计方案投标技术标文件
- 圆来如此简单公开课优质课件获奖
- (本科)审计(第五版)全套教学课件完整版PPT
评论
0/150
提交评论