您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页基于JSP的网上购物系统的设计与实现

基于JSP的网上购物系统的设计与实现

来源:叨叨游戏网


基于JSP的网上购物系统的设计与实现

摘 要:伴随着Internet的蓬勃发展,网络购物中心作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已经不再满足用途信息的浏览和发布,而是渴望着能够充分享受网络所带来的更加多的便利。网络购物正适应了当今社会快节奏地生活,使顾客足不出户便可以方便快捷轻松地选购自己喜欢的商品。

本系统主要为用户提供了会员注册,购物车管理,商品搜索,用户资料修改等功能,为管理员提供了商品管理,用户信息管理等功能。在设计方面,本系统采用B/S三层结构,同时使用JSP技术进行动态页面的设计,从系统的安全性和代码的可重用性方面考虑,运用JavaBean对程序的关键代码进行封装。

关键词: B/S结构;Tomcat;JSP;MySql

Designed in the Online shopping system based on JSP

Yan Hai lei

Abstract:Along with the vigorous development of the Internet, e-commerce networks as a

shopping center is a form of its highly efficient, low-cost advantages, gradually emerging as a business model and philosophy, there is no longer meet use and dissemination of information browsing, but a desire to bring the full enjoyment network more convenient. Internet shopping is being adapted to the fast pace of today's society to live, so that customers can enjoy the convenience of fast and easy way to purchase their own like commodities.

The system has mainly provided users with the following functions: membership registration、shopping car management、goods search、information modify etc. It has also provided managers with goods management、customer information management and so on. It has been designed with B/S mode of three-tier structure, JSP technology in dynamic page design. Considering from the security and reusing code of the system, key codes has been secured by JavaBean technology.

Key words:B/S,Tomcat, Jsp ,Mysql

1

前 言

近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。

网上订购系统作为电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。本次毕业设计的任务是,构建一个电子商务网站,采用的主要技术是基于服务器端的JSP、Java的组件JavaBean,以及网页编程语言HTML。

JSP[2]是Java Server Page的缩写,是由Sun Microsystems公司倡导、许多公司参与建立一种动态网页技术标准,它在动态网页的建设中有强大而特别的功能。JSP是一种服务器端HTML(或XML)嵌入Java代码的脚本语言,是开发Web动态网站快速而有效的工具,JSP的技术的优势:

1.一次编写,到处运行。由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA – Write Once, Run Anywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。

2.系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。

3.强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

4.多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

今天,大多数企业已经建立自己的网站介绍和销售他们的产品。您只要拥有一个计算机、浏览器、Internet连接和信用卡,今天就可以从网络上购买到书本、CD、鲜花、飞机票、电视、甚至是汽车。如今网上购物已经成为企业增加市场竞争力的一种重要的手段,同时使人民购物更加方便快捷。

2

1 网上购物系统绪论

1.1 系统开发背景

1.1.1网上购物的发展

伴随着计算机技术在各行各业日益广泛和深入的应用,网络的概念早已深入人心。网络在各行各业的发展战略中占据了重要的位置,成为商家不可分割的部分。商品的宣传已不只局限于电视与报纸,网络已成为商家展示自己的另一个舞台。商家建立网站,将商家各方面的宣传与服务展现于网络中,通过网络更可实现如网上购物、信息查寻等功能,这些在改变我们原有经营方式与经营理念的同时,也为商家带来了更高的效益。因此,对于商家来说,拥有一个属于自己的网站是至关重要的。

1.1.2网上购物系统的现状

在美、日等信息化程度较高的国家和地区,网络商店发展速度迅猛,美国的世界级超一流的零售商,如沃尔玛凯玛特,家庭仓储、科罗格、J.C培尼等纷纷挤身于网络经商的行列。调查表明:美国的家庭已越来越习惯于在家中从网上购物。

在我国,网上购物从无到有也不过短短几年时间。我国第一家网上购物发生在1996年,燕莎友谊商场首次通过网上商城售出一个景泰蓝,虽然货款的支付不是在网上进行的,但这毕竟为我国零售业奏出了网上购物的先声。根据CNNIC的统计结果,截止2004年1月中国有互联网用户7950万人,而又有40.7%以上的网民在过去的一年里有过网上购物经历,这就说明中国有网上购物的用户达是3235.7万人,并且这一数字还在以17%左右的速度增长,预计到2006年中国网上购物用户将达到6962万人,这说明在中国发展网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。

1.2系统实现的目标

现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划,注重每一个细小的环节。这样才能使得在电子交易时避免不必要错误发生。我们将使用

3

HTML、JSP等技术来编辑网页,并运用JDBC技术把数据库和动态网页相关联。传统的管理信息系统信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。当数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。本设计在实际应用中的解决方案是建立网站, 以及自己的数据库,使得所需商品信息可以及时的保存、更新,可以更好的及时了解商品买卖的情况。

1.3系统的开发意义

Internet的发展,为改变传统的商业运作模式提供了一种技术上的可行性的方案:利用Internet的技术和协议,建立各种企业内部网Intranet,企业外部网Extranet,通过廉价的通讯手段,将买家与卖家、厂商和合作伙伴紧密结合在了一起,消除时间与空间带来的障碍,从而大大的节约了交易成本,扩大了交易范围。而在实际的生活中,这种方案已经被广泛的运用到了实际的商业活动中了,人们将这种交易模式称为:电子商务。

