基于JSP的购物网站设计及开发.docx
《基于JSP的购物网站设计及开发.docx》由会员分享,可在线阅读,更多相关《基于JSP的购物网站设计及开发.docx(24页珍藏版)》请在冰豆网上搜索。
基于JSP的购物网站设计及开发
摘要
最近几年来,随着Internet的迅速崛起,网上购物在当前社会中,已再也不是一种年轻人的行为。
于是电子商务开始流行起来,愈来愈多的商家在网上建起在线商店,向消费者展现出一种新颖的购物理念,本购物系统基于B/S模式,实现了当前购物网站的大体功能,以JAVA语言进行开发,采纳散布式架构,数据库层面采纳基于MySQL的集群实现。
关键词:
数据库JAVAMySQLJSP网上购物
一、绪论
网上购物在当前社会中,已再也不是一种年轻人的行为。
购物的商品分类已涵盖生活、办公的方方面面:
日常生活所需的吃、穿(衣服、化妆品、食物等等)、效劳器、电子产品等等。
能够说,网上购物与咱们的生活已经密不可分。
那么,网上购物究竟是什么?
专业地讲,它是交易两边从洽谈、签约和贷款的支付、交货通知等整个交易进程通过Internet、web和购物界面技术化的B2C模式一并完成的一种新型购物方式,它是电子商务的一个重要组成部份。
随着电子商务的不断进展,网上购物作为电子商务中一个重要的组成部份也在不断壮大着。
网上购物系统作为网上购物行为的支撑及商品展现、交易等的实际“工作者”,其稳固性、靠得住性、平安性的要求都是很高。
现今的网上商城都采纳的三层模式体系结构(MVC),从技术上来讲已经能知足相关的要求,可是关于后期的性能提高等有必然的限制。
(一)引言
网上购物是一种具有交互功能的商业信息系统。
它向用户提供静态和动态两类信息资源。
所谓静态信息是指那些比常常变更或更新的资源,如公司简介、治理标准和公司制度等等;动态信息是指随时转变的信息,如商品报价,会议安排和培训信息等。
网上购物系统具有壮大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。
这种全新的交易方式实现了公司间文档与资金的无纸化互换。
目前要紧有B2B、B2C、C2C三种模式。
网上购物网站在国内能够说正在进展中,其中以淘宝、阿里巴巴、京东、铛铛网等为要紧的代表。
此刻流行的网上购物系统不仅要有漂亮的网页,更要有严谨的计划。
每一个细小的环节都和重要。
如此才能使得在电子交易时幸免没必要要错误发生。
咱们将利用HTML、JSP等技术来编辑网页,并运用JAVA技术把数据库和动态网页相关联。
传统的治理信息系统信息获取方式是由专业文字录入人员将信息输入到治理系统的数据库中,这种方式在数据量不大时有很多的应用处合。
当数据量比较大,而且有较强的专业性时,录入的费用和犯错的可能性都相应上升。
(二)系统实现的目的和意义
1、目的
搭建一个能知足日常购物需要的购物网站,并可依此进行相关网站的二次开发。
通过对数据库集群、应用的散布式部署开发等开发技术的实战,增强相关技术的把握程度,同时对相关理论知识加深了明白得,有助于对JAVA程序更深层次的明白得,有助于培育架构的思想。
2、意义
对相关技术的把握更进一步,同时为相关网站开发积存了体会。
通过散布式架构及数据库集群技术的实战,对真实环境中的应用程序有了必然的了解,可进行必然程度的发觉问题并解决问题。
二、系统开发工具及技术和环境
(一)JSP技术
JSP(JavaServerPages)是由SunMicrosystems公司提倡、许多公司参与一路成立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术利用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处置逻辑。
网页还能通过tags和scriptlets访问存在于效劳端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web效劳器在碰到访问JSP网页的请求时,第一执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一路返回给客户。
插入的Java程序段能够操作数据库、从头定向网页等,以实现成立动态网页所需要的功能。
JSP与JavaServlet一样,是在效劳器端执行的,通常返回该客户端的确实是一个HTML文本,因此客户端只要有阅读器就能够阅读。
(二)Tomcat简介
Tomcat 效劳器是一个免费的开放源代码的Web 应用效劳器,是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人一起开发而成。
由于有了Sun 的参与和支持,最新的Servlet 和JSP 标准老是能在Tomcat 中取得表现,Tomcat 5 支持最新的Servlet 和JSP 标准。
因为Tomcat 技术先进、性能稳固,而且免费,因此深受Java 爱好者的喜爱并取得了部份软件开发商的认可,成为目前比较流行的Web 应用效劳器。
Tomcat 很受广大程序员的喜爱,因为它运行时占用的系统资源小,扩展性好,支持负载平稳与邮件效劳等开发应用系统经常使用的功能;而且它还在不断的改良和完善中,任何一个感爱好的程序员都能够更改它或在其中加入新的功能。
Tomcat 是一个小型的轻量级应用效劳器,在中小型系统和并发访问用户不是很多的场合下被普遍利用,是开发和调试JSP 程序的首选。
关于一个初学者来讲,能够如此以为,当在一台机械上配置好Apache 效劳器,可利用它响应付HTML 页面的访问请求。
事实上Tomcat 部份是Apache 效劳器的扩展,但它是独立运行的,因此当你运行tomcat 时,它事实上作为一个与Apache 独立的进程单独运行的。
当配置正确时,Apache 为HTML页面效劳,而Tomcat 事实上运行JSP 页面和Servlet。
另外,Tomcat和IIS、Apache等Web效劳器一样,具有处置HTML页面的功能,另外它仍是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默许模式。
只是,Tomcat处置静态HTML的能力不如Apache效劳器。
(三)客户端环境
客户端理论上基于P4以上的运算机都可正常访问效劳,要紧基于IE8及以上、firefox12及以上等主流阅读器。
(四)开发工具
IDE采纳MyEclipse进行软件代码的编写及调试
IDE:
IntegratedDevelopmentEnvironment,集成开发环境,能够辅助开发程序的应用软件,确实是你用来编程的软件
图1
(五)数据库技术
一、数据库集群
数据库是用来保留计算的最终结果的,因此是整个信息系统的最重要组成部份。
在许多人看来,当前的数据库技术已经能够说是超级地成熟了。
但是,在知足不断增加的联机事务处置应用方面,当前的数据库技术其实还存在很多急迫需要解决的技术问题。
二、散布式
散布式系统(distributedsystem)是成立在网络之上的软件系统。
正是因为软件的特性,因此散布式系统具有高度的内聚性和透明性。
因此,网络和散布式系统之间的区别更多的在于高层软件(专门是操作系统),而不是硬件。
内聚性是指每一个数据库散布节点高度自治,有本地的数据库治理系统。
透明性是指每一个数据库散布节点对用户的应用来讲都是透明的,看不出是本地仍是远程。
。
在本系统中采纳ApacheCXF框架进行散布式系统之间的交互,在保证系统交互需求的要求情形下,同时进行数据平安、靠得住性等的设计。
关于所有的数据库而言,除记录正确的处置结果之外,它们都面临着四方面的挑战:
如何提高处置速度,数据可用性、数据平安性和数据集可扩性,也确实是说,如何使当前的数据库具有这四方面的可伸缩性,使客户能同时取得更高的处置速度、更高的数据可用性、更高的数据平安性和更大的数据集,而不是提升了其中的部份指标,却损坏了其余的指标或其余的指标没有改良。
随着IT应用的深切和有线,无线网络的快速增加,联机事务处置业务对以上四方面提出了更高的要求。
将多个数据库联在一路组成数据库集群来达到上述目标应该说是一个很自然的方式。
理想的数据库集群应该能够做到以下几点:
Ø在需要更高数据库处置速度的时候,咱们只需简单增加数据库效劳器就能够够了。
如此能够大大减小硬件投资的风险,而且大大提高现有效劳的质量。
Ø在任何时刻需要有多个随时可用的实时同步数据效劳。
为了防灾,最好有多个异地的同步数据效劳。
这不但会大大增加数据可用性,还会成心想不到的更高数据库处置速度的效益。
Ø除密码爱惜之外,咱们最好能操纵企业内部对数据库的非法访问。
Ø数据集的可扩性可能是最简单的要求了。
可是,用增加数据库效劳器的方法来扩大数据集对数据可用性会产生负面阻碍。
最好的结果是咱们能任意增大数据集而没有对可用性的负面阻碍。
本系统中采纳MySQL集群方案。
3、MySQL
MySQL是一个,由瑞典MySQLAB公司开发,目前属于公司。
MySQL是一种关联,关联数据库将数据保留在不同的表中,而不是将所有数据放在一个大仓库内,如此就增加了速度并提高了性。
MySQL的SQL语言是用于访问的最经常使用标准化语言。
MySQL软件采纳了双授权政策,它分为社区版和商业版,由于其体积小、速度快、整体拥有本钱低,尤其是这一特点,一样中小型网站的开发都选择MySQL作为网站。
(六)HTML及JavaScript
一、HTML
HTML即超文本标记语言,是Web页的大体元素。
它是一种描述性语言,利用描述性标记符(即标记)来表现相应的内容,仅仅限于如何表现文字、图片等内容。
HTML文档包括两种信息:
页面本身的文本及表现这些文本的格式、结构等标记。
阅读器负责对HTML文档进行解析并正确地显示出来。
二、JavaScript
JavaScript语言是用于在客户端运行的脚本语言,它具有以下特点:
(1)JavaScript是一种用于在客户端运行的脚本语言,是说明性的语言;
(2)JavaScript是基于对象的语言,是事件驱动的语言;
(3)具有简单性;
(4)具有平安性,不许诺访问本地硬盘,不能将数据存入到效劳器上,不能对网络文档进行修改,能防止数据的丢失;
(5)具有动态性,可对用户的输入作出反映,如在客户端进行数据合法性检验,无须交给服务器检验;
(6)具有跨平台性,只要能许诺阅读器,就能够正确地运行JavaScript。
我利用JavaScript实现对用户输入数据合法性检查。
三、需求分析
需求分析是软件设计中超级重要的一个环节,没有通过详细的需求分析就匆慌忙忙进行软件开发是注定要失败的。
因此必然要花时刻与用户进行沟通交流,详细了解客户到底需要软件做到什么。
在沟通交流进程中也能够大致告知用户软件能够做到些什么、是如何做的。
对用户提出的一些不切实际的需求必然要以合理的方式明确地拒绝。
经两边讨论并明确的需求要以书面的形式签字确认
(一)功能需求
一个网络购物系统,第一咱们要保证客户能够很方便进行商品选择,系统应该具有分类选择商品功能,系统应该实现“购物车”的功能,用户能够把选中的商品放入“购物车”中,在选购完毕后再一路结帐。
在系统的后台,治理员能够治理商品,商品分类,和客户购买定单。
因此分析,本系统要紧由前台和后台两部份组成,前台为客户端,顾客能够在此处购买商品,后台为商品治理端,实现对商品和定单的治理。
(二)需求说明书
通过详细的需求调研,最终形成需求说明书。
需求说明书包括项目背景、项目目标任务、需求规定等内容,其中需求规定是重点。
下面简单列出本文的需求:
(1)对物品的出入库要求能进行数据录入,便于后期进行统计
(2)物品按类别进行划分,有规律的、可进行统计的代码进行治理
(3)用户可在线进行购买商品,可实时查看到购物车、定单信息及状态
(4)要求有精细的权限治理,治理员只能对用户密码进行重置,不可查看用户密码,用户之间关于定单等信息不可见。
(5)购物车信息在用户再次登录系统时仍然能够进行查看。
(6)用户可对个人大体信息进行查看、修改。
(7)系统退出时,应及时清空用户相关信息。
(三)可行性研究
硬件、软件上的可行性:
目前市场上的运算机软硬件资源都能够知足系统开发的要求。
其中运用的要紧软件有MyEclipse、Tomcat效劳器等,数据库采纳MySQL数据库。
JSP技术:
该技术目前已经十分成熟,功能壮大,扩展性好。
JSP在网站开发上是个超级理想的技术工具。
四、系统设计
(一)系统功能描述
以下图显示了系统的全数功能:
图2
(二)UML系统建模
一、用例图
用例图是用来辨别和划分系统功能,它把系统分成动作者和用例两个部份。
动作者表示系统用户能扮演的角色,这些用户可能是人,可能是其他的运算机,一些硬件,或乃至是其他软件系统,本系统的动作者确实是治理员。
用例描述了当动作者之一给系统特定的刺激时系统的活动。
系统总用例图如下所示:
图3
二、系统活动图
活动图片反映系统中从一个活动到另一个活动的流程,强调对象间的操纵流程,如下图,描述了治理员登岸、信息治理、及导购查询的活动执行顺序。
活动图是一种特殊的状态图,描述需要做的活动,执行这些活动的顺序(多为并行的)和工作流(完成工作所需的步骤)。
它对系统的功能建专门重要,强调对象间的操纵流程。
系统活动图如以下图所示:
图4
五、数据库设计
包括用户信息表,用户权限表、商品分类表、商品信息表、定单信息表等表,和各个表的关系图。
一、系统E-R图
本系统中要紧用到了商品实体、用户实体、定单实例等。
(1)商品实体
图5
(2)用户实体
图6
(3)定单实体
图7
(4)实体之间的关系:
图8
二、数据库结构设计
在本系统中,用户要紧用于购买商品并下定单,治理员那么要紧对相关商品进行出入库治理,因此咱们要紧关切商品、定单、用户、购物车等数据库实体。
(1)商品:
商品id、商品编号、商品名称、商品所属分类、价钱、库存、产地
(2)用户:
用户id、用户名称、用户密码、电话号
(3)定单:
定单id、商品id、数量、价钱、最终价钱、用户id
3、创建数据库表
在MySQL中要成立数据表。
商品表
字段
含义
类型
长度
可否为空
备注
proid
商品id
bigint
8
否
pronum
商品编号
bigint
8
否
name
商品名称
varchar
50
是
protype
商品类型
varchar
20
是
price
商品价格
decimal
15,2
是
count
库存数量
int
11
是
proadd
产地
varchar
100
是
用户表
字段
含义
类型
长度
可否为空
备注
userid
用户id
bigint
8
否
name
用户名称
varchar
50
是
passwd
用户密码
varchar
20
是
phone
手机号
varchar
13
是
定单表
字段
含义
类型
长度
可否为空
备注
orderid
用户id
bigint
8
否
proid
商品id
bigint
8
否
num
数量
int
11
否
price
单价
decimal
15,2
否
finprice
最终价格
decimal
15,2
否
userid
用户id
bigint
8
否
六、系统界面和功能实现
(一)程序设计
本系统设计的网站在设计进程中包括页面(HTML)的设计和客户端验证机制(JavaScript)的设计。
Javascript也叫小语言脚本,它是一种超级流行的动态网页技术。
本系统应用效劳器端JSP动态页面技术,和struts,hibernate,spring的技术支持下,结合客户端动态网页技术javascript和与html的配合的设计,从而实现系统。
系统要紧采纳三大框架(SSH)进而实现客户端与效劳端的交互,数据库层通过hibernate整体对实体类进行治理,并通过hibernate利用jdbc连接数据库,代码如下:
xmlversion=''encoding='UTF-8'?
>
DOCTYPEhibernate-configurationPUBLIC
"--->
jdbc:
dangsql
root
true
而事务层那么通过spring注入的方式对所有的逻辑进行治理,事务层要紧处置系统中的一些逻辑,分类接口和实现类,接口能够提供给相应的操作挪用,而实现类要紧实现所需的功能逻辑,代码如下:
etSession();
Transactiontx=();
try{
Stringview=();
("提交事务");
();
returnview;
etSession().get(
;
());
(address);
returntrue;
}
etSession().get(
;
return());
}
etSession();
CartServiceservice=(CartService);
if(service!
=null){
etSession().get(
;
());
(1);
/cart/cart!
showList
/authorize/
/authorize/
系统中的交易记录或错误信息记录那么通过log4j进行治理,能够详细的记录系统运转进程中暴露出的问题,代码如下:
=ERROR,console
(二)系统登录
系统登录要紧用于用户的登录,只有登录后的用户才能下单,生成定单。
不然,只能阅读商品相关信息。
此模块的要紧功能是对用户和密码进行验证,只有合法的用户才能进入本系统。
用户填写的信息都是通过form表单利用post方式提交给效劳器。
效劳器通过getParameter函数取得form表单数据,然后与数据库中的用户信息做比较,若是匹配那么合法登录。
在用户登录后,将用户的所有信息通过setAttribute函数保留在session中,方便其他界面随时利用对象中的用户信息。
代码片段如下:
etAuthorizeService();
Stringresult=(email,pwd);
if("nofond".equals(result)){
("nofond","没有注册该用户!
请先注册");
return"fail";
}elseif("noright".equals(result)){
email);
("noright","密码有误请从头输入!
");
return"fail";
}else{
IUserDAOudao=();
user=(email);
/css/"rel="stylesheet"type="text/css"/>
--头部开始-->
<%@includefile="../common/"%>
--头部终止-->
962px;margin:
auto;">
border="0"/>