序言
网络经济的来临,引致了电子商务的迅速发展,据预测其全球交易额将从1995年的3亿美元增长到2003年的2.7万亿美元。这样势不可挡的态势使全球企业不能不根据它的发展来调整自己的业务方式。
各类组织、个人和企业团体都根据各自的需要和理解给出电子商务的定义,这些定义都表达了一个观点,即电子商务(Electronic Commerce)是通过Internet 及其技术进行的各项商务活动,广义地讲,电子商务是指对整个贸易活动实现电子化,这种现代商业方法通过改善产品和服务质量、提高服务传递速度,满足企业和消费者的降低成本的需求。狭义地说,电子商务是通过Internet及其技术进行的各项商务活动, 它涵盖业务的全过程--包括广告、交易、支付、服务等活动。
从应用角度来说,电子商务可以分为B to B(企业-企业)、B to C(企业-消费者)以及G to B(政府-企业)、G to C(政府-消费者)等 。现在和未来的若干年里,70%-80%的电子商务都将发生在B to B领域 。B to B和 B to C的业务模式很多,目前常见的有"企业间的拍卖活动"、"分销渠道"、"产品目录网站"、"购物目的网站"、"购物门户网站"等等。各种模式都有不同特点,并有不少企业籍这些模式获得商业上的成功。
我们基于JSP技术构件了GO 2008 电子商务系统,以研究电子商务系统的组成、搭建、安全、管理等方面内容。
摘要
本文简述了电子商务系统的基本理论知识及运行机制,介绍了基于Java Servlet的web开发新技术jsp的相关知识:平台的搭设,开发工具的选择,开发具体方法。重点研究了基于java的电子商务系统的分析、设计、实现的全过程。
关键词:电子商务、JAVA、JSP、安全、管理、SQL SERVER、JDK 、Tomcat
Abstract
This artical introduce the basic theories of Electronic Commerce system, introduce the new techniquejsp that developed of Java Servlet: The taking of platform establish, the choice of the develops tools, the develop method.The point studied according to java Electronic Commerce system piece concept for and safety, management with realize.
Keywords: Electronic Commerce、JAVA、JSP、SQL SERVER、JDK、Tomcat
目 录
第一章:认识电子商务………………………………………………………… 1
1.1 电子商务内涵与分类……………………………………………………. 1
1.1.1认识电子商务…………………………………………………………. 1
1.1.2电子商务内涵与分类…………………………………………………. 1
1.2 电子商务交易的基本流转程式…………………………………………. 2
1.2.1电子商务交易过程……………………………………………………. 2
1.2.2电子商务交易的基本流转程式………………………………………. 3
第二章:电子商务安全…………………………………………………………. 5
2.1网络交易的风险和安全管理的基本思路………………………………... 5
2.1.1网络交易风险凸现……………………………………………………. 5
2.1.2网络交易的风险源分析………………………………………………. 5
2.2客户认证…………………………………………………………………... 5
2.2.1身份认证…………………………………………………...………….. 6
2.2.2信息认证…………………………………………………………...….. 6
2.2.3通过认证机构认证…………………………………………………..... 6
第三章:Go 2008电子商务系统分析与设计…………………………………… 7
3.1 平台组建………………………………………………………………..… 7
3.1.1 JSP技术介绍………………………………………………………….. 7
3.1.2平台搭建……………………………………………………………... 10
3.2 系统分析………………………………………………………………… 11
3.2.1用户管理系统分析…………………………………………………... 11
3.2.2商务活动系统分析…………………………………………………... 12
3.2.3管理员管理活动系统分析…………………………………………... 13
3.3系统设计………………………………………………………………..... 14
3.3.1用户活动流程设计………………………………………………..…. 14
3.3.2目录结构设计…………………………………………..……………. 16
3.3.3功能模块设计……………………………………………………..…. 16
3.3.4数据库设计………………………………………………………...… 17
3.4功能实现……………………………………………………………...….. 18
3.4.1用户与服务器对话的建立 …………………………………………..18
3.4.2用户与服务器对话的维持…………………………………………....20
3.4.3用户与服务器对话的建立………………………………………..…. 22
3.4.4系统与数据库的连接…………………………………………….….. 23
3.5小结………………………………………………………………………. 23
第四章:总结、致谢……………………………………………………………24
第一章 认识电子商务
1.1电子商务内涵与分类
1.1.1 认识电子商务
当代社会,人们已经深深的领略到信息革命第二次浪潮的冲击。现在信息技术突破了单位性和地域性的局限,实现了网络和全球化,以英特网为代表的现在信息网络正在以每月均15%的速度急剧增长,其应用范围也开始从单纯的通讯。教育和信息查询向更具效益的商业领域扩张。据统计,2000年英特网用户已经达到3亿用户,通过英特网实现的商业销售额突破1000亿美元。这一趋势告诉人们,电子商务在信息技术的强有力的推动下,已经叩响了人类的大门。计算机的全球联网,形成了与地域、空间无关的时间一体化市场,一种新的,基于计算机网络的新型商业机制正在逐步形成,这是处于激烈竞争环境中的各国政府、制造商、销售商及有关研究部门所不能回避的现实,在已经迈入21世纪的今天,认识电子商务、了解电子商务、进而参与电子商务,是每一位政府官员、每一位企业家和每一位消费者都必须认真对待的一项新任务。
1.1.2 电子商务的内涵和分类
一、什么是电子商务
电子商务引起人们的普遍关注,细说起来也不过是最近几年的事情。人们对电子商务还没有一个统一的规范和认识。众多的计算机制造商(电子商务主要的推动者)出于各自的商业目的各执一词,使得本已对电子商务知之甚少的人们在概念上更加的模糊不清。实际上,电子商务并不神秘。它在全球各地,包括中国在内,已经有许多成功的实践,人们可以通过这些成功的实践来了解它和熟悉它,我们还可以对电子商务给出一个较为科学的定义:
1997年11月6-7日,国际商会在巴黎举行了世界电子商务会议(The World Business Agenda for Electronic Commerce),从商业角度提出了电子商务的概念:电子商务是指整个贸易活动的电子化;从涵盖的方面可以定义为:加以各方以电子交易方式而不是通过当面交换或是直接面谈方式进行的任何形式的商业交易;从技术方面可以定义为:电子商务是一种多技术的集合体,包括交换数据(如电子数据交换、电子邮件),获得数据(如共享数据库、电子公告牌)以及自动捕获数据(如条形码)等。
电子商务涵盖的业务包括:信息交换、售前售后服务(如提供产品和服务和细节、产品使用技术指南、回答顾客意见)、销售、电子支付(如使用电子资金转帐、信用卡、电子支票)、运输(包括商品的发送管理和运输跟踪,以及可以电子化传送的产品的实际发送)、组建虚拟企业(组建一个物理上不存在的企业,集中一批独立中小公司的权限,提供比任何单独公司多的多的产品和服务),公司和贸易伙伴可以共同拥有和运营共享的商业方法等。
二、电子商务的分类及其服务内容
1)按照交易对象分类
按照交易对象分类,电子商务可以分为三种类型:
第一种类型是企业与消费者之间的电子商务,即B2C电子商务,它类似于联机服务中进行的商品买卖,是利用计算机网络使销费者直接参与经济活动的高级形式。这种形式基本等同于电子化的零售,它随着万维网的出现迅速的发展起来。
第二种类型是企业与企业之间的电子商务即B2B电子商务。B2B包括非特定企业间的电子商务和特定企业间的电子商务。特定企业间的电子商务是在过去一直有交易关系或者今后一定要继续进行交易的企业间为了相同的经济利益,共同进行的设计、开发或全面进行市场及库存管理而进行的商务交易。企业可以使用网络向供应商定货、接受发票和付款。
第三种类型是企业与政府方面的电子商务,即B2G电子商务。这种商务活动覆盖企业与政府组织间各项事务。
2) 按照商务活动内容分类
按照商务活动的内容分类,电子商务主要包括两类商业活动:一是间接电子商务——有形货物的电子定货,它仍然需要利用传统渠道如邮政服务和商业快递车送货;二是直接电子商务——无形货物和服务,如计算机软件、娱乐内容的联机订购、付款和交付,或者是全球规模的信息服务。
3) 按照使用网络类型的分类
根据使用网络类型的不同,电子商务目前主要有三种形式:一是EDI(Electronic Data Interchange,电子数据交换)商务;二是Internet(因特网)商务;三是Intranet(内联网)商务。
1.2电子商务的基本流转程式
1.2.1电子商务的交易过程
电子商务的交易过程大致可以分为以下四个阶段:
1) 交易前的准备
这一阶段主要是指买卖双方和参加交易双方的签约前的准备活动。
2)交易谈判和签定合同
这个阶段主要是指买卖双方对所有交易细节进行谈判,将双方磋商的结果以文件的形式确定下来,即以书面文件形式和电子文件形式签定贸易合同。
3)办理交易进行前的手续
这一阶段主要是指买卖双方签定合同后到合同开始履行之前办理各种手续的过程。
4)交易合同的履行和索赔
这一阶段从买卖双方办完所有各种手续之后开始,卖方要备货、组货、包装、发货,只到买方收到自己所购商品。索赔是买卖双方在交易过程中出现违约是进行的违约处理工作。
1.2.2电子商务交易的基本流转程式
网络商品直销是指消费者和生产者或者需求方和供应方,利用网络形式所展开的买卖活动,B2C电子商务基本属于网络商品直销的范畴。这种买卖交易的最大特点是供需直接见面、环节少、速度快、费用低。由图1.2-1可以看出,网络商品可以分为以下几个方面:
图1.2-1网络商品直销的流转程式
(1) 消费者进入因特网,查看在线商店或企业的主页。
(2) 消费者通过购物对话框填写姓名、地址、商品品种、规格、数量、价格。
(3) 消费者选择支付方式,如信用卡,也可以选用借记卡、电子货币或电子支票。
(4) 在线商店或企业的客户服务器检查支付方服务器,确认汇款额是否认可。
(5) 在线商店或企业的客户服务器确认支付者付款后,通知销售部门送货上门。
(6) 消费者的开户银行将支付款项传递到消费者的信用卡公司,信用卡负责发给消费者收费清单。
为保证交易过程中的安全,需要有一个认证机构对在因特网上交易的买卖双方进行认证,以确定他们的真实身份。这时图1.2-1就演变成1.2-2。
上述过程应当在SET协议下进行。在安全电子交易的四个环节中,即从消费者、商家、支付网关到认证中心,IBM、Microsoft、SUN均有相应的解决方案。上述过程也可以用图1.2-3表示。
图1.2-2认证中心存在下的网络商品直销流转程式
图1.2-3 网络商品直销流程图
第二章 电子商务安全
电子商务作为一种全新的业务和服务方式,为全球客户提供了更丰富的商务信息、更简洁的交易过程和更低廉的交易成本。伴随着因特网用户的迅速增加,网络交易也在积聚上升。虽然与全球几万亿美元的商业额相比,1998年的电子商务交易的金额不过区区418亿美元。而在此之前,两个数字之间的差异更为巨大,以至于人们可以对其中的安全问题忽略不计。然而当这一切发生变化,甚至发生逆转的时候,人们就不得不注意到其中的安全问题,并给予以高度的重视了。
2.1网络交易的风险和安全管理的基本思路
2.1.1网络交易风险凸现
大部分使用过计算机的人都遇到过计算机病毒的侵扰。在20世纪60、70年代,黑客们的称呼可以说是一种荣耀。他代表着拥有超人的智力和毅力。而到了20世纪80、90年代,这个称呼的概念却已经变成了电子切贼和大盗的代名词,他们的的黑手频频的伸向金融领域,现在又瞄准了电子商务。
2.1.2网络交易的风险源分析
1)信息风险
从技术上看,网络交易的信息风险主要来自三方面:
(1) 冒名窃贼。黑客为了获取重要的商业秘密、资源和信息,常常采用源IP地址欺骗攻击。入侵者伪装成源自一台内部主机的一个外部地点传送信息包,这些信息包中包含内部系统的IP地址。
(2) 篡改数据。攻击者未经授权进入网络交易系统,使用非法手段,删除,修改,重发某些重要信息,破坏数据的完整性。
(3) 信息丢失。交易信息的丢失,可能是三种情况:一是因为线路问题造成信息丢失;二是因为安全措施不当而丢失信息;三是在不同的操作平台上转换操作丢失信息。
2)信息传递过程中的风险
信息在网络上传递时,要经过多个环节和渠道。由于计算机技术发展迅速,原有的病毒防范技术、加密技术、防火墙技术等始终存在着被新技术攻击的可能性。计算机病毒的侵袭、黑客的非法侵入、线路窃听等很容易使重要数据在传递中泄露,威胁电子商务的安全。
3)信用风险
信用风险来自三方面:
(1) 来自买方的信用风险;
(2) 来自卖方的信用风险;
(3) 买卖双方都存在的抵赖现象。
2.2客户认证
客户认证(Client Authentication)是基于用户的客户端主机IP地址的一种认证机制,它允许系统管理员为具有某一特定IP地址的授权用户定制访问权限。CA与IP地址相关,对访问的协议不做直接的限制。服务器和客户端无须增加、修改任何软件。系统管理员可以决定对每个用户的授权,允许访问的服务器资源,应用程序,访问时间以及允许建立的会话数等等。
客户认证技术是保证电子商务交易安全的一项重要技术。客户认证主要包括身份认证和信息认证。前者用于鉴别用户身份,后者用与保证通信双方的不可抵赖性和信息的完整性。
2.2.1身份认证
1) 身份认证的目标
认证机构或信息服务商应该提供如下认证的功能:
a) 可信性
b) 完整性
c) 不可抵赖性
d) 控制访问
2) 用户身份认证的基本方式
a) 用户所知道的某个秘密信息,如用户知道的自己的口令
b) 用户所持有的某个秘密信息(硬件)。
c) 用户所具有的某些个人化参数,如指纹,声音,DNA等。
2.2.2信息认证
商务活动往往是通过公开网络如因特网进行数据传输,这就对网络传输过程中信息的保密性提出了更高的要求。现在业界普遍通过采用秘密密钥加密系统(Secret Key Encryption)、公开密钥加密系统(Public Key Encryption)或者两者想结合的方式来满足以上要求,以求信息的安全认证。
2.2.3通过认证机构认证
网上交易的买卖双方在进行每一笔交易的时候,都要鉴别对方是否可信的。
1. 证书
在做交易时,应向对方提交一个由CA签发的包含个人身份的证书,以使对方相信自己的身份。顾客向CA申请证书,可提交自己的有效证件,经验证后,颁发证书,证书包含了顾客的名字和他的公钥,以此作为网上证明自己身份的依据。
2. 数字证书
最常用的CA证书是数字证书。数字证书作为网上交易双方真实身份证明的依据,是一个经证书授权中心(CA)数字签名的、包含证书申请者(公开密钥拥有者)个人信息及其公开密钥的文件。
证书的格式遵循X.509标准。X.509是由ITU-T制定的数字证书标准。
X.509给出的鉴别框架是一种基于公开密钥体制的鉴别业务密钥管理。一个是用户专用的密钥,另一个是其他用户都可以利用的公共密钥。
3. 认证机构
认证机构(CA)在电子商务中具有特殊的地位。它是为了从根本上保障电子商务活动中交易与各方身份、资信的认定,维护交易活动的安全。
CA认证主要有:接受注册请求、处理、批准/拒绝请求,颁发证书。
在实际运作中,CA也可由大家都信任的一方担任。例如客户,商家,银行三角关系中,客户使用的是由某个银行发的卡,而商家又与此银行有业务关系,在此情况下,可由银行作CA角色。
CA
如图2.2-1:CA认证
第三章 Go2008电子商务系统分析与设计
3.1平台组建
GO 2008电子商务系统的平台选择Windows2000 AdvancedServer + JDK1.3 + Apach Tomcat4.0+SQL Server2000。Windows2000和SQLServer是微软公司的产品早已经为大家所熟悉,这里就不做过多介绍,这一章主要给大家介绍一下WEB应用开发的新技术JSP。
3.1.1 JSP技术介绍
一、JSP是什么
JSP就是一种Web编程脚本语言。它(Java Server Pages)由Sun Microsystem公司于1999年6月推出,是基于Java Servlet以及整个Java体系的Web开发技术。利用这一技术可以建立先进、安全和跨平台的动态网站。
二、JSP与其他动态网页技术的比较
(1)JSP与ASP
总的来说,Java Server Pages (JSP) 和微软的Active Server Pages (ASP)在技术方面有许多相似之处。比如,两者都被基于WEB应用实现动态交互网页制作提供的技术环境支持;同时,两者都能够让程序员实现程序编制和网页设计的分离。但两者之间仍存在很多不同之处,其中最本质的区别在于:两者来源于不同的技术规范组织,其实现的基础即WEB服务器平台要求不同。
a. JSP技术是开放的技术
JSP和ASP技术明显的不同点:开发人员对各自软件体系设计的深入了解的方式不同。JSP技术基于平台和服务器的互相独立,支持广泛而专门,被各种工具包,服务器的组件和数据库产品开发商所提供。相比之下,ASP技术主要依赖微软的技术支持。
平台和服务器的独立性
JSP技术依附于一次写入之后可以运行在任何符合java语法结构环境中。与过去那种依附于单一平台或开发商的模式不同,JSP技术能够运行在WEB服务器上,并且支持来自多家开发商提供的工具包。
由于ASP技术是基于ActiveX控件技术提供客户端和服务器端的开发组件,因此ASP技术基本上局限于微软的操作系统平台。不能很容易的实现在跨平台的WEB服务器上工作。
开放的开发过程,开放的源代码
SUN应用互相协作的过程开发JSP技术。自从1995年以来,SUN已经用这种开放过程方法同国际JAVA组织合作开发和修改了JAVA技术与规范。JSP应用程序界面(API)毫无疑问已经取得成功,并将随JAVA组织的不断开放扩大而继续完善。相反,ASP技术仅依靠微软本身的推动,其发展是建立在独占、封闭的开发过程基础上的。
JSP标签的可扩充性
尽管ASP和JSP都使用标签和脚本技术来制作动态网页,JSP技术能够使开发者应用JSP标签库,所以开发者充分利用与XML兼容的标签技术的强大功能,大大减少对脚本语言的依赖。由于定制标签技术,降低了开发者制作网页和向多个网页扩充功能的复杂程度。
JSP跨平台的可重用性
JSP的开发人员在开发过程中一直关注可重用性。JSP组件(EJB,JAVA BEAN,或定制的JSP标签)都是跨平台可重用的。EJB组件可以访问传统的数据库,并能以分布式系统模式工作于UNIX和WINDOWS平台。JSP技术的标签可扩充功能为开发人员提供简便的、与XML兼容的接口,即共享网页的打包功能,使其完全的工业标准化。
b. Java的优越性
JSP技术用java作为脚本语言,而ASP网页使用微软的Vbscript或javascript。Java是成熟的、强大的、易扩充的编程语言,远远优于基于BASIC的脚本语言。如:java的可执行性优于VBScript或javascrip语言。因为它们利用java技术并且都被编译为javaservlet,JSP网页为整个服务器端的java库单元提供了一个接口来HTTP的应用程序服务。
Java使开发人员的工作在其他方面也变得一样容易、简单。例如,当ASP应用程序在WINDOWS NT系统被怀疑可能会崩溃时,java能有效的防止系统的崩溃。Java语言通过提供防止内存泄漏的方法,在内存管理方面也大显身手。加之,JSP还提供了健壮的意外事件处理机制。
易于维护性
基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理。脚本语言都能很好地服务于小的应用程序,但不能适应大型的、复杂的应用程序。因为java是结构化的,所以它比较容易创建和维护庞大的、组件化的应用程序。
JSP突出的组件技术使修改内容时不影响逻辑或修改逻辑时不影响内容边的很容易实现。企业级的javabean结构整和了企业逻辑,例如数据库的访问、安全、事务完整性及独立性。因为JSP技术是一种开放的、跨平台的结构,因此,WEB服务器、平台及其他的组件能很容易地升级或切换,且不会影响JSP基本的应用程序。这一特点使JSP能够适用现实世界的各种WEB应用程序的不断变化和发展。
企业产品的多样性
java2平台即企业版(J2EE)是适用于多企业应用程序的java结构,J2EE的一部分,JSP网页可访问所有J2EE组件,包括javabean,企业javabean及javaservlet。JSP网页都能完全编译成javaservlet,所以它们都享有灵活性的特点和作为服务器端的java应用程序。J2EE平台内容不仅包括管理复杂的企业应用程序,而且包括事物管理技术和pooling资源管理技术。
通过J2EE,JSP网页能够用许多方式同企业系统交互访问。J2EE支持两种CORBA规范技术:java IDL 和RMI。在企业级javabean技术支持下,JSP网页通过运用高级的,对象映射的方式访问数据库。
因此JSP技术是基于java的开放性产品,因此它能够广泛支持不同的提供商提供的工具。WEB服务器和应用程序的服务,这样能够使开发者选择最佳的开发方法,选择最适应他们的应用程序开发的工具包,同时,有效的保护开发者在代码和人员培训上的投资。
(2) JSP与CGI
CGI(Common Gateway Interface)是公用网关接口,可以称它为一种机制,因此CGI程序可以用不同的语言来编写,如Visual Basic、Delphi或C/C++。首先将已经写好的程序放在WEB服务器的计算机上运行,然后将其运行结果通过WEB服务器传输到客户端的浏览器上。我们通过CGI建立WEB页面与脚本程序之间的联系,再利用脚本程序来处理访问者输入的信息而据此作出响应。事实上,这样的编制方式比较困难而且效率低下,以为每一次修改都必须重新将CGI程序编译成可执行文件。下面从几个方面比较JSP与传统CGI的特性。
可移植性
大多数WEB服务器支持CGI接口,但CGI程序自身并不能跨平台运行:javaservlet程序则具有java程序的优点,可运行在任何平台之上,大多数WEB及应用服务器支持java及javaservlet API。
性能
传统的CGI环境下,客户端每一次对CGI程序的请求,都使服务器产生一个新的进程来装载、执行CGI程序,大量的并行请求大大降低了其性能。JSP则没有这个局限,每个程序装载一次,并驻留在服务器内存为以后请求服务。另外JSP在多线程的编写与控制方面比CGI容易的多。
开发及发布
由于javaservlet具有java所有优点,因此开发起来也相对容易,java简化了对异常的处理,它的面向对象特性使开发人员的协作成为一件简单的事情。JSP技术从如下几个方面加快了动态网站的开发。
a. 将静态页面的开发和动态内容的生成JSP中通过使用HTML或XML标记来规划、设计WEB页的布局和风格,而用JSP标记来实现动态的内容,生成动态内容的部分被封装起来运行于服务器端,这样页面布局和风格可单独编辑与调试而不影响动态内容生成。
b. 组件的可重用。多数JSP页面通过重用与平台无关的组件javabean来完成复杂的要求,这些组件可在开发人员中重复使用。
c. 通过标记来简化页面开发。通过JSP提供的标记,开发人员可以很容易地使用javabean组件,设置和访问他们的属性。同时JSP也允许用户自定义标记,还可以接受第三方的标记,从而可以方便地使用第三方提供的功能组件。
(3)JSP与PHP
可移植性
PHP和JSP都具有良好的可移植性。他们都能够运行在各种不同的平台上。但是需要注意的是:PHP对数据库操作的接口繁多,这样设计的初衷也许是方便用户,但是却给移植带来了麻烦。例如:对MYSQL数据库系统的操作和对Orical数据库系统的操作接口是不同的,因此如果要更换数据库系统,就得更改原码中所有涉及数据库操作的部分。
可扩展性
PHP缺少一层逻辑层。JSP可以使用javabean,ASP的背后是COM/DCOM PHP没有相对应的组件,这使得PHP的可扩展性大打折扣。
性能
很多测试表明,PHP的计算速度很慢。因此PHP不宜使用在运算较多的情况下。而JSP在这方面的表现却十分优秀。
支持
JSP技术有SUN公司的支持,而PHP却没有响应的公司支持。PHP秉承GNU风格,开放源代码,对它进行维护升级的是一些网络爱好者。因此在这一点上,JSP具有很大优势。
三、小结
由以上介绍可以看出,JSP是一种崭新的拥有其它技术所不可替代的优势的技术,所以在GO2008电子商务系统中我们选择了它。
3.1.2 平台搭建
在确定技术之后要作的就是搭建平台了,由于我们选用了JSP技术,所以我们需要安装java开发工具集(JDK)和Tomcat(网站服务器)。它们之间的关系见图3.1-1
客户端
图3.1-1 JSP相关环境架构图
JDK,Tomcat均可从网上免费下载,具体安装不在冗述,强调两点:
(1)CLASSPATH的配置:
安装完JDK和Tomcat后需要在CLASSPATH内配置如下内容:
CLASSPATH=安装目录\jdk 1.3\lib\tools.jar
CLASSPATH=安装目录\tomcat\lib
CLASSPATH=安装目录\tomcat\webapps
(2) 对Tomcat Server.xml文件的配置
在Server.xml 文件内添加以下内容
<!-- Go2008 Context -->
<Context path="/go2008" docBase="e:\go2008" debug="0" reloadable="true"/>
完成配置后就可以通过在浏览器地址栏内直接输入http://localhost:8080/go2008来访问系统。
至此,平台搭建完成,可以进入系统分析阶段。
3.2系统分析
3.2.1 用户管理系统分析:
1 需求分析:
a. 允许用户申请帐号,自由登陆;
b. 允许用户查询忘记的密码;
2 过程分析:
图3.2.1.2 用户管理系统过程分析
3建模分析:
(1) 用户管理对象:用户编号,登陆名,密码;
(2) 用户管理模块:
模块名称 模块功能
登陆验证模块 验证用户身份,建立与服务器的对话
注册模块 获取新用户信息,创建新用户
密码查询模块 根据用户确认信息给出密码
注销模块 注销用户
3.2.2 商务活动系统分析
1 需求分析:
a. 允许用户搜索特定商品,并查询详细信息;
b. 允许用户在线订购,支付,查询物流信息;
2 过程分析:
退出
图3.2.2.2 商务活动过程分析
3 建模分析:
(1)商务活动对象:
a. 商品:商品编号,商品名称,商品分类,商品价格,商品介绍;
b. 定单:订单编号,订购用户名,邮递地址,订单提交日期,订购商品信息;
(2)商务活动模块:
模块名称 模块功能
搜索模块 按用户给出限定条件搜索商品
选择模块 将用户选定商品放入购物车
提交定单模块 发放定单
3.2.3 管理员管理活动系统分析
1 需求分析
a. 允许管理员通过超户密码自由登陆;
b. 允许管理员查看、更改、删除注册用户信息;
c. 允许管理员查看、添加、删除库存商品信息;
d. 允许管理员查看用户发放的定单信息;
2 过程分析
图3.2.3.2 管理员进行管理基本过程
3 建模分析
(1) 管理活动对象:
a. 用户:用户编号,登陆名,密码;
b. 商品:商品编号,商品名称,商品分类,商品价格,商品介绍;
c. 定单:订单编号,订购用户名,邮递地址,订单提交日期,订购商品信息;
(2) 管理活动模块:
模块名称 模块功能
用户管理模块 查看、更改、删除注册用户信息;
商品管理 查看、添加、删除库存商品信息;
定单管理模块 查看用户发放的定单信息
3.3 系统设计
3.3.1 用户活动流程设计
(1) 登陆流程详细设计:
a. 用户在浏览器中输入URL访问Go2008首页;
b. 若直接进行商务活动,显示错误提示页面;
c. 用户在首页直接登陆或进入会员中心首页;登陆进入d,申请帐户进入c,忘记密码进入c;
d. 会员中心首页填写相关信息申请帐户,成功返回登陆,不成功返回会员中心选择服务。如忘记密码,填写相关信息获取密码;
e. 登陆成功进入会员专区首页进行商务活动;
f. 商务活动结束注销。
登陆
申请帐号
是
否
注销
图3.3-1 用户商务活动流程之登陆详细设计
(2) 商务活动流程详细设计:
进入客户专区首页做如下选择:
a. 返回首页;
b. 分类浏览商品;
c. 直接查询商品;
d. 查看购物车,若购买商品则进入f;
e. 注销,结束商务活动;
f. 确认购物车内商品并提交定单。
选择商务活动
注销
图3.3-2 商务活动流程详细设计
分类浏览
放入购物车
注销
图 3.3-3 分类浏览详细流程
3.3.2 目录结构设计
+go2008 //系统根目录
+database //数据库文件夹
+image //图片文件夹
+css //样式表文件夹
+member //会员管理文件夹
+buy //商务活动文件夹
+master //管理员管理文件夹
3.3.3 功能模块设计
+go2008
- login.jsp //登陆验证,建立用户与服务器对话模块
- opendate.jsp //建立与数据库连接模块
- convert.jsp //解决中文问题模块
+member
- regist.jsp //注册新会员模块
- forgetpw.jsp //查询忘记密码模块
+buy
- cookieis.jsp //维持对话模块
- seleproduce.jsp //选定商品模块
- intoshopcar.jsp //放入购物车模块
- searchproduce.jsp //查找商品模块
- shopcar.jsp //查看购物车模块
- loginout.jsp //注销模块
- paybank/net/post.jsp //签发定单模块
+master
- masterlogin.jsp //超户登陆验证模块
- showuserinfo.jsp //查看注册用户信息模块
- showproduceinfo.jsp //查看库存商品信息模块
- deleuser.jsp //删除注册用户信息模块
- deleproduce.jsp //删除库存商品信息模块
- insertproduce.jsp //添加商品模块
vieworder.jsp //查看定单信息模块
3.3.4 数据库设计
1)数据视图设计表
数据视图 数据表
中文名 数据表
英文名 数据项中文名 数据项英文名 键
用户信息 用户信息 userinfo 用户名 username pk
密码 password
商品信息 商品信息 produce 货物的编号 produce_ID pk
货物的名称 produce_name
货物的价格 price
分类编号 kind_id ek
货物的介绍 introduce
购物车 购物车 shopcar 购物车编号 shopcarID pk
用户名 username ek
日期 datee
用户IP userip
购物车内容 shopcarinfor 购物车编号 shopcarID pk
货物的编号 produce_ID ek
数量 count
客户确认提交订单 已确认订单 orders 订单编号 orderID pk
登录名 username ek
签订日期 datee
发货地址 address
付款方式编号 payID ek
购物车编号 shopcarID
管理员信息 管理员信息 rootinfo 管理员名称 rootname
管理员密码 rootpassword
2) 查询视图设计表
查询视图 查询表名称 数据项中文名 数据项英文名
购物车 shopcarview 商品名称 produce_name
商品介绍 introduce
商品类别 kind_id
购物车编号 shopcarID
定单 master 定单编号 orderID
用户名 username
投送地址 address
签发日期 datee
商品名称 produceID
3.4 功能实现
Go2008电子商务系统功能实现的关键在于用户与服务器之间的对话的建立和维持(在该系统中通过login.jsp和cookieis.jsp两个文件实现),在用户正确登陆后,服务器在客户端建立cookie,负责用户和服务器之间信息的传递(这也是购物车功能实现的关键所在),在用户访问Go2008过程中不断更新cookie内容,用户结束购物注销后撤消cookie。若用户非法退出或用户在设定时间内没有响应,系统自动撤消cookie以保证用户个人信息的安全。下面就对话的建立和维持的实现作详细介绍。
3.4.1 用户与服务器对话的建立
login.jsp
<%@page contentType="text/html;charset=GB2312"%>
<%@include file="convert.jsp"%>
//调用解决jsp下中文问题的模块,代码见附录
<%@page import="java.sql.*"%>
<%@include file="opendata.jsp"%>
//调用与数据库建立连接的模块,代码见附录
<html>
<head>
<title>会员登陆页面</title>
</head>
<body background="image/bg3.gif">
<%
String username = request.getParameter("username");
String date=new java.util.Date().toString();
String password = request.getParameter("password");
String userip=request.getRemoteAddr();
String insertsql="";
String selesql="";
String shopcarID=null;
username = convert(username);//解决中文乱码
if (username.length()==0||password.length()==0)//判断用户名,密码是否为空
{
String errmsg="!!用户名密码不能为空!!";
out.print("<font color=#00ccFF size=5><center>错误信息</center><hr></font><font color=red><center>"+errmsg+"</center></font><hr>");
out.print("<center><input type=button value=返回上页 onclick=history.back();></center>");
}
else//合法登陆的处理
{
sql = "select * from userinfo where username='"+username+"'and password='"+password+"'";
rs = smt.executeQuery(sql);
if(rs.next())//判断用户名,密码是否合法
{
String user = rs.getString(1);
smt.executeUpdate("INSERT INTO shopcar (username,datee,userip) VALUES ('"+user+"','"+date+"','"+userip+"')");
Cookie info;
info = new Cookie("username", user);
info.setMaxAge(660);
info.setPath("/");
response.addCookie(info);
info = new Cookie("userip", userip);
info.setMaxAge(660);
info.setPath("/");
response.addCookie(info);//给用户建立cookie,内容包含用户名,用户ip,设定cookie生命周期为660秒
selesql="SELECT * from shopcar where(username='"+user+"' and userip='"+userip+"')";
smt.executeQuery(selesql);
rs=smt.executeQuery(selesql);
while (rs.next())
{
shopcarID=rs.getString(1);
info = new Cookie("shopcarID", shopcarID);
info.setMaxAge(660);
info.setPath("/");
response.addCookie(info);//给用户创建购物车并将购物车信息加到cookie中
}
if(shopcarID==null)
{
%>
<jsp:forward page="index.jsp" />
<%
}
%>
<a href="buy/clientpage.jsp"><font color=red size=5><center>
<p> </p>
<p><img src="image/logo.gif" width="133" height="67"></p>
<p> </p>
<p>亲爱的用户<%=user%>:点击此处进入客户专区</p>
</center></font></a>
<%
smt.close();
con.close();
}
else//非法登陆的处理
{
String errmsg="!!该用户不存在或密码错误!!";
out.print("<font color=#00ccFF size=5><center>错误信息</center><hr></font><font color=red><center>"+errmsg+"</center></font><hr>");
out.print("<center><input type=button value=返回上页 onclick=history.back();></center>");
}
}
%>
</body>
</html>
3.4.2 用户商务活动过程中身份的确认(对话的维持)
cookieis.jsp
<%@page import="java.sql.*"%>
<%@include file="convert.jsp"%>
<%@include file="opendata.jsp"%>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
String shopcarID=null;
String userip=request.getRemoteAddr();
String selesql="";
int cout=0;
Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++)
{
if (cookies[i].getName().equals("username"))//刷新cookie
{
username = cookies[i].getValue();
cookies[i].setValue(username);
cookies[i].setMaxAge(660);
cookies[i].setPath("/");
response.addCookie(cookies[i]);
cout++;
break;
}
}
for (int i = 0; i < cookies.length; i++)
{
if (cookies[i].getName().equals("userip"))//刷新cookie
{
userip = cookies[i].getValue();
cookies[i].setValue(userip);
cookies[i].setMaxAge(660);
cookies[i].setPath("/");
response.addCookie(cookies[i]);
cout++;
break;
}
}
for (int i = 0; i < cookies.length; i++)
{
if (cookies[i].getName().equals("shopcarID"))
{
shopcarID = cookies[i].getValue();
cookies[i].setValue(shopcarID);
cookies[i].setMaxAge(660);
cookies[i].setPath("/");
response.addCookie(cookies[i]);
cout++;
break;
}
}
selesql="SELECT * from shopcar where(username='"+username+"' and userip='"+userip+"')";
smt.executeQuery(selesql);
rs=smt.executeQuery(selesql);
while (rs.next())
{
shopcarID=rs.getString(1);
}
if(cout!=3)//如果cookie不全,说明用户身份不合法,显示超时页面
{
%><jsp:forward page= "overtime.html" /><%
}
%>
3.4.3 对话的结束
loginout.jsp
<%@include file="cookieis.jsp"%>
<%@page contentType="text/html;charset=GB2312"%>
<html>
<head>
<title>注销</title>
</head>
<body>
<%
Cookie[] cookies1 = request.getCookies();
if(cookies1!=null)
{
if(cookies1.length!=0)
{
for (int i = 0; i < cookies1.length; i++)
{
cookies1[i].setMaxAge(1);//将cookie生命期设为1,即撤消了cookie
cookies1[i].setPath("/");
response.addCookie(cookies1[i]);
}
}
}
%>
您已经注销,欢迎下次光临
</body>
</html>
3.3.4 系统与数据库的连接
整个系统中很重要的一个组成部分就是系统与数据库的连接,本系统中实现该功能的模块(opendata.jsp)如下:
opendata.jsp
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc dbc:go2008";
Connection con = DriverManager.getConnection(url,"","");//建立连接
Statement smt = con.createStatement();
ResultSet rs;
String sql;
%>
对数据库的具体操作,在个功能模块内有SQL语言具体实现。
3.3.5 中文问题处理
由于JSP对中文的支持还不完善,在读写数据库或处理其它动态信息时会出现乱码,所以特编写了一个处理中文问题的模块(convet.jsp)如下:
convert.jsp
<%!
String convert(String str)
{
byte newstr[] = new byte[str.length()];
for(int i=0;i<str.length();i++)
newstr[i]=(byte)str.charAt(i);
return new String(newstr);
}
String Replace(String str)
{
int index=0;
while((index=str.indexOf("\n")) != -1)
str = str.substring(0,index) +"<br>"+ str.substring(index+1);
return(str);
}
%>
3.5 小结
Go2008电子商务系统的分析、设计及功能实现到此已经基本明确,其它个功能模块的具体代码参见附录。
第四章 总 结
本文讲解了电子商务的基本原理和运行机制,介绍了基于java的WEB开发新技术JSP,并就基于java的安全电子商务系统的分析、设计、实现全过程给以了详细的讲解,由于政策和法规方面的局限,本文无法就在线支付作进一步的讲述,望大家原谅。
电子商务是一个陌生的课题,我在研究过程中已深深体会到这一点。有关电子商务的内容需要一点一点地去熟悉,有关资料也需要一点一点地去收集。JSP技术也是一门新兴的WEB应用开发新技术,需要我们在今后的应用开发中不停的摸索、掌握。文中难免疏漏之处,望老师同学多多指正。
在毕业设计制作和论文撰写过程中,得到了冯全生教员的多次指导和大力支持。感谢他们在百忙中抽出时间给予我们以帮助。
附录:参 考 文 献
1. 清宏计算机工作室 《JSP编程起步》 机械工业出版社 2002.1
2. 荣钦科技主笔室 《最新JSP入门与应用》 中国铁道出版社 2001
3. 杨坚光 杨晨光 《电子商务基础与应用》 西安电子科技大学出版社 2001
可乐分享 - 免责声明 1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站信息来自网络,版权争议与本站无关
3、本站发布的相关帖子文章仅限用于学习和研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负
4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
5、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
6、可乐分享 管理员和版主有权不事先通知发贴者而删除本文