《户外用品销售网站的设计.doc》由会员分享,可在线阅读,更多相关《户外用品销售网站的设计.doc(50页珍藏版)》请在三一办公上搜索。
1、1.引言互联网技术的不断发展和普及,使电子商务成为许多企事业单位和个人的发展方向。网络销售网站,属于电子商务领域的重要应用之一。以阿里巴巴为代表的中国电子商务网,以淘宝网为代表的中国网络购物网站,吸引了无数商家和消费者的目光,已经成为越来越多商家进行电子商务的平台,成为网民购物、休闲的好去处。本文试图应用目前主流的网络应用程序开发软件JSP/Servlet+Access,构建一个户外用品网络销售网站,使自己所学得到一次综合应用和提高。2.网上购物系统基本情况介绍伴随着计算机技术在各行各业日益广泛和深入的应用,网络的概念早已深入人心。网络在各行各业的发展战略中占据了重要的位置,成为商家不可分割的
2、部分。商品的宣传已不只局限于电视与报纸,网络已成为商家展示自己的另一个舞台。商家建立网站,将商家各方面的宣传与服务展现于网络中,通过网络更可实现如网上购物、信息查询等功能,这些在改变我们原有经营方式与经营理念的同时,也为商家带来了更高的效益。一个个设计精美、合理的商品销售网站,无异于一座座金色的桥梁,它能将千里之外的各种商品通过网络充分的展现在每一个消费者面前,供消费者挑选、对比,加上便捷的支付手段,迅速的商品配送,实现了人们足不出户,逛街天下,商品到家的梦想。3.网上销售编程技术的介绍与分析在网络上销售商品,就好比在商场销售商品一样,店铺、柜台、营业员,一个都不能少。一个服务器中的销售主页,
3、就是一个店铺;一张张、一页页货物的图片和介绍,就是一个个陈列商品的柜台;在线的客户服务人员,就是导购的营业员。3.1网上销售编程技术介绍构建一个网上销售系统,本质上就是要设计一个由后台数据库和前台的许多个网页组成的网站。就像店铺需要装饰一样,网络销售网站也需要精心设计、制作,使之页面美观、浏览方便、选购便捷、支付安全等等。所有这些,都离不开动态网页编程技术的帮忙。在计算机技术飞速发展的今天,网页编程技术也经历了无数次的更新换代。Sun JSP/Servlet、Microsoft ASP、Microsoft ASP.NET、PHP等动态网页构建技术,都是建立各种动态网络平台的有力工具。3.2网上
4、销售编程技术分析网上销售编程技术,主要就是指动态网页技术。所谓“动态”,并不是指那几个放在网页上的GIF图片,动态网页技术有以下几个特点。 1、“交互性”即网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋。2、“自动更新”即无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量。3、“因时因人而变”,即当不同的时间,不同的人访问同一网址时会产生不同的页面。 除了早期的CGI外,目前主流的动态网页技术有JSP,ASP(ASP.NET),PHP等 。3.2.1 CGI 在早期,动态网页技术主要采用CGI技术,即Common Gatew
5、ay Interface(公用网关接口)。 可以使用不同的程序编写合适的CGI程序,如Visual Basic、Delphi或C/C+等。将已经写好的程序放在WEB服务器的计算机上运行,再将其运行结果通过WEB服务器传输到客户端的浏览器上。通过CGI建立WEB页面与脚本程序之间的联系,并且可以利用脚本程序来处理访问者输入的信息并据此作出响应。事实上,这样的编制方式比较困难而且效率低下,因为每一次修改程序都必须重新将CGI程序编译成可执行文件。虽然CGI技术成熟而且功能强大,但由于编程困难,效率低下,修改复杂等缺陷,所以有逐渐被新技术取代的趋势。最常用于编写CGI技术的语言是Perl(Pract
6、ical Extraction and Report Language,文字分析报告语言),它具有强大的字符串处理能力,特别适合用于分割处理客户端Form提交的数据串,用它来编写的程序后缀为.pl。 3.2.2 ASP ASP更精确的说是一个中间件,这个中间件将Web上的请求转入到一个解释器中,在这个解释器中将所有的ASP的Script进行分析,再进行执行,而这时可以在这个中间件中去创建一个新的COM对象,对这个对象中的属性和方法进行操作和调用,同时再通过这些COM组件完成更多的工作。所以说,ASP强大的不在于它的VBScript, 而在于它后台的COM组件,这些组件来无限的扩充了ASP的能力
7、。 3.2.3 PHP PHP(Hypertext Preprocessor超文本预处理器,即PHP动态网站开发技术)是一种跨平台的服务器端的嵌入式脚本语言(类似于IIS上的ASP)。PHP独特的语法混合了C、Java、Perl以及PHP式的新语法。它可以比CGI或者Perl更快速的执行动态网页。 PHP能够支持诸多数据库,如MS SQL Server, MySql,Sybase,Oracle等。 它与HTML语言具有非常好的兼容性,使用者可以直接在脚本代码中加入HTML标签,或者在HTML标签中加入脚本代码从而更好地实现页面控制。PHP提供了标准的数据库接口,数据库连接方便,兼容性强;扩展性
8、强;可以进行面向对象编程。 3.2.4 JSP JSP是Sun公司推出的新一代网站开发语言,页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向Internet的所有特点。 4.户外用品销售系统的分析、设计与实现经过上面的分析可以看出,构建一个户外用品销售系统,有各种技术手段可以选择,而
9、各种编程技术可谓各有千秋。特别是Sun公司倡导的Java Sever Pages(JSP)和 微软的Active Sever Pages(ASP)在技术方面有许多相似之处。两者都是为基于WEB应用实现动态交互网页制作提供的技术环境支持。同等程度上来讲,两者都能够为程序开发人员提供实现应用程序的编制与自带组件设计网页从逻辑上分离的技术。而且两者都能够替代CGI使网站建设与发展变的较为简单与快捷。不过两者是来源于不同的技术规范组织,其实现的基础:WEB服务器平台要求不相同。 ASP一般只应用于Windows NT/2000平台,而JSP则可以不加修改地在85%以上的Web Server上运行,其中
10、包括了NT的系统,符合“write once,run anywhere”(“一次编写,多平台运行”)的java标准,实现平台和服务器的独立性,而且基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理。有鉴于此,本次毕业设计选择了JSP/Servlet+Access平台进行设计开发。4.1 系统分析与总体设计4.1.1 系统功能概述本系统实现一个基于Web的户外用品销售系统。我们可以将使用该系统的人划分为两个角色:一个是普通用户,主要是通过系统在线选择要购买的户外用品并提交订单;另一个是管理员,主要是通过系统对用户、订单及户外用品进行管理。系统功能划分如图4.1.1所示。用户购买系统管理
11、员管理系统用户注册模块用户登录模块修改用户密码修改用户信息商品评论模块用户购买模块用户退出模块管理员登录订单管理模块用户管理模块商品管理模块管理员退出图 4.1.11、用户购买系统用户购买系统是供用户使用的。用户通过它可以完成注册、登录,浏览、购买商品,对商品进行评价等活动。2、管理员管理系统 管理员管理系统是供管理员使用的。管理员通过它可以对用户订单、注册用户和户外用品信息进行管理。4.1.2 数据库结构及实现数据库outdoorshop(户外用品商店)总共用到6张表,表与表之间有着一定的关系,如表6.1所示。表名说明admin保存管理员账号和密码customer保存注册用户信息outdoo
12、r保存户外用品信息orderlist保存每一份订单中所包含的所有户外用品信息userorder保存订单信息outdoorcomment保存户外用品评论信息表4.11、 管理员信息表admin管理员信息表admin保存着管理员的账号和登录密码,结构如图4.1.2所示。图4.1.22、 注册用户信息表customer注册用户信息表customer保存着注册用户的账号、登录密码、姓名、性别、地址、邮政编码、电话、E-mail信息,结构如图4.1.3所示。图4.1.33、 户外用品信息表outdoor户外用品信息表outdoor保存着网站所销售的各种户外用品的详细信息,结构如图4.1.4所示。图4.1
13、.44、 订单详细信息表orderlist订单详细信息表orderlist用来保存每一份订单中所包含的各种户外用品信息,结构如图4.1.5所示。图4.1.55、 用户订单信息表userorder用户订单信息表userorder用于保存用户订单信息,结构如图4.1.6所示。图4.1.66、 商品评论信息表outdoorcomment商品评论详细表outdoorcomment保存着注册用户或游客对相关户外用品的评论详细,结构如图4.1.7所示。图4.1.7 7、各个表之间的关系除了用户信息表custermer和商品评论信息表outdoorcomment之间的关系不实施参照完整性的以外(即在cust
14、omer表中删除用户的同时,不必对outdoorcomment表内的相关内容进行更新,因为游客也可以参与评论图书),其他都是“实施参照完整性”和“级联删除相关记录”的,除了orderlist表与userorder表是“一对一”的关系外,其他的关系都是“一对多”类型。各个表之间的关系如图4.1.8所示。图4.1.8 各个表的关系4.1.3 文件目录结构本应用系统保存在outdoorshop文件夹下(服务器Tomcat安装路径下的webapps目录中),如图4.1.9所示,其中data目录下存放的是数据库文件,source中存放图片和其他界面设计相关资源,utility中保存可复用的代码文件。其他
15、的目录是TOMCAT自动生成。图4.1.9 系统文件夹结构4.2 户外用品销售网站主页设计网站的主页index.jsp是户外用品销售网站的门户,用户打开网站首先看到的就是这个主页页面。在这个网站首页,用户可以随意浏览商品。需要购买商品时首先要注册购物的账号,通过注册登记后再进行登录认证,之后就可以选购商品、对商品进行评论了。管理员进行的一切操作,如登录、查看订单、商品入库等等,也是从这个首页开始的。从系统结构上看,网站首页index.jsp既不属于用户购买系统,也不属于管理员管理系统,而是这两个系统的入口,属于用户购买系统和管理员管理系统的公共模块,网站的设计,就从这里开始。4.2.1 网站首
16、页index.jsp代码设计图4.2.1网站首页的运行效果,程序清单4.2.1是首页的完整代码。(注:所有程序代码在另外的文档中列出)图4.2.1 网站首页 从首页的代码中可以看到有这样一段代码反复出现:商品名: 类别: 单价:¥这些代码负责显示户外用品信息,供网站浏览者浏览,是网站商品展示的主要窗口。代码在显示商品的时候使用了动态技术,即并没有将户外用品信息直接写入页面,而是使用了一个vector类型的变量outdoorlist来存储要显示的户外用品信息,当需要显示的户外用品信息发生变化时,不需要修改页面代码,即可动态实时的刷新显示信息。Vector是Java语言中的一个数据结构类型
17、,是一个对象的数组,它的每一个元素都是一个对象。outdoorlist这个变量是由一个Servlet(ShowOutdoor.java)创建的,它是一个OutdoorInf类的对象(outdoor)的数组,而OutdoorInf正是用来存储户外用品信息的JavaBean。ShowOutdoor.java根据请求判断哪些户外用品需要被显示,然后从数据库中读出这些户外用品的信息,并将它们存储到outdoorlist中,最后将这个变量写入会话上下文中供index.jsp读取,这是一个典型的MVC框架结构。这样,index.jsp只需要从outdoorlist中读出这些信息并将它们显示出来就可以了,数
18、据库中的户外用品信息发生变化时,都不必修改index.jsp的代码。程序清单4.2.2是ShowOutdoor.java的代码,清单4.2.3是OutdoorInf.java的代码。在网站首页中还设计了一个让用户菜单隐藏/显示的功能。为了实现隐藏和显示用户菜单的功能,应用了在session中设置变量hidden的方法。当用户单击“隐藏”时,请求会发到一个Servlet(MenuHidden.java),该Servlet会在session中写入一个hidden变量;当用户单击“显示”时,请求会发到一个Servlet(MenuShow.java),该Servlet会在session中移除hidde
19、n变量。因此,index.jsp要做的事情就是判断在session中是否含有hidden变量:如果没有,就用include语句将用户菜单页面menu.jsp包含进来(即显示用户菜单);相反,如果有就不将菜单页面包含进来。程序清单4.2.4和清单4.2.5分别列出了MenuHidden.java和MenuShow.java的代码。4.2.2 样式表CSS文件样式表也称CSS,是层叠样式表(Cascading Style Sheets)的简称。它允许网页设计者自定义网页元素的样式,包括字体、颜色及其它的高级样式。也就是说,CSS只是与网页样式有关,并不涉及网页功能。清单4.2.6列出了户外用品销售
20、网站的CSS样式表文件,该文件与网站的相关图片同处于source文件夹下。4.2.3 网页元素文件在utility文件夹中存放着一些JSP文件,这些文件都不是完整的JSP页面,它们包含的是一些页面元素,以供其它JSP页面通过include来调用。其中,siteName.jsp用于显示网站标题;navigation.jsp是导航条元素文件;bar.jsp负责分隔条的显示;scriptFunction.jsp和scriptMenuitem.jsp用于实现一些页面的动态效果,如鼠标停留时自动显示的下级菜单;copyRight.jsp提供了版本信息;menu.jsp和adminMenu.jsp分别定义
21、的是用户系统页面菜单和管理员系统页面菜单。程序清单4.2.7、清单4.2.8、清单4.2.9、清单4.2.10、清单4.2.11、清单4.2.12、清单4.2.13分别列出了这些网页元素文件。需要特别说明的是menu.jsp文件。在这个文件中,应用了一个if语句来控制菜单页面为没有登录和已经登录的用户分别定制不同的页面:对于没有登录的用户,菜单显示快速登录表单(如图4.2.2);对于已经登录的用户,菜单显示欢迎信息和日期(如图4.2.3)。图4.2.2 用户未登录图4.2.3 用户已经登录这种分别定制的页面是通过测试会话上下文(session)中是否含有userId变量来实现的。userId变
22、量是由负责用户登录的Servlet创建的(见用户登录模块相关章节)。只有在用户登录以后系统的会话上下文中才会含有userId变量,因此可以以次作为用户是否登录的标志。4.2.4 Servlet公用类在本系统的bean文件夹下,除了存放开发中用到的所有Bean文件外,还有两个公用类文件:DBClass.java和StrClass.java。DBClass是负责数据库操作的公用类,户外用品销售网站系统中涉及到数据库操作的JSP页面和Servlet都会用到它。该类含有对数据库操作的各种方法,如连接数据库、查询/更新数据库以及关闭数据库连接等。程序清单4.2.14是它的代码。StrClass是负责对字
23、符串进行检测和转化的公用类。在销售网站系统中,经常需要判断字符串是否为数字或E-mail地址。另外,由于表单参数全部都是以字符串形式来传递的,因此常常需要将字符串转化为整数或浮点数,StrClass就提供了这些方法。程序清单4.2.15列出了它的代码。4.2.5 web.xml文件由于本系统选用的web服务器是Apache Tomcat,因此对每一个Servlet,都需要在web.xml进行配置。清单4.2.16列出了户外用品销售网站的完整web.xml内容,该文件位于WEB-INF文件夹下。4.3 用户购买系统用户购买系统是网站的两大子系统之一,包括用户注册模块、用户登录模块、修改用户密码模
24、块、修改用户信息模块、户外用品评论模块、用户购买模块和用户退出模块。4.3.1 用户注册模块1、功能描述用户注册模块的功能是接受用户注册,在检查过用户注册数据的合法性后将用户信息写入数据库。图4.3.1是用户注册模块活动图。点击注册链接填写注册表单检查表单数据写入数据库数据不合法数据合法图4.3.1 用户注册模块活动图在图4.3.2中可以看到用户注册模块中注册表单(userRegister.jsp)的运行效果。当用户在这个表单中输入一些不合法的信息时(如图4.3.3),例如有些项目没有填、输入的地址不够详细、两次输入的密码不一致以及E-mail地址不合法等等,表单就会对用户进行错误提示(如图4
25、.3.4),并要求重新输入信息(合法的信息将会保留)。图4.3.2 注册表单图4.3.3 在表单中输入不合法信息图4.3.4 错误信息提示当用户输入的数据通过合法性检查以后,将会看到如图4.3.5所示的页面。它提示用户注册成功,并在3秒中之后自动登录系统,也可直接点击进行快速登录。图4.3.5注册成功2、功能实现为了实现用户注册模块的功能,首先需要一个注册表单(userRegister.jsp)和一个处理表单数据的Servlet(UserRegister.java)。清单4.3.1和清单4.3.2分别列出了这些文件的代码。在这里同样用到了MVC框架。在上面的代码中,userInf和errInf
26、是由UserRegister.java创建的两个Bean。其中userInf存储用户在userRegister.jsp中填写的信息,这些信息经过UserRegister.java检查后,合法的信息将被保留下来。这样一来,当用户信息中含有不合法数据并要求用户重新填写时,那些合法信息则不必再次填写。另外,errInf存储的是错误提示信息,当表单数据中含有不合法数据时,这些信息会被显示出来提示用户。这两个Bean都是UserInf类,清单4.3.3列出了UserInf类的代码。在确定了用户信息全部合法后,UserRegister.java将把用户信息写入数据库的customer表。同时我们需要一个页
27、面registerSuccess.jsp来提示用户注册成功并完成自动登录。清单4.3.4列出了这个页面的代码。控制系统在3秒后转到index.jsp页面,也可以手动点击快速转到index.jsp页面。4.3.2 用户登录模块1、功能描述用户登录模块负责检查用户的登录信息,即检查用户填写的账号和密码是否与注册的用户账号和密码相符合。如果符合则完成用户登录,否则重新转到登录表单并提示错误信息。图4.3.6是该模块的活动图。帐号密码匹配点击登录链接填写登录表单检查表单数据登录成功帐号密码不匹配图4.3.6用户登录模块活动图图4.3.7显示了登录表单的运行页面。当用户输入的账号与密码不匹配的时候,系统
28、将如图4.3.8显示错误信息,并等待用户重新输入。最后,图4.3.9显示了登录成功的页面。图4.3.7 登录表单图4.3.8 登录不成功图4.3.9 登录成功2、功能实现为了实现用户登录模块的功能,系统需要一个登录表单userLogin.jsp和一个处理表单数据的Servlet(UserLogin.java)。程序清单4.3.5和清单4.3.6分别列出了这些文件的代码。在这里用了一个简单的方案来标识用户是否登录:就是当用户登录以后,UserLogin.java会在session中创建一个userId变量来储存用户的账号。因此,系统若要辨别用户是否登录,只需要检查一下session中是否存在us
29、erId变量。前面提到的menu.jsp就是以这个为基础来实现为未登录用户和已登录用户分别定制菜单页面的。在确定了用户所输入的账号和密码相匹配并为用户建立了userId变量之后,还需要一个页面hasLogin.jsp来提示用户登录成功,并且由该页面负责将页面转到网站首页。清单4.3.7列出了该页面的代码。4.3.3修改用户密码模块1、功能描述修改用户密码模块负责完成用户提交的修改用户密码的请求。在允许用户修改密码之前,需要用户输入原来的密码,并输入两次新密码,并检查新密码的位数是否符合要求。图4.3.10是该模块的活动图。密码合法点击修改密码链接填写表单检查新旧密码写入数据库密码不合法图4.3
30、.10 修改用户密码模块活动图图4.3.11、图4.3.12、图4.3.13分别显示了相应页面的运行效果。图4.3.11 用户修改密码表单图4.3.12 错误提示图4.3.13 修改密码成功2、功能实现表单文件changePassword.jsp和处理表单数据的Servlet(ChangeUserPwd.java)共同完成了修改用户密码模块的主要功能,清单4.3.8和清单4.3.9分别列出了这些文件的代码。在操作完成后,由一个页面operationSuccess.jsp来提示用户操作成功,并且由该页面负责转到网站首页。清单4.3.10列出了该页面的代码。4.3.4修改用户信息模块1、功能描述该
31、模块负责完成用户提交的修改用户信息的请求,与上面的修改用户密码相类似,但要比修改用户密码模块复杂一些。图4.3.14是该模块的活动图。信息合法点击修改用户信息链接填写表单检查旧密码及新信息写入数据库信息不合法图4.3.14 修改用户信息模块活动图在修改用户信息之前,首先是显示用户信息(如图4.3.15),然后点击“修改资料”链接后,进入修改用户资料表单(如图4.3.16),输入密码和信息并进行检验后,如不合法也会返回错误信息(如图4.3.17),修改成功后同样有一个页面提示(复用了修改用户密码模块的操作成功页面)。图4.3.15 显示用户信息图4.3.16 修改用户资料表单图4.3.17 错误
32、提示2、功能实现为了实现修改用户信息模块的功能,需要一个显示当前用户信息的JSP(userInf.jsp)、一个表单JSP(changeInf.jsp)和一个处理表单数据的Servlet(ChangeUserInf.java)。清单4.3.11、4.3.12和4.3.13分别列出了这些文件的代码。在changeInf.jsp的开始处,用了一个if语句来检查单击“修改用户资料”链接的用户是否为已经登录的用户,如果不是,则转到用户尚未登录页面(notLogin.jsp),以避免无权访问该页面的用户看到页面内容。清单4.3.14列出了notLogin.jsp的代码。4.3.5户外用品评论模块1、功能
33、描述用户在网站首页中单击户外用品图片,即可以进入户外用品评论系统。在这个系统中,用户(以注册用户或游客身份)可以查看其他人对该件商品的评论并发表自己的评论。在这个模块中,只需要提供一个页面显示用户对该户外用品的评论,并在其中包含一个表单,使用户可以添加评论。该页面如图4.3.18所示,所用表单以及用户添加完评论之后的页面如图4.3.19和图4.3.20所示。图4.3.18 评论页面图4.3.19 添加评论表单图4.3.20 添加评论成功2、功能实现该模块有一个JSP页面(outdoorComment.jsp)和一个Servlet(AddComment.java)组成,代码见清单4.3.15和4
34、.3.16。4.3.6 用户购买模块用户购买模块是用户购买系统中最核心也是最复杂的模块,它负责完成用户对订单的查询、修改及提交等操作,以下将分几个部分分别描述。1、购买在用户开始购买的时候,系统会为其创建一个购物车(一个储存订单信息的Bean),将用户选中的户外用品的编号、品名等信息储存到购物车。购物车是一个vector的变量,它的每一个元素都是一个CartInf类(Bean)。清单4.3.17就是CartInf类的代码。用户在主页中单击Add to shoping cart图标(如图4.3.21)并在弹出的窗口(如图4.3.22)中填入需要的数量,提交成功并显示确认信息(如图4.3.23)后
35、就完成了添加购物车的过程。JSP页面addCart.jsp作为弹出窗口来接收用户填入的商品数量,代码见清单4.3.18。购物车图标图4.3.21 添加到购物车图标图4.3.22 购买数量弹出窗口图4.3.23 放入购物车成功Servlet文件AddCart.java用来处理添加户外用品到购物车的申请,清单4.3.19列出了它的代码。2、修改订单修改订单,指修改尚未提交的订单,即购物车信息。要修改订单,首先要能看到订单,这就需要用一个JSP页面(myCart.jsp)来专门负责显示用户购物车信息。图4.3.24显示了myCart.jsp的运行效果,清单4.3.20列出了它的代码。图4.3.24
36、我的购物车运行效果修改订单包含两种操作,即从购物车中删除某种户外用品和修改预购户外用品数量。下面的图4.3.25图4.3.28给出了修改订单的操作,由ChangeOrder.java来实现,代码如清单4.3.21所示。图4.3.25 修改户外用品数量图4.3.26户外用品数量为非整数图4.3.27 删除所订户外用品图4.3.28 成功删除户外用品3、提交订单提交订单就是将购物车中的户外用品信息写入数据库。由于订单信息和订单项信息是分开在两个表里储存的,而这两个表之间存在着参照完整性规则约束,因此这一操作将要涉及到两个表的同时更新。SubmitOrder.java实现了这一功能,代码见清单4.3
37、.22,图4.3.29和图4.3.30给出了提交订单的操作和操作成功的页面效果。图4.3.29 提交订单图4.3.30 订单提交成功4、查看历史订单订单提交以后就变成了历史订单,用户可以通过单击导航栏的“历史订单”链接来查看这些订单,userOrder.jsp就是负责这项工作的。图4.3.31显示了提交的订单,清单4.3.23列出了文件代码。图4.3.31 历史订单如果用户要查看订单每一单项的信息,则需要单击“查看”按钮,向orderList.jsp发出请求,然后由该JSP以弹出窗口的方式显示订单项信息。图4.3.32显示了弹出窗口效果,清单4.3.24列出了它的代码。图4.3.32 订单详细
38、信息4.3.7 用户退出模块在用户退出模块中,只需将userId这个变量删除即可。另外,在退出之前,系统还要检查用户的购物车是否为空,如果不是,系统还要负责提示用户,并有用户决定是清空购物车直接退出,还是转到我的购物车页面进行订单操作。在用户退出时,UserExit.java负责删除userId变量,EmptyCart.java负责清空购物车,cartFull.jsp负责提示用户购物车中还有商品没有提交为订单(如图4.3.32)。图4.3.33是成功退出时显示的提示信息。清单4.3.25、4.3.26、4.3.27分别列出了他们的代码。图4.3.32 提示有未提交商品图4.3.33 成功退出4
39、.4 管理员管理系统管理员管理系统是网站的另一个子模块。由于管理员不同于普通用户,不可以在本系统中申请账户,所有管理员账户必须直接在数据库中添加,所以管理员管理系统中不含注册模块,它包括管理员登录模块、订单管理模块、用户管理模块、户外用品管理模块、管理员退出模块。4.4.1 管理员登录模块1、功能描述管理员可以通过主页页面的管理员人口进入管理员登录表单页面(adminLogin.jsp),图4.4.1为该模块的活动图。帐号密码匹配点击管理员入口链接填写表单核对账号及密码进入管理员系统帐号密码不匹配图4.4.1 管理员登录活动图与用户登录模块相同,管理员登录模块也需要一个表单来收集管理员的帐号和
40、密码(图4.4.2)。在管理员提交了表单数据以后,系统也要对数据进行校验,如果发现管理员帐号和密码不匹配,则返回错误信息(图4.3.3)。图4.4.2 管理员登录图4.4.3 错误信息2、功能实现管理员管理系统的登录模块通过在session中创建一个adminId变量来标识管理员登录,表单页面文件adminLogin.jsp和Servlet文件AdminLongin.java共同实现了管理员登录的功能,清单4.4.1和清单4.4.2分别列出了它们的代码。由于管理员账户不能在主页中申请产生,因此必须先在数据库中设置一个管理员帐号(比如帐号和密码均为admin)。登录成功后,系统由一个JSP页面a
41、dminLoginSuccess.jsp提示管理员登录成功(图4.4.4),清单4.4.3是它的代码。图4.4.4 管理员登录成功4.4.2订单管理模块1、功能描述对于管理员来说,最感兴趣的莫过于订单管理了,因此特意将订单管理页面(admin.jsp)设为管理员登录以后直接转入的页面(图4.4.5)。订单管理主要是完成查询操作,单击用户的名字和“查看”按钮,就可以进行用户信息查询和订单详细信息查询 (图4.4.6和图4.4.7)。图4.4.5 管理员系统首页图4.4.6 订单详细信息页面图4.4.7 用户信息页面2、功能实现Admin.jsp文件实现了管理员首页的功能,清单4.4.4是它的代码
42、。订单项信息复用了前面描述过的订单列表页面orderlist.jsp文件。弹出窗口页面文件customerInf.jsp实现了查看用户信息的功能,清单4.4.5是它的代码。4.4.3用户管理模块1、功能描述用户管理包括管理员对用户信息的查询和删除。用户管理页面(图4.4.8)用于显示所有注册用户信息。为了实现删除用户的功能,页面为每一个用户分配了一个复选框。这样管理员通过选中复选框,再单击删除按钮即可实现相应用户的删除功能(图4.4.9)图4.4.8 用户信息管理页面图4.4.9 成功删除用户2、功能实现名为customerManage.jsp的JSP文件用于实现用户管理模块,清单4.4.6为
43、它的代码。删除用户的功能由Servlet文件DeleteUser.java来完成,清单4.4.7列出了它的代码。4.4.4户外用品管理模块户外用品管理模块涉及户外用品的添加、删除和修改,以及商品评论的查看和删除等多方面的功能,户外用品管理页面outdoorManage.jsp(图4.4.10是实现所有这些功能的入口,清单4.4.8是它的代码。图4.4.10 户外用品管理页面1、添加户外用品添加户外用品是管理员对网站进行维护的重要工作(图4.4.11)。表单addOutdoor.jsp负责收集所添加户外用品的信息,并由一个Servlet(AddOutdoor.java)将这些信息写入数据库。清单
44、4.4.9和4.4.10是这两个文件的代码,图4.4.12和图4.4.13显示了相关操作的页面。信息合法点击添加商品链接填写商品表单检查表单信息的合法性写入数据库信息不合法图4.4.11 添加户外用品活动图图4.4.12 添加户外用品表单图4.4.13 错误信息提示2、删除户外用品删除户外用品由一个Servlet(DeleteOutdoor.java)负责(图4.4.14),清单4.4.11列出了它的代码。图4.4.14 删除户外用品3、修改户外用品信息由于管理员有时需要对户外用品的某些信息(如单价、品名等)进行修改,这里为系统设计了修改户外用品信息功能。在户外用品管理页面中单击户外用品名称,
45、首先弹出商品评论窗口(见下面的描述),关闭弹出窗口后即显示当前户外用品信息页面(图4.4.15),它是一个修改户外用品信息的表单,由一个JSP页面(changeOutdoorInf.jsp)来实现,另外一个Servlet(ChangeOutdoorInf.java)用来更新数据库,清单4.4.12和4.4.13分别列出了它们的代码。图4.4.15 修改户外用品信息表单4、商品评论管理管理员对商品评论的管理包括2个操作:查看评论和删除评论,它们分别由一个JSP页面(commentManage.jsp)和一个Servlet(DeleteComment.java)负责,清单4.4.14和清单4.4.
46、15分别列出了它们的代码,图4.4.16是查看和删除评论的弹出窗口效果(如前所述,在户外用品管理页面中单击户外用品名字即可进入)。图4.4.16 查看和删除商品评论4.4.5管理员退出模块管理员退出模块与用户退出模块相似,只是管理员退出时不用检查购物车,只需要将adminId变量删除即可。清单4.4.16列出了负责管理员退出的Servlet(AdminExit.java)的代码,图4.4.17显示了成功退出系统后系统的响应页面。图4.4.17 退出成功5.总结经过近一个月来紧张的忙碌,终于完成了本次毕业论文的设计和写作。这不仅仅是一次写作的过程,更是一次学习、提升的过程。在论文写作的过程中,我通过课本、参考书,利用图书馆、书店和互联网,将各种各样相关的基础知识、专业知识和互联网应用技术进行了一次全面的学习、整合和梳理。在知识融会贯通的过程中,自己的知识水平、实践能力和技术视角都发生了一次质的飞跃,使自己能站在一个更高的技术平台上对网络应用技术进行解读。同时,我也更加强烈的体会到了“学海无涯,学无止境”的内涵。科学技术的飞速发展,远远超过了个人接受知识的速度。我通过这次毕业设计获得的知识和技术,仅仅是知识海洋中的一滴小水滴