当今比较流行的网上购物系统国外有“淘宝(www.taobao.com)”,国内有“当当(www.dangdang.com)”。它们都是相当优秀的电子商务网站,对其他的网站提供了良好的典范。设计中可以学习参考他们的思想,了解和熟悉整个网站的开发流程及完整的电子商务网站应有的功能和注意事项。

2网上购物系统

系统分析是平台开发的一个不可缺少的环节,为了能够使本系统更好、更完善地被设计出来,就必须先进行调查研究。在系统调查的基础上,对新系统的功能进行细致的分析,从而才能够开发出完整的系统设计。

2.1网站的设计目标

随着信息化技术在生活中的应用越来越广泛,网上购物也逐渐成为人们的一种生活方式。本系统正是基于这样一种环境下应运而生,采用JSP+Mysql数据库的架构实现的。前台管理是友好的操作界面,供用户浏览、查询使用,包括:浏览商品、查询商品、订购商品、购物车、用户维护等功能。

4

2.2网站的可行性分析

可行性分析是在全面调查基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、运行的方面进行分析和研究,以避免投资失误,保证新系统开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。这部分将从以下四个方面进行研究:技术可行性、经济可行性、操作可行性和调度可行性。

(1)技术可行性

因为计算机硬件的发展已经越来越快,现在PC机的性能已经可以胜任普通网站的web服务器。购买一台高性能PC机作为企业的网站对于这个营销商来说并不是问题。

JSP是Java在Internet/Intranet Web上的重要应用技术,可以和各种Java技术完好的结合在一起从而实现非常复杂的应用。因此得到了广泛的支持和承认,成为一种非常流行的网站开发技术。利用JSP技术可以建立先进、安全和跨平台的动态网站。鉴于JSP技术的成熟与广泛的使用,加以指导老师的帮助可以得到很多的技术支持。由于在学习数据库是SQL Server,所以采用Mysql-essential作为数据库的后台。

(2)经济可行性

根据调查的资料,现在聘用一支团队设计并建设企业商务型网站的费用为5300元左右,另外每年交纳600元占用网站空间和网站维护费。为了使网站建成后能达到增加企业经济效益的效果,寻找一支创新与技术优秀的团队最多需要增加3000元的一次性投资。这样看来一个成功的网站建成后为这个营销商带来的效益将会远大于成本。但架设好一个网络中的服务器,以满足互联网中浏览者对速度的需求,这样每年服务器与网络线路和设备的维护费用将是企业不得不重点考虑的因素。如何做好经济可行性分析,需要通过仔细的调查与投资和行业方面的专业人士分析。

(3)操作可行性

如今,计算机与网络已经非常地普及。特别是在企业信息化高需求与快速发展的时代,计算机应用已经成为企业员工必备的技能。由于这个课题是以PC机作为服务器的网站,营销商可以自己对网站进行操作和管理。

5

2.3网站的深入调查

经过以上的初步调查和研究,并且确定了该平台的可行性,并决定开发本平台,为了能够对现行的平台内容进行充分了解,使所要开发的平台更具有实用性和适应性,通过两个月的实习调查和指导老师的耐心介绍,设计出该平台功能如下:

1.用户注册:在网上购买商品的用户一定是该系统的注册用户,因此,必须提供用户注册功能;

2.用户登录:提供用户在网站上购物前的登录功能。只有登录后,用户才能正常进行购物操作。

3. 商品搜索:用户在浏览商品时,必须给予搜索功能的支持,以便用户能够快速地查找自己喜欢的商品。

4. 购物车管理:当用户选定一种商品后,就可以把这正商品放到购物车中。需要注意的是,在购物车中商品不是用户最终购买的商品,只是一个购物意向,用户可以根据需要,在提交订单之前,随时修改购物车中的商品。

经过前一阶段的调查与研究分析,我已确定了该平台设计的主要功能,对每个功能模块也作了具体描述,下面就来具体分析该平台的设计特点与具体思想。

2.4网站设计的特点

我所设计和开发的网上购物平台是经过很长时间的调查和分析才开始具体实施的,它的主要特点是改变了以往的购物只能过现实的商场才能达到的结果,采用Web技术,借助于Internet互联网广泛应用技术,达到资源共享,提高以往购物的局限性,缩短人们的时间和提高工作效率,具有较好的交互性,从而实现信息化,规范化,系统化,网络化的平台,使整个购物活动过程简单、方便、易行。

2.5系统设计的总体规则

无论哪个网站都要有它自己的设计规则。该平台也一样,它的主要设计规则有:

6

简单性:在实现平台的功能的同时,尽量让平台操作简单易懂,这对于一个网站来说是非常重要的。

针对性:该平台设计是网上购物系统及后台管理的定向开发设计,所以具有专业突出和很强的针对性。

实用性:该平台能完成电子商品展示和管理员管理的基本信息,具有良好的实用性。

3 系统的开发技术及主要架构

3.1开发技术的选择

合理的选择开发技术,对于网站开发的完成情况有着非常重要的影响。要开发一个网站,首先要选择一个动态网页开发技术。当前比较流行的动态网页开发技术有JSP、ASP、PHP。它们的特性比较如表3-1所示:

表3-1 asp/jsp/php比较表

技术名称 对数据库的支持 开发难易度 使用平台 安全性 对组件的支持 执行方式 跨平台

这三种都是在传统的HTML代码中,利用HTML标签的扩展,构成页面。

7

ASP 好 容易 Windows9X/NT 不好 支持 解释执行 不好 JSP 好 容易 Windows/UNIX 好 支持 编译之后执行 好 PHP 好 较难 UNIX 不好 不支持 解释执行 好 不难看出,JSP的综合实力是最强的,尤其是在安全性和跨平台性两个方面,比其他的两种技术都要好,因此,最后我们选择基于Java的JSP技术作为动态网页的开发技术。

3.2系统的主要架构及开发模式

系统的建设关键在于其所使用的架构,而网上购物这种基于web的系统,传统的c/s架构已经不能满足大量用户的访问和操作,b/s基于浏览器的架构则是目前网络系统应用的主流,它将大量的数据处理工作交给服务器端来处理,客户端只用通过普通的IE浏览器即可访问系统,方便快捷而且利于系统的更新和维护,java语言在该方面更是得天独厚,j2ee规范的出现则使系统的开发更加规范,层次更加清楚,更利于对复杂事务的处理,而且在安全性方面也做的更好。基于mvc的开发流程则使开发过程更加清晰明了,利于做一些复杂的逻辑实现,从而节省了开发周期和开发成本。

3.3基于B/S的体系结构

在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由Web Server完成。实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。这种三层体系结构如图3-1所示。

Browse 浏览器 Web服务器 数据库

图3-1 B/S三层架构示意图

8

这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,使客户机一下子\"苗条\"了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。这种三层结构在层与层之间相互,任何一层的改变不会影响其它层的功能。

4 系统的功能和流程

4.1 平台功能模块的设计分析

在平台功能的分析基础上,用户进入网上购物平台,用户可以注册,然后登录后可以进行修改资料,用户可以通过商品搜索,找到自己想要产品。得到本平台的功能模块图如图4-1所示

网上购物系统 会员登陆 登陆登陆 未登陆 购物车模块 订单查询模块 商品查找模块 商品分类列表模块 最受欢迎的商品模块 商品详细信息模块

图4-1 平台购物模块图

9

4.2 系统流程分析

4.2.1购物流程如图4-2 所示

未注册用户 注册 浏览商品 选择商品 订购商品 已登录注册用户 登录 去购物车 去收银台 提交订单 未登录注册用户 图4-2 前台购物流程图

用户可以浏览商品,看到自己喜欢的商品可以选择商品,然后订购商品,这时需要进行判断,如果是没有注册的用户,那么系统跳到注册页面,如果是注册了没有登录的用户,则跳转到登录页面,已经登录的用户则跳转到购物车页面,然后去收银台结帐,然后提交订单。

4.2.2注册功能流程如图4-3所示 用户名有效? 必选项为空 2次输入密码是密码长度符合E-mai地址有效其他信息有效 注册成功 图4-3 注册功能流程图

注册入口 10注册的具体实现为:

点击主页面的用户注册选项后,会弹出一个注册信息页面,用户需要如实填写用户名,密码,E_mail,地址,电话,真实,姓名等各项信息,提交后,系统进行检测判断该用户名是否已经注册过,如果已经存在则弹出新页面,提示用户该用户名已经注册过,如果没有则进行下一步判断,用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将提示用户注册成功,用户登陆后,就可以进行有效的购物了。

4.2.3商品搜索流程如图4-4所示

图4-4 商品搜索流程图

续搜索 查看商品 否下订单 购物车 搜索结果 是输入条件 开始搜索 商品的搜索功能使用户更加方便的进行自己所需要的商品的查询,节省时间,提高效率。用户搜索时只要输入商品的关键字就能搜索到所有相关的商品。并且能列出通过搜索得到的商品的详细信息。

11

4.2.4用户登录流程如图4-5所示

登录成功 图4-5 用户登陆流程图

将UserID存入session中 取得用户名和密码 核对密码是否正确 是查询用户是否存在 是否登录入口 否用户登录,首先要有一个提供用户登录的表单。用户登录的表单应该嵌入整体的结构当中。在实际的应用中,可以这样设计,如果用户没有登录,则在页面中显示用户登录的选项,用户登录后,则可隐藏用户登录的选项而代之以用户的基本信息。

首先,用户要有一个用户名和密码。商务网站需要很高的稳定性和安全性,因此对用户名不允许使用恶意的代码作为用户名。同时对密码也要求保密,将密码加密后再存入数据库。另外,一个电子商务网站。用户的真实姓名是必不可少的。除此之外还需要用户的性别、E-MAIL、电话号码等。

4.2.5购物车流程如图4-6所示

购物车具体的实现可采用这种形式:定义一个购物车的类(Class)。 1.列出商品的列表,使用户能够自由选择所需要的商品。 2.当用户在点击“添加到购物车”的链接时,执行如下功能:

检查用户购物车类是否存在。如不存在,则建立,并注册这Session变量;

12

在有用户购物车类存在的情况下,检查该类中是否有该商品。如存在,则商品数量相应加1;如没有该商品,则将该商品添加到该类中。

购物车 查看商品

下订单 图4-7 购物车流程图

满意吗 是调整商品 5 系统功能的具体实现

5.1系统数据库表的基本设计

表的设计是这次设计的一个核心内容。根据前面对网站前台与后台功能模块的分析和对数据库中实体关系的设计,可以看到网站中所用到的数据信息基本包括:商品信息、用户信息、留言信息、订单信息、超级链接信息等。下面是为数据库设计的表:

表5-1 会员信息表member

字段 User_id User_name User_pass User_adds User_mail User_tel User_regtime 字段名 会员编号 会员帐号 会员密码 会员地址 会员E_Mail 会员电话 注册时间 类型 自动编号 文本型 文本型 文本型 文本型 文本型 日期型 宽度 50 50 255 50 50 小数位 索引 是 可否为空 否 否

13

User_postcode User_namec 邮政编码 会员姓名 文本型 文本型 50 50 [说明]对于会员信息表,会员编号也要有一定的命名规则,另外会员帐号的命名规则也有一定要求,如必须以字母开头,不能有特殊字符,长度大于4个字符小于16个字符等等,还有一个需要注意的是用户密码,由于Access数据库本身不提供特殊字段的加密,用户注册以后注册密码是以明码形式存放在数据库中,这对系统来说是极不安全的,因此需要我们用一些特殊工具来对其进行加密。

表5-2购物车表basket

字段 Basket_id Hw_id User_name Basket_count Basket_date Basket_check Hw_name Hw_cash Sub_number

字段名 购物车编号 商品编号 会员帐号 商品数量 购物时间 是否结帐 商品名称 商品价格 订单编号 类型 自动编号 自动编号 文本型 数值型 日期型 是/否 文本型 数值型 文本型 宽度 50 18 50 18 50 小数位 2 索引 是 是 是 可否为空 否 否 否 [说明]购物车表则是系统中与其他几个表关系最多的一个表了,它包含了商品表,会员表中的几个重要字段,是我们进行最后购物统计的主要依据,我们在确定购买一样商品的时候,系统将数据写入购物车表,在用户确定去结帐之前basket_check值为否,确定之后值变为是,一个用户可能对应多个basket记录,但在统计的时候,仅对basket_check为真的记录进行统计,这样就可以避免造成统计错误。

14

5.2 功能总体说明

5.2.1 功能页面结构

主页面框架:

index.jsp,top.jsp,in-search.jsp,includenotice.jsp,paihang.jsp, middle.jsp

商品展示:bought.jsp,cash.jsp,showing.jsp,views.jsp,inproduct.jsp 登陆注册:dengluyufou.jsp reg.jsp,regsave.jsp,quit.jsp

5.2.2 主要功能流程

图5-1 主要功能流程图

用户根据图示完成网上购物的基本流程,在前面已经详细说过。

15

5.3各功能模块的实现

5.3.1数据库的连接

出于安全性的考虑,我们将与数据库的连接,单独写出来并进行编译,也就是数据库连接的javabean文件,编译出来的.class文件是无法被修改的只能通过源文件进行修改,我们在JSP页面中只用直接调用改方法即可,在本系统中我们将其命名为为.faq

存放在class/ckstudio/db下设其id为mdb,我们在需要对数据库进行操作的时候只需在页面上添加这样一个标签即可。连接关键代码如下:

String url = \"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)}; DBQ=\"+strDirPath+\"db.mdb\"; 定义连接地址 Connection conn = DriverManager.getConnection(url); 连接数据库 5.3.2用户登陆模块的实现

用户登陆模块是防止非法用户登陆的第一道防线,通过它可以保护后台数据库的安全性,当用户要进行定购时,首先要进入的就是身份验证界面,只有在密码正确的情况下才能进行以后的购物,如果输入的密码不正确,则不能进行定购。如果用户以浏览者的身份进入网站,则只能进行一般的商品浏览和搜索,而不能进行选购,在点击添加购物车后,系统会判断该用户是否是登陆用户,如果不是则弹出提示页面,提示用户必须先登陆才能定购商品,如果是第一次登陆,请先注册。

主页面的效果图如下图5-2所示:

16

图5-2 主页面示意图

如果用户还不是会员则提示用户进行注册,用户提交信息之后,系统开始判断用户的注册信息是否有效,首先是用户名是否为空,(该处存在用户名命名规则的问题,后面问题中会详细解决)用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入会员表即member并提示用户注册成功,用户登陆后,就可以进行有效的购物了。

17

注册页面的效果图如下图5-3所示:

图5-3注册页面示意图

系统对用户的注册信息的验证实现如下: 用户输入的各项信息分别对应字段

先判断用户名是否为空request.getParameter(\"user_name\").equals(\"\")

同样道理对密码进行判断

判断两次输入是否一致user_pass.equals(user_pass2) 其他选项与上面类似,如果条件符合则将该值赋给各个字段 用户名重复的验证代码为:

sql=\"select * from member where user_name='\"+user_name+\"'\"; 当所有条件都符合的时候,系统将数据写入数据表,并返回成功页面,显示用户所填的注册信息,写入关键语句为: sql=\"Insert

into

member(user_name,user_pass,user_adds,user_mail,user_tel,user_regip,user_namec)values('\"+user_name+\"','\"+user_pass+\"','\"+user_adds+\"','\"+user_mail+\"','\"+user_tel+\"','\"+request.getRemoteHost()+\"','\"+getStr(request.getParameter(\"user_namec\")))\";

18

登陆的具体实现要通过一个全程变量,即Session变量来实现,在系统中则

由一个单独的session.jsp页面来放置该session。用户登录的界面dengluyufou.jsp,从member表查得用户提交的帐户名和密码正确后,用一个全局变量,即Session变量保存这一消息(该变量名称为Session(“user_name”))。

示意图如图5-4所示

图5-4 登录示意图

具体的判断过程为:

若session中user为空即session.getAttribute(\"user_name\")==null,表明没有经过登陆与否的验证,则立即跳转到dengluyufou.jsp,请用户登录;并将用户登陆的帐号和密码通过

关键代码为:String sql=\"select * from member where user_name='\"+user_name+\"'\";

如果user_name存在的话则判断其密码是否正确 如

session

session.setAttribute(\"user_name\

以方便系统对用户在操作一些会员功能时进行用户身份验证。

登录后,可以马上看到自己的资料,如图5-5所示:

图5-5 用户信息示意图

19

用户在登录之后也可以对自己的资料进行修改,在点击主页面的修改资料之后,弹出这样的一个页面,用户可以直接在文本框里修改,然后确认。如图5-6所示

图5-6 用户资料修改示意图

修改这一过程的具体实现过程为

sql=\"select * from member where user_name='\"+user_name+\"'\"; 根据用户名将该用户的所有信息列出来,以供用户修改,

修改的方法采用的是rs.updateString(\"user_pass\其他的类似。

5.3.3 购物车模块的实现

当用户登陆成功以后,如果找到了希望定购的物品,在点击物品下方的定购以后,系统会弹出一个新的页面,显示该物品已经添加进购物车,然后用户需要选择定购的数量。页面效果如图5-7所示:

20

图5-7购物车示意图

在点击确认以后,该物品信息被后台添加到购物车表即basket表中,如果用户需要继续购物,可以继续选择,不断添加,系统会自动将所有信息写入basket表,同时显示用户所购买的物品列表,及合计价格。

其具体代码实现过程为: 从session中取得该用户的信息

user_name=(String)session.getValue(\"user_name\"); 对商品的信息进行提取以写入购物车表 具体的写入语句为:

sql=\"insert into basket(hw_id,user_name,basket_count,hw_name,hw_cash)\";

sql=sql+\"values('\"+hw_ids+\"','\"+user_name+\"','\"+counts+\"','\"+hw_name+\"','\"+hw_cashs+\"')\";

以下是用户执行确认后的示意图,如图5-8所示

21

图5-8 所购商品信息示意图

用户再一次确认后,系统会显示购物成功并返回给用户一个定购单号,提示用户填写收货人详细信息,包括姓名、地址、邮编、邮箱、电话等信息,这些信息是系统自动从用户表中提取出来的,用户可以修改,如图5-9所示

图5-9 定货单示意图

这一步的具体实现与用户资料修改类似,都是先将该用户的相关资料从数据库

sql6=\"select

*

from

member

where

user_name='\"+(String)session.getValue(\"user_name\")+\"'\";然后使用方法

22

update对表中各项信息进行修改。

确认后,系统弹出提交成功页面,如图5-10所示:

图5-10 订货成功示意图

该页面也就是将用户提交的订单信息返回,并产生了一个唯一订单号,以方便用户查询,这个订单号的产生,并不是随机产生的,而是使用了一定的规则,在这里主要是根据用户名和订单产生的时间来生成订单号,具体的代码如下:

String sub_number=\"\";

String now=(String)((new java.util.Date()).toLocaleString()); sub_number=user_name+now;

相类似的,系统中的其他类似字段也可以使用这样规则来产生随机编号,以方便管理

5.3.4 商品搜索模块的实现

网上购物作为一个在网上展示自己商品的销售系统,如何能让用户以最快的速度找到自己希望买到的物品,也是需要非常重视的一个问题,此时搜索引擎也就必不可少了。本购物系统也做了一个小模块,以供用户进行一些模糊查找,用户不必输入全部名称,只需输入一些关键词,系统就可以将符合该查询条件的所有商品信息以网页形式返回给用户。如图5-11所示:

23

图5-11商品搜索示意图

5.3.5留言板模块

留言板模块由浏览留言板和添加留言板两部分组成。下面分别对这两部分进行介绍。如图5-12所示:

图5-12 留言板模块示意图

1、浏览留言板

单击网站首页的“留言板”超链接进入留言板页面,在该页面中,主要显示用户所填写的留言,以便其他用户查阅。

留言板中显示的数据是从数据表中检索出来并显示在网页中的,为了方便查看网页信息,使用了分页显示功能。对网页进行分页显示首先要确定记录跨度,就是每页所显示的记录数,在这个网站的留言板中,设定了int pagesize=4,即每页中只允许显示4条留言信息,用户可以通过单击“上一页”、“下一页”、“最后一页”、“第一页”或则从文本框中键入一个数值跳转到相应页浏览留言信

24

息。

2、添加留言

添加留言是用户与用户,以及用户与网站之间的一种交流模式,只有把用户想要表达的内容添加至数据库中,才能在浏览留言板中进行显示。

用户在留言板中单击“添加留言”超链接就可以打开添加留言页面,该页面主要用来提交用户输入的留言信息。用户在添加留言页中单击“提交”按钮,系统会将数据表单提交到admin/addle.jsp页,该页用来实现江留言内容存入到数据库中。

6 系统测试及难点分析

6.1系统运行环境的搭建

6.1.1 JAVA虚拟机的安装

本系统采用的是基于java的jsp技术 ,所以java虚拟环境即java虚拟机是必须要安装的。

JDK(Java Development Kit )是一切java应用程序的基础,可以说,所有的java应用程序是构建在这个之上的。它是一组API,也可以说是一些java Class。目前已经正式发布的最新版本是JDK1.6。Windows下,直接运行.exe文件,安装到一个目录,如D:\\Program Files\\Java\\jdk1.6,安装完成后就是环境变量的设置。

桌面上选择“我的电脑”(右键) ->高级 ->环境变量 ->在“系统变量”--->“新建” ->在变量名中输入:JAVA_HOME,变量值中输入:D:\\Program Files\\Java\\jdk1.6 同样再新建一个变量名CLASSPATH,变量值中输入:D:\\Program Files\\Java\\jdk1.6; D:\\Program Files\\Java\\jdk1.6\\lib\\dt.jar; D:\\Program Files\\Java\\jdk1.6\\lib\ools.jar; 还需要在Path变量值后面添加一个值:D:\\Program Files\\Java\\jdk1.6\\bin。至此JAVA环境安装成功。我们可以在命令行中敲入命令java 如果显示java帮助,则证明环境设置成功。

6.1.2 Tomcat环境搭建

安装TOMCAT,直接使用默认安装就可以了,假如我们将其安装在D:\\apache-tomcat-6.0.20,

安装完毕后,开始设置环境变量,新建环境变量CATALINA_HOME,值为D:\\apache-tomcat-6.0.20,新建CATALINA_BASE,值为D:\\apache-tomcat-6.0.20。

打开Tomcat5.5文件中的bin文件,双击其中的运行程序Server Runner,显示server start,服务器正常启动,此时在浏览器上敲入本地测试地址:

25

http://localhost:8080 如果出现 Tomcat页面则证明 Tomcat安装成功,而且正常启动。

到这里,系统运行所需要的基本运行环境已经安装完成。

6.2 系统程序的安装和加载

6.2.1 文件的拷贝

我们可以将整个系统文件夹拷贝到Tomcat的默认根目录下,一般路径为: D:\\apache-tomcat-6.0.20\\webapps\\ROOT。

6.2.2 数据库的连接

因为该系统仅作为毕业设计使用,为了方便演示和运行,系统所用数据库采用了Mysql数据库。

设置完数据源以后,把文件中的classes文件下的所有文件夹复制到 网站根目录的web-inf文件夹下面,然后重启服务器即可。

在浏览器敲入地址:http://localhost:8080/shopping/ 我们可以看到网站的主页面已经出现,至此,系统加载成功。

6.2.3 Myeclipse开发工具

下面请看开发界面如图6-1所示:

图6-1 myeclipse开发界面

MyEclipse 6.5是开发jsp的强有力的工具,他集成了很多插件,本网上购

26

物系统就是在MyEclipse 6.5的平台上开发的。

6.3系统测试

6.3.1 系统关键部分测试分析

系统完成之后,对各个模块的功能进行了详细的测试,输入数据和预测输出数据相比,发现了一些问题。主要是在查询过程中预计查询结果和实际结果不一致,有时候达不到目的,对数据库的操作表之间的关联考虑得不够周到,因此往往会出现一些小的错误。还有查询条件的前后数据类型不一致也是一个很常见的错误,需要靠一步步的查找解决。各个模块组装完成后,又会出现一些问题。比如在操作购物车结帐的这个流程中,由于是多次添加和修改,最后结帐,所以很容易造成数据混乱,必须对相应的数据关系理清楚,一些关键查询统计的SQL语句必须反复斟酌才能放在程序中使用。

6.3.2 测试分析总结及说明

在测试过程中,我经过模块测试和组装测试,排除了系统的大部分错误。当然排除所有错误是不太可能的,我想应该还有些不易检测到的错误还没有被发现,需要在使用的过程中进一步的完善,数据库的加密是一个重要的概念,在实际的应用过程中是一个尚待解决的问题,应该做好数据库的完善工作,特别是备份和安全工作;另一方面本系统没有制作相关的打印,由于时间仓促难免有错误和不完善的地方,希望老师能够帮我指点和纠正。

6.3.3 系统的性能分析

网上购物系统的性质决定了它的服务端工作负荷比较大,这就要求服务端的硬件配置要尽可能的高,主要是内存,而且操作系统也要尽可能的稳定。基于java的系统一般来说网络安全性比较好,但并不能说就一定安全,尤其在windows操作系统下,由于windows的漏洞比较多,系统装配在windows下并不是最佳的选择,如果有条件,建议可将系统装配在unix操作系统下,提高系统的抗侵入能力。

系统的核心数据库,随着数据的不断增多,必然会产生冗余,导致系统运行效率降低,建议管理员定期备份和清理冗余数据,以保证系统的正常高效运行。

27

6.4 系统中所存在的问题及解决方案

6.4.1 系统的整体设计和规划中的问题

由于是基于B/S的系统,网页在其中就承担着非常大的工作,包括向服务端后台写入和修改数据,以及服务端响应客户端的请求,向客户端页面返回数据,这些工作不可能只由几个网页来完成,但网页数量一多又必然结构混乱,造成开发过程难以控制。

为解决这个问题,我采用了现代软件开发过程的模块化思想,先将系统功能进行分解,大致可分为两部分,即前台和后台,前台又包括主页面及产品信息展示页面、搜索功能页面、新闻页面、购物车及订单页面等几个大的部分,后台包括会员信息管理、商品信息管理、新闻信息管理、等几个部分,各个部分又由许多小的页面组成,这样一来虽然网页数量没有减少,但结构清晰了很多,在开发过程中可以逐步,逐个模块的实现,提高了开发效率。

6.4.2 开发功能模块所遇到的难点

因为是第一次做这么完整的jsp系统,所以碰到的问题也很多,除了一些基本的语法之外,感觉还是一些考虑问题的思维方式不太得当,比如我的这个网上购物系统,我感觉难度比较大的还是购物车这个模块比较的难设计,因为过程比较复杂,他的一些逻辑处理就比较的难以用代码实现。

我参考了一些电子商务网站,研究了一下他们的购物流程,大概有了一些处理的想法,用户在点击定购之后,系统先将该商品信息写入购物车页面,只有当用户在选择了商品数量,及确认按钮之后,系统才将该信息写入basket表,用户不选择商品数量,或者不点击确认按钮,系统就不把该商品信息写入basket表,这样就不至于造成basket表数据混乱,用户无法继续购物。

当用户完成选购,点击去收银台结算时,系统开始判断商品库中的这些商品数量是否大于用户所选数量,如果没有,则提示用户没有该商品,如果有则将所有basket表中属于该用户id的商品信息提出来,并合计价格,返回给用户,用户如果确定付款购买,则给用户提供一个订货单,由用户填写一些基本信息,确

28

认之后,系统则产生一个唯一的订货单号,并将其返回给用户,以便用户日后查询,同时,系统则将该用户所选购的商品信息以及用户信息放入到订单表中。

这样就基本上实现了购物车的功能。

6.4.3系统中存在的问题及拟定的解决方法

(1)第一个问题是用户在注册过程中,一些关键字段的命名规则存在着比较大的缺陷,比如用户名的选择上,一般的习惯是规定只能从a~z和数字0~9的随机组合,不能有特殊字符,而且只能以字母开头,不能以数字开头,用户名的长度也有,我在系统中只考虑了为空的情况,这是不够的,我们可以在jsp页面添加一段javascript验证代码,主要是使用正则表达式对用户名进行,具体的代码如下:

if( form.username.value.length<5||form.username.value.length>20) {

alert(\"\\您的用户名长度应该在5-20个字符之间!\");长度判断 if ( fIsNumber(form.username.value.charAt(0),

\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\")!=1 ){

alert(\"\\您的用户名只能以字母开头!\"); 开头判断

if ( fIsNumber(form.username.value, 特殊字符判断 \"12345670abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\")!=1 ){

alert(\"\\您的用户名应该是数字、字母、下划线,不允许出现汉字等其他字符!\");

(2)第二个问题就是用户登陆以后,如果需要修改资料,系统会先将数据库中该用户的所有信息以列表形式显示出来,问题就是此时出现的用户密码信息是以明码形式出现的,这对用户来说就存在这很大的风险,容易被他人看到,最好是以一些特殊符号来代替从而防止信息泄漏,在参考了其他网站的登陆模块之后,我对代码进行了简单修改,即可实现,问题是由密码的输入框属性引起的,原始的代码为:

type=\"text\" name=\"user_pass\"

29

size=\"36\" class=input

value=\"<%=rs.getString(\"user_pass\")%>\">

此时密码输入框的属性为text也就是文本框,它会直接将数据以明码形式原封不动的输出,我们只需将其改为password属性即可,它以默认的黑色圆点代替真实数据,这样一个简单的修改,就保证了该部分的安全性。

(3)第三个问题是管理人员对用户的管理部分,一个是用户信息,尤其是密码的加密,处于对系统安全性的考虑,数据库中的用户密码应该对于所有人都是加密状态,包括管理人员,但因本人水平有限对这个方面也不是很了解,所以准备采用现有的加密软件对相关数据进行加密,如http://www.newhua.com/soft/19490.htm该软件可以一次加密多个表,加密的文件会保存为新文件,不会破坏原来的数据库。加密算法采用了base算法,但是目前不支持对中文进行加密,且加密的字段属性必须为“文本”或“备注”,因此对于需要加密的关键字段,我们必须事先将其设置为文本类型。如果需要我们可以也可将整个数据库进行加密,增加系统的安全性。

还有一个漏洞就是对会员的管理功能做的不够,没有考虑到用户密码丢失的问题,解决方法有两个,一个就是采取通常的做法,让用户在注册过程中,设置一些问题,通过回答问题的方式来取回密码,还有一个方法就是让管理员通过后台,初始化用户的密码,然后用户登陆对密码进行修改,这两个方法都可以达到目的,具体的实现过程不再一一说明。

对于网上购物系统来说安全性无疑是最重要的,层层验证虽然保证了系统的安全性,但对于用户来说又是极不人性化的,如何在最简单的验证流程下,保证用户数据的安全,是在做网上购物系统中需要考虑的一个问题。

7总结与展望

经过三个多月的设计和开发,网上购物系统的基本开发完毕。此次网上购物系统的开发让我学习到很多知识,现总结如下:

系统开发的过程中,我深刻体会到了程序的开发并非一个容易的过程,以前上课老师经常提起的一个问题,那就是:一个系统开发的过程中编码不是最重要的,重要的是对系统进行分析以及建立恰当的系统模型。有了一个好的系统模型之后,我们再将其划分成几个模块,那样做起来就会容易得多。本系统中采用了生命周期法进行系统的开发,就体现了该模块化设计思想。

30

在编写论文的时间里,我在不断自学的基础上利用JSP网络开发语言、SQL Server 2000数据库完成了网上购物系统的设计。期间我遇到了若干问题和解决了不少的问题。从配置Tomcat服务器和数据库,到网站服务,我对网上购物的认识从无到有,有了较为具体详细的了解。我所建立的网上购物系统只是一个稍显简单的网上购物系统,真正网上购物系统所涉及到的方方面面的问题我未曾遇到或现有的条件而未能实现。网上购物系统并不是我想象的那么简单,它包括了编写程序、数据库设计、网页制作、图象处理、版面设计、数据采集、文本编辑、服务器管理等等,要搞好一个好的,完善的网站需要一个详细的、合理的、可行性的规划设计。

开发期间,我学会了有目的的去学习一些将要用到的东西,仔细地考虑工作流程的规律和步骤,充分利用手中的开发工具,利用其所具备的功能,尽量使自己的开发在代码上实现少而精确、让用户能够尽量简单地进行操作。但是在检测过程中,还是出现了很多的不足之处,这些都是要在今后的工作中需要努力改进和完善的。

当然,由于时间和技术上的原因,该系统还是存在一些问题和不足的地方,比如在数据容量方面,由于没有经过大量数据的测试,数据库能承受多大负荷还不能确定,在美工方面,由于缺少美工经验,所以很多页面看起来可能会不那么漂亮美观,在一些细小的处理上可能还缺少进一步的考虑。

总之,这次的系统开发,实现了我自己动手完成一个系统开发的目标,也学习到很多东西,不只是实践经验,还有一些做事的道理:在工作时,要尽量把要遇到的问题考虑周全,提前做好准备,那样就不会在遇到问题时有措手不及的感觉;做事一定要不断地去尝试,然后尽自己最大的努力去完成它,人的发展潜力是巨大的,不要一开始就否定自己,低估自己,虽然不能说只要努力就会取得成功,但是如果不努力,就永远不会成功。

(指导老师:高升宇)

31

致 谢

在我完成这个课题的那一刻,我的心情无比的轻松。从我选《网上购物》这个题目作为我的毕业论文题目开始,再到现在论文的完成,在这期间我付出了很多的努力,也得到了成功的喜悦。

经过几个月的劳动,终于有了收获,并且顺利的完成了任务,这是一种美妙的经历,我从中学到了“有付出就有回报”的道理,也学到了很多理论上的知识,在做这个课题的同时,我也很好的把以前所学的东西复习了一遍,这让我的基础知识更加牢固,我相信这将对我以后的工作起到很大的作用。

在这几个月的时间里,我的指导老师高升宇给了我很大的帮助,他的指导让我在整体设计方面有了更大的思维空间,也让我学到了很多其它的东西,在这里我表示感谢。感谢老师的耐心指导!

最后还要感谢我的同学们,在这次毕业设计及论文写作中给我的支持和帮助。

32

33

主要参考文献和书目

[1] 柏亚军. JSP编程基础及应用实例集锦[M].北京:人民邮电出版社,2001 [2] 陈海山.深入Java Servlet 网络编程[M].北京:清华大学出版社,2002 [3] 张新曼.精通JSP-Web开发技术与典型应用[M]北京:人民邮电出版社,2007 [4] 薛华成.《管理信息系统》[M],清华大学出版社,1999.

[5] Donny.JSP与网站开发编程实战[M].北京:科学出版社 ,2001 [6]林信良.JAVA+JDK6学习笔记[M].清华大学出版社,2000.

[7] 李江,张威. 实例解析XML/XSL/Java网络编程[M] 北京希望电子出版社 2002

[8] 李振华,季小武. Drwamweaver基础教程. 清华大学出版社. 2005.

[9] 聂小燕. DrwamweaverMX2004动态网站建设全攻略.兵器工业出版社,北京科海电子出版社. 2005.

[10] 塞奎春. JSP信息系统开发实例精选. 机械工业出版社. 2006.

[11] (美)Damon Hougland, Aaron Tavistock ,马朝晖译. JSP 核心技术. 机械工业出版社. 2001.

[12] 潇湘工作室 刘涛 徐冉. DrwamweaverUltraDev网页设计与网站开发. 人民邮电出版社. 2000.

[13] 许增伟,张强. JSP快速高效开发利器——DrwamweaverUltraDev. 清华大学出版社.2002

[14] 刘韬, SQL Server 2000数据库系统开发实例导航, 人民邮电出版社,2004

[15] 熊锡仪,动态网页设计,清华大学出版社,2004

34

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务