基于J2EE的B2C电子商务系统开发
时间:2023-05-24 22:15:01 | 来源:网站运营
时间:2023-05-24 22:15:01 来源:网站运营
基于J2EE的B2C电子商务系统开发:
设计(论文)的主要内容与要求:Internet的迅速普及促进了B2C电子商务应用的蓬勃发展,J2EE规范的问世使电子商务应用系统的开发更趋于合理和规范。本题目要求运用J2EE开发工具IBM WebSphere,遵循J2EE规范,与同组其他同学一道开发一个B2C电子商务系统,使用UML工具,采用面向对象分析、面向对象设计方法,完成系统的分析与设计,建立系统模型;运用IBM WebSphere中的开发工具完成系统的程序设计,并完成系统的测试。该同学除与同组同学共同完成系统分析与设计外,本人重点完成其中的新闻发布子系统和系统管理子系统开发。网络操作系统采用Windows 2000,数据库管理系统选择IBM DB2 ,主要开发工具为 IBM WebSphere,Rational Rose等。 |
---|
设计(论文)的主要技术指标:与同组的其他同学一道,运用UML开发工具Rational Rose完成系统分析与设计;2. 采用IBM的WSAD完成系统开发、测试,本人重点完成新闻发布子系统和系统管理子系统开发;3. 提交技术报告、测试报告、源程序等主要文档。 |
进 度 安 排 |
---|
序号 | 设计(论文)工作任务 | 日期(起止周数) | % |
1 | 完成开题报告、译文及文献综述 | 1~2周 | 15 |
2 | 需求分析、熟悉开发工具 | 3~4周 | 15 |
3 | 系统分析与设计 | 5~8周 | 20 |
4 | 程序设计、软件测试 | 9~13周 | 25 |
5 | 撰写毕业论文,整理软件文档 | 14~16周 | 25 |
6 | 毕业答辩 | 17周 | |
主要参考文献:《UML with Rational Rose 从入门到精通》Wendy boggs Michael boggs 著 邱仲潘等译,电子工业出版社 2000年3月2. 《WebSphere Application Server-Express: A Development Example for New Developers》 IBM公司RedBook 2003年3. 《21天学通J2EE》 Martin Bond 等著 张建明 英宇 译 人民邮电出版社 2002年12月4. 《DB2 UDB v7.1 for Linux, Unix,Windows数据库管理》 George Baklarz, Bill Wong著, 龚玲 等译 机械工业出版社5. 《IBM WebSphere 开发者的技术期刊》 IBM公司网站 |
同组设计(论文)者:向征 |
系负责人意见: |
学院负责人意见: |
毕业设计(论文)开题报告1、课题的目的及意义(含国内外的研究现状分析)本课题的目的:通过一个基于J2EE的B2C的网上拍卖系统的设计与实现,熟悉IBM的开发工具WebSphere,更好的了解电子商务相关的知识,并对软件工程的思想有进一步的理解,借此巩固在校学习的内容,为以后的学习和工作打下基础。目前国内外的研究现状:电子商务给我国企业带来了新的发展机遇。电子商务作为一种新型的贸易方式,极大地促进了全球经济贸易的发展,同时也正在改变人们的生活方式和思想观念。电子商务是指整个贸易活动实现电子化,交易各方以电子交易方式而进行的商业交易,涵盖的业务包括:商务信息交换、售前售后服务、广告、销售、电子支付、运输、组建虚拟企业等。世界贸易组织电子商务专题报告定义:电子商务是通过电子信息网络进行的生产、营销、销售和流通等活动,全球电子商务涉及世界各国,也为我国企业带来了新的发展机遇。B2C与B2B的区别:B2C网站扮演的主要是网上零售商(e-retailing)的角色,它与B2B和C2C的一个最大区别在于,B2B或C2C平台是同时提供买卖双方的大规模信息集成平台,而B2C通常是只提供卖家信息、以及促成买卖交易的集散地,包括下单、支付及配送等服务功能,这与传统的大型商城、百货商店的零售模式没有太大区别。在信任关系上,B2C也同样存在着传统零售业中商场(网站)和消费者之间,商场(网站)和供货商之间,商场(网站)和配送公司之间,商场(网站)和支付银行之间的互信问题,而这其中大部分的信用关系,目前B2C和传统商务相比并没有突破一手交钱一手交货的交易方式。本课题的(理论或实际)意义:随着市场经济的迅速发展,电子商务已经成为一种重要的贸易方式,并在全球范围内成长迅速,中国起步较慢,故市场巨大。随着电脑的普及化,人们通过电子手段和经济交互已经成为了一个趋势。我们IT人员是电子商务的核心技术人员,是电子商务运行的重要元素。从事电子商务相关方向的项目开发已经成为我们就业的一个方向。在当前的形势下,我们不仅应该具备电子商务相关的技术与经验,还要有相关的金融知识,透彻了解合作企业所在的行业,充分熟悉银行结算流程,这样才能把商家结算的时间缩减,程序简化,从而达到降低成本并最终更好的完成任务的目的。本次毕业设计就是完全在这个前提下进行的,故我们可以得到宝贵的经验。2、课题任务、重点研究内容、实现途径及进度计划本课题的任务:在软件工程思想的指导下,运用J2EE开发工具IBM的开发环境 WebSphere,遵循J2EE的相关规范,与同组其他同学一道开发一个B2C电子商务系统,完成系统的分析与设计,建立系统模型,最终实现程序设计并完成系统的全面测试,我的重点任务是完成商品展示子系统的开发。网络操作系统我们采用Windows 2000,数据库管理系统选择IBM的DB2 ,主要开发工具为 WebSphere、XML、Rational Rose等。本课题需要重点研究的内容:因为我们这次的选题内容是一个网上拍卖系统,所以要了解相关的金融和技术知识,在此基础下,建立一个B2C模式的电子商务构架,并完成对产品信息发布系统、产品展示系统以及产品交易系统三个子系统的代码实现。与同组的其他同学一道,运用UML的开发工具Rational Rose完成系统分析与设计,采用IBM的WSAD完成系统开发、测试,重点完成商品展示子系统的开发;最后需要提交包括技术报告、测试报告、源程序在内的主要文档。课题的实现途径:在电子商务和软件工程思想指导下,结合相关的金融知识,通过透彻的了解拍卖的运作模式、赢利模式以及相关的业务流程,在对银行的结算模式有一定了解的基础上完成需求分析;运用XML、Rational Rose来建立系统分析模型;采用IBM的数据库管理软件DB2来进行相关数据的管理;最后在IBM的开发环境WebSphere平台上进行系统代码部分的开发并在网络环境下对系统进行测试。本课题的进度计划:进 度 安 排序号设计(论文)工作任务日期(起止周数)1完成开题报告、译文及文献综述1~2周2需求分析、熟悉开发工具3~4周3系统分析与设计5~8周4程序设计、软件测试9~13周5撰写毕业论文,整理软件文档14~16周6毕业答辩17周报告人签名: 年 月 日 |
---|
3、导师意见导师签名:年 月 日 |
中期汇报表学院 | 计算机学院 | 专业(方向) | 计算机科学与技术 |
---|
姓名 | 张志伟 | 学号 | 20014518 | 班级 | 2001级4班 |
指导教师 | 傅鹤岗 | 职称 | 副教授 | 助理指导教师 | | 职称 | |
设计(论文)题目 | 基于J2EE的B2C电子商务系统开发-新闻发布与系统管理子系统设计与实现 |
毕业设计(论文)前期工作小结前期的开发过程中,我们首先运用软件工程的相关知识,根据项目设想情况做出了需求分析,分析并确定了系统最基本的功能和几个必要的对象(用户、商品、系统)。又进一步使用UML开发工具Rational Rose进行了相关的模型设计,主要包括有:网上拍卖系统用例图、网上拍卖系统顺序图、用户登录活动图、交易记录活动图以及用户操作流程图。主要几个模块包括的内容有:一、在用户登录部分系统根据用户名和密码使得用户和管理员分别跳转到各自的欢迎页面(这里要调用用户数据库的相关内容),其中用户的功能主要是注册、登录、修改密码、竞拍、注销等。管理员的主要功能包括登录、修改密码、授予权限、录入新商品、查看交易纪录、删除非法用户信息、退出登录等。二、竞拍部分根据用户的账户余额以及报价来决定该用户是否获得暂时所有权并即时进行更新,在倒数计时结束时获得暂时所有权的用户将获得该物品所有权并从该用户的账户余额中扣除竞价的那部分。同时发送一个送货请求到相关部门(其中包括客户的相关信息如姓名、地址等)。三、交易记录部分通过跟踪用户的竞拍过程记录下该用户的竞拍信息、习惯以及成功交易数额并将这些数据记入信用纪录中,为更好地为客户服务作必要的数据积累。同时我们计划根据这些数据让不同的用户在登陆后能够进入自己的个性化页面(比如连续多次购买手机的用户直接登录到手机产品界面)从而体现出我们以人为本的思想。 |
存在的问题与改进办法 当前我们的主要问题是如何运用WebSphere这种功能强大的开发工具来完成我们的B2C电子商务系统的开发。还有就是个性化页面的开发对技术的要求较高,而我们目前还不能够熟练的运用Servelet和JSP来完成系统的综合开发。 改进的方法就是在接下来的时间多看一些相关的教程并和同学们相互多点讨论,加强自己对WebSphere和Serverlet等内容的理解与掌握,使自己的知识早日达到开发的要求。 |
指导教师意见指导教师签名: 年 月 日 |
版本兼容性WebSphere 5.x 产品家族提供了很多向后兼容性。WebSphere Studio Application Developer 5.x 版对 J2EE 1.2 和 1.3 应用程序的开发都提供支持。事实上,它还可以和 WebSphere Application Server 4.0、5.0,以及 5.1 版的运行时测试环境一起安装。此外,在 WebSphere Application Server V5.x 上,J2EE 1.2 和 1.3 应用程序都可以运行。
图 1 说明了 WebSphere Studio 不同版本的使用方式。(在写本文时,WebSphere Studio Application Developer 5.1.1 版已经可以使用了。建议使用此版本来进行所有的 WebSphere 开发。)
图 1. WebSphere Studio V5.1 可以用来创建 WebSphere Application Server V4 和 V5 的应用程序为 WebSphere Application Server V4.0 开发和封装的应用程序代码,一般不用修改就可以在 WebSphere Application Server V5.x 上运行。图 2 显示了可能和 5.x 版有关的一些配置。一个 WebSphere Application Server V5.x 实例可以同时运行 J2EE 1.2 和 1.3 应用程序。
图 2. WebSphere Application Server V4 只能运行 J2EE 1.2 应用程序,在 V5 版上,J2EE 1.2 和 1.3 应用程序将都可以运行如图 2 所示,在 WebSphere Application Server V5.1 上运行 J2EE 1.2 应用程序完全有效。这意味着可以只升级您的运行时环境而不需升级您的应用程序。您也可以只升级那些需要使用 5.1 版特有功能的应用程序,而保持其他应用程序的当前状态。
更好的是,J2EE 1.3 Enterprise Application Archive (EAR) 文件可以包含 J2EE 1.2 模块(如图 3)。这意味着,如果需要升级到 J2EE 1.3,可能只需要升级那些需要升级的部分。实际上,EJB 2.0 模块定义 EJB 1.1 bean 是很灵活的。如果必要,您可以升级部分,而不是所有的 bean 以利用特有功能。
图 3. J2EE 1.2 模块可以被部署在 J2EE 1.3 企业应用程序中在 WebSphere Application Server V4.0 和 V5.1 之间,一个重要的改动是 Java 版本支持。WebSphere Application Server V5.1 运行在 JDK 1.4 上。在这个新版本里,Java 语言发生了很多的变化,在一些非常特殊的情况下,这些改动将影响您的应用程序(例如,JDK 1.4 包含的 XML 实现可能会和您应用程序使用的 XML 库冲突)。在大多数情况下,这些改动将没有任何影响。在某些情况下,使用 JDK 1.4 编译器重新编译应用程序代码将是解决迁移相关问题的简单方法。然而,在极少的情况下,将需要对应用程序代码或封装结构进行改动。
版本之间的兼容性并不包括对运行时环境的管理。应用服务器的管理方式已经发生了巨大的变化。WebSphere Application Server V4.0 管理域(domain)时所依赖的管理数据库已经不复存在,取而代之的是在 WebSphere Application Server V5.x 中的 XML 配置文件。甚至术语也已经发生了变化,域已经被单元所取代。
J2EE全面介绍本文从五个方面对J2EE进行了比较全面的介绍。从J2EE的概念说起,到它的优势,到J2EE典型的四层模型,和它的框架结构,最后是J2EE十三种核心技术的一个简介。本文分门别类的对J2EE中的服务,组件,层次,容器,API都做了比较详细的介绍,相信看完此文,读者会对J2EE有一个更清晰的认识。
一. J2EE的概念
目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。
J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
二. J2EE的优势
J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:
保留现存的IT资产: 由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEA Tuxedo、IBM CICS, IBM Encina,、Inprise VisiBroker 以及Netscape Application Server。这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的'企业计算'领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。
高效的开发: J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务:
状态管理服务 -- 让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。
持续性服务 -- 让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。
分布式共享数据对象CACHE服务 -- 让开发人员编制高性能的系统,极大提高整体部署的伸缩性。
支持异构环境: J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。
可伸缩性: 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。
稳定的可用性: 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择健壮性能更好的操作系统如Sun Solaris、IBM OS/390。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。这是实时性很强商业系统理想的选择。
三. J2EE 的四层模型
J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议??通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是 J2EE 典型的四层结构:
运行在客户端机器上的客户层组件
运行在J2EE服务器上的Web层组件
运行在J2EE服务器上的业务逻辑层组件
运行在EIS服务器上的企业信息系统(Enterprise information system)层软件
文献综述:基于B2C的电子商务与开发摘要:当今社会,科学技术突飞猛进,知识经济初见端倪。电子商务作为一种新型的贸易方式,极大地促进了全球经济贸易的发展,同时也正在改变人们的生活方式和思想观念。电子商务是指整个贸易活动实现电子化,交易各方以电子交易方式而进行的商业交易,涵盖的业务包括:商务信息交换、售前售后服务、广告、销售、电子支付、运输、组建虚拟企业等。世界贸易组织电子商务专题报告定义:电子商务是通过电子信息网络进行的生产、营销、销售和流通等活动,全球电子商务涉及世界各国,也为我国企业带来了新的发展机遇[3]。本文主要讲述了做电子商务的理由、电子商务中的信用问题和电子商务开发人员要注意的一些问题。
主要内容:- 为何要进行B2C的电子商务
全世界大约有几千万人可访问World Wide Web(WWW),不管你是做什么买卖的,你都不能小觑这几千万人。要想加入这个圈子,并在其中表现出你有兴趣为他们提供服务,你就需要踏上WWW。你该知道,你的对手们是会这样干的。
建立人际关系网络:做生意当中的许多周折无非就是跟他人取得联系。精明的商人都知道,重要的不是你知道什么,而是你认识谁。如果你向几千个,甚至几百万个潜在客户和合作伙伴递出名片,并说这就是我所从事的工作,如果你需要我的服务,可以通过它跟我联系,这样将会产生何等效果也就可想而知了。在WWW上,你每天24小时都可以轻而易举地这样做。
让商务信息唾手可得:基本的商务信息是什么?想想黄页广告就知道了。你什么时间营业?你是干什么的?怎么跟你联系?你接受哪种付款方式?你在何处?今日的特价商品是什么?如果你能让你的客户知道他们该跟你做生意的每一条理由的话,你的生意不就做得更好吗?而在WWW上,这些你都办得到。
向客户提供服务:让商务信息随手可得是向客户提供服务的最重要的途径之一。采用WWW技术后,你会找到更多的向客户提供服务的方法。
提高大众兴趣:你没办法让《新闻周刊》来报道你的小店开张之事。但是如果你的网页作得新颖有趣的话,你可以让他们把你的网址写进去。有了网页信息,不管何人,也不论他身在何地,只要他通过Web了解到你,他都会成为你的网站的潜在访问者,从而进一步发展成潜在客户。
发布时效性强的材料:如果你手里有些材料不能在午夜之前发布,你会怎么办?如何发布季度收益报告、大奖获得者以及兼并等消息呢?现在这些信息可以在午夜或你定下的任何时候发布了,而且像图片、相关人物简介之类的有关材料也可以同时发布。像“到12:01,所有材料都可以从我们的站点上获得”这样的预告是做得到的。独家新闻只能由那些等待信息发布的人们分享,而不会落入提早发布你的信息的人手里。
卖东西:有一个最合适的比方:你认为电话是卖东西的最佳“场合”吗?或许不是吧!你或许也清楚,电话只是一种工具,让你同客户交流,进而帮助你卖东西。其实,我们也应当这样来看待WWW。当然,这两种技术是不一样的。但有一点是相同的,即别人在决定做你的客户之前,想了解你,看你是干什么的,你能给他们做点什么。这些你都可以在WWW上经济而方便地做到。然后,你就有望将他们转化成客户。
提供图像、声音和电影文件:假如你的装饰品很棒,人们看到它的话会真正喜欢上它;假如你的唱片集极佳却上不了广播,以至无人知晓其动听之处,而上了WWW,你就可以把声音、图像和短剧文件加进你的公司信息里,使之为你的潜在客户服务。这种事是任何手册之类的东西所做不到的。
获得人口高度密集的市场:WWW的用户可能是市场最大的人口群体。这些人通常受过大学教育或正在接受大学教育,正在挣大钱或很快就要挣大钱。在这个Internet圈子里,《Wired》杂志是当然之选,它获得Lexus或高端商家的广告是没问题的。这个圈子还可以算上在线商业企业,在未来几年内,这里的人口将是相当密集的。
回答常见问题:在你的机构内,任何一个回答电话问题的人都会告诉你,他们的时间主要花在一遍又一遍地回答相同的问题上。这些问题是客户或潜在客户在跟你做买卖之前想搞清楚的地方。把它们放到WWW页面上,你就会排除人们跟你做生意的一个障碍,从而为饱受折磨的话务员争得一些空闲时间[1]。
其它还有诸如跟销售人员保持联系、开拓国际市场、创建24小时服务、迅速进行信息更改、收集客户反馈、对新服务、新产品进行市场定位、获得媒体效应、进入教育与年轻人市场、进入特殊市场以及为地方市场提供服务使用电子商务来做的话都会简单许多[7]。 - 电子商务中的信用问题
当前全球电子商务发展不景气,中国亦是如此。但大多数人仍然相信电子商务的前途是光明的,只是发展道路是曲折的。这一点判断大概不会错,因为网络技术对经济活动带来的深刻影响已经不可逆转。问题在于即使技术上电子商务能够赢利,为什么实际交易中迟迟赚不到钱?究竟是什么原因阻碍了电子商务的交易,影响中国电子商务发展的路障有哪些?经济活动中的低信任度(福山,2001)无疑是困扰当前中国经济的一个共同路障,而互联网的出现,究竟给传统的交易信用带来了什么样的影响?与传统商务的信用问题相比,作为互联网在商业中的集中体现形式——电子商务信用问题又有那些特殊的表现形式,以及特殊的信用设计机制[8]?
所谓信用问题,指的是因缺乏一定的信任关系而导致交易成本上升,社会秩序趋于复杂化、混乱化。信用问题是人类社会长期存在的一个问题,涉及到社会生活的方方面面。良好的信用状况是社会稳定和经济发展的重要保障。信用问题之所以在现代社会凸显出来,主要是因为由传统的“熟人社会”逐渐演变成现代的“陌生人社会”,传统的信用约束机制失灵,而新的信用机制还没有完全建立起来,使得信用问题成为一个头痛的大问题。从信任的结构上可以将之分为人格信任和系统信任(郑也夫 2001)。由于中国目前正处在从人格信任的人治社会向系统信任的法制社会的转换阶段,信用机制的严重缺位,导致当前各类信用问题极为突出。毒米事件、毒油事件、杀熟现象屡屡发生,社会诚信几乎降到了历史最低点。这其中既有西方国家在制度转换过程中曾经遇到的共同的问题,也有中国特有的问题――即产权制度和政府行为的问题(张维迎 2001)。总之,中国在信用领域的转轨成本比西方更高[11]。
具体来讲,目前“网上信用”大致有四种表现形式:
H1:改进型(positive):“网上信用”比起“网下信用”有正向的促进与改善,但促进程度有限,我们称之为“网上信用改进型”(简称改进型)。以B2B为代表。
H2:放大型(negative):“网上信用”不仅对“网下信用”没有改进,反而放大了“网下信用”的负面问题,我们称之为“网下信用放大型”(简称放大型)。以C2C为代表。
H3:无关型(default):“网上信用”与“网下信用”没有本质区别,只是将“网下信用”问题平移到了网上,我们称之为“网上网下无关型”(简称无关型)。以B2C为代表。
H4:网上信用超越型(surpass):“网上信用”由于回避掉“网下信用”问题的一些环节,使得“网上信用”更为可靠,我们称之为“网上信用超越型”(简称超越型)。以e-financing为代表[9]。
我们主要讨论B2C的信用问题,B2C网站扮演的主要是网上零售商(e-retailing)的角色,它与B2B和C2C的一个最大区别在于,B2B或C2C平台是同时提供买卖双方的大规模信息集成平台,而B2C通常是只提供卖家信息、以及促成买卖交易的集散地,包括下单、支付及配送等服务功能,这与传统的大型商城、百货商店的零售模式没有太大区别。在信任关系上,B2C也同样存在着传统零售业中商场(网站)和消费者之间,商场(网站)和供货商之间,商场(网站)和配送公司之间,商场(网站)和支付银行之间的互信问题,而这其中大部分的信用关系,目前B2C和传统商务相比并没有本质的区别或突破。原My8848董事长、现西单电子商务CEO王峻涛在接受访谈中是这样阐述中国的B2C信用的——
“B2C中国四百年前就有了,一手交钱,一手交货,不是有了电子商务才有的。企业不愿意给个人信用,因为在商家眼里每个人都是没有信用的,钱到发货。对于消费者来说,钱交了,3天以后才收货,风险当然很大呀!”“历来商业中向消费者概不赊帐。跟上游企业(供应商)要赊,但愿意向制造业赊,而不愿向商业企业赊。如果处理跟上游企业关系时,谁也不信谁,那就一手交钱一手交货;如果我信他,他不太信我,那我预付;他信我,我不信他,先拿货来,卖完之后再结算。决定用哪种方式,是个很要命的问题,这是中国做生意最大的困难,不大可能科学决策,信用方式是一门艺术。
“中国目前的网络信用,和网下没有多大区别,我反而觉得比网下还好一些。因为网络企业的风险投资、管理机制都比网下要新。没有信用的地方有一个好处,大家谁也不信,警惕性很高[6]。”
B2C并没有突破一手交钱一手交货的交易方式。原因就是,我国目前的个人信用制度和企业信用制度都没有建立起来,作为一个理性的个人或企业,在面对一个虚拟的个人(企业)时,最理性的选择就是把他当作一个没有任何信用的个体(企业)。由于约束能力不同,个人通常比企业更倾向于不守信用,因此现在的B2C网站一般只能“不给个人信用”——款到了,我才给你发货。而目前我国的网上支付体系又不完善,能实现实时支付的只有招商银行和交通银行,其他支付方式到帐至少需要24小时,而且又不能透支,这样就严重阻碍了电子商务的交易速度和流通效率,大大削弱了互联网可利用的时效优势。“我坏别人的帐和别人坏我的帐差不多,会慢慢平衡,但很危险,很容易被打破,不能成为一种商业游戏的规则”(王峻涛),否则B2C信用很可能陷入“信用的低水平均衡陷阱[6]”。
光有技术是不够的 - 开发人员注意的问题:光有技术是不够的[5]
3.1 尽管同属于IT业,但侧重电子商务的企业与传统的IT企业相比,有很大不同。 第一,产品不同。环球实业提供的网上支付平台,也就是互联网实时在线支付系统。通过这个系统,信用卡持卡人可以把资金划给商户,商户可以结算资金。举例来说,你在网上订了《时尚》杂志,那么通过环球实业提供的在线支付平台,你能用招商银行“一卡通”(或者别的银行卡)进行支付,而杂志社可以通过这个系统结算包括你在内所有预订杂志的费用。产品的价值就体现在消费者和商家的使用过程,所以产品没有实体、没有行状,是软性的、虚拟的。
第二,结构不同。环球实业的企业结构是以业务为模块。不同于传统企业的一般结构,环球实业划分成电子商务、客户服务、技术、结算、商务、项目等等部门。其中商务部门就是专门和有B2B、B2C业务的企业打交道;结算部门是专门和银行沟通,协商合作;而项目部特别为大客户设立,如Dell、铁路部门等等。
第三,技术不同。周凌君坦言,环球实业对IT技术要求在难度方面要求并不是最高。“说穿了不是高精尖的IT技术。”但是,特别强调技术在稳定性和安全性方面的高标准。因为提供的产品是网上支付的平台,一个卡号一个密码输入的背后,是钱的流动。安全和稳定绝对排在第一位。试想,如果A把钱划进B的账户,不论是钱没到位还是A的密码泄露,后果都不堪设想。环球实业绝对不能降低对IT技术在安全性和稳定性方面的标准,否则就是亏本生意。
3.2 光有金融知识也不够 产品的特性决定了企业结构不同于传统,产品特性同时也决定了对IT技术的特殊要求。而这些特点落实到人,也就有了新要求。作为国内首家开发并运营的第三方网上实时支付平台,环球实业的客户已经到达1100家,其中包括搜狐、网易、腾讯等全国知名网络公司,也包括卓越、携程、当当等著名电子商务网站[4]。
已经是业界代表的环球实业对员工的要求很能代表同类企业的要求。周凌君告诉记者,环球实业的员工要把在线支付和用户企业的企业模式相结合,通过对用户企业的业务流程整合,提高结算效率,降低成本。“要让客户明白你能为他带来什么。”围绕这一终极目标,环球实业对产品的技术人员、销售人员等都有新要求。在基本的IT技术之外,“他们需要对服务企业所在行业非常熟悉,要对银行结算流程了如指掌……”在周凌君眼里,环球实业提供在线支付平台的过程简直相当于咨询公司的过程。
透彻了解合作企业所在的行业。为了更好地将在线支付与企业的模式相结合,环球实业需要员工对项目所在行业充分了解。只有对行业充分了解,才能对企业的运作模式、赢利模式以及业务流程有认识,基于此才能提供对方另一种整合业务流程的方法,找到在线支付的切入点。
例如,环球实业与携程网合作,就需要对酒店业有透彻了解。携程网提供的服务主要包括网上定票和预定酒店。网上定票业务的在线支付比较简单,类似民航、铁路的定票系统。而酒店预定的网上支付就必须考虑到酒店业的特点。酒店是客人Checkin(入住)后开始计费,等客人Checkout(离开)时结算。客人可以在网上预定,但如果最终没有入住,那么酒店就会有损失,空房率就会增大。
如何保证酒店的利益不受损失,保证客人预定后不更改就需要设计合理的网上支付程序,定金所占的比重。如果没有对酒店业的充分认识,也就无法解决这些可能出现的问题,也就无法得到客户的青睐。
充分熟悉银行结算流程。周凌君告诉记者,环球实业的员工中有不少来自银行,因为网上支付需要对银行的结算过程了若执掌。“银行是我们重要的战略伙伴。”周凌君说,“环球实业已经和国内20多家金融机构的网上结算网关进行了链接,可实现近40种银行卡的网上实时支付。”
既然要实现近40种银行卡的网上结算,自然要对银行结算流程熟悉。你要明白,当消费者在网上购物后,通过在线支付,他账户里的钱是通过哪几个环节一步步到商家那里。面对消费者,你得告诉他钱是如何安全到对方账户,并保证支付成功。面对商家,你得告诉他钱是如何安全进账,多久能进,扣率是多少。只有对银行结算流程熟悉的基础上,作为第三方支付,环球实业才能把商家结算的时间缩减,程序简化,从而达到降低成本的目的[10]。
4. “电子商务”成长的烦恼 电子商务在国外兴起也不过10年时间,而在中国才短短5年多。应该说未来还有很大的发展空间。有调查显示,中国电子商务的交易总额在2004年达到4400亿元人民币,2005年将激增至6200亿元人民币。2004年底,
CNNIC(中国互联网络信息中心)的《中国互联网络热点调查报告》显示,有17.9%的网民在半年内有过网络购物经历,有过网络购物经历的被访者中有超过90%的人今后会继续进行网络购物;有63.7%没有购物经历的网民表示今后会尝试网络购物。充分证明了未来网上购物的光明前景[2]。
那么第三方支付平台的提供者能否借网上购物的东风而茁壮成长呢?周凌君谈了自己的看法。她认为前途是光明的,但成长过程也有烦恼。业内行家和有关专家都把支付手段缺乏看作阻碍中国电子商务发展的障碍之一。改变落后的支付手段为像环球实业这样的电子商务第三方支付平台搭建者提供了广阔的发展空间。
银行与银行之间,以及银行内部跨地域的壁垒存在使得银行和商家做支付网关的成本大大提高。而第三方支付平台和银行谈,可以拿下更低的扣率,增加商家的利润空间;同时节省银行网站的网关开发成本,形成消费者、商家、银行、第三方支付平台“四赢”的局面。这是类似环球实业的第三方支付平台作为独立支付机构的优势[3]。
但周凌君也表示,目前这个市场还处于起步阶段,所以国家还没有出台标准,行业内也没有形成统一标准,导致市场有点混乱。一些小企业会选择价格低廉而技术不过关的支付平台提供者,结果安全性、信用方面就会出现问题。导致不了解的人对网上支付产生恐惧心理,不信任。整个信用体系的完善,支付平台的安全性提升如果不得到解决,那会阻碍整个产业进入良性循环的轨道。
由此可见,中国的电子商务还有很长的路要走,作为开发人员我们也要有更多的知识才行。
参考文献[1] 网络 发展电子商务的20个理由 中华科技网 http://www.zk-web.com 2000年
[2] 张淑梅CNNIC(中国互联网络信息中心)的《中国互联网络热点调查报告》2003年
[3] 冯华 《发展电子商务的策略和战略》电子商务世界 2002年
[4] 徐薇 《整合营销战略基于电子商务的第三方物流研究》杭州理工大学学报(理工版)2001年
[5] 程新章 《电子商务人才—光有技术是不够的》计算机周刊 2004年
[6] 王峻涛 采访纪录2004年
[7] 罗汉洋 《B2C电子商务模式分析与策略建议》情报杂志 1999年
[8] 赵廷超 SARS肆虐,中国电子商务阳光灿烂 《电子商务世界》2003第5期
[9] 杭州大学网络经济研究中心 《信用与中国电子商务》2003年
[10] 网络 雅宝网站
http://www.yabuy.com/ 2004年
[11] 网络管理简介2004年
http://med.mc.ntu.edu.tw/~b5401025/wwwboard/messages/71.htmleBay基于J2EE的B2C的电子商务系统开发
——新闻发布与系统管理子系统设计与实现
摘要当今社会,科学技术突飞猛进,知识经济初见端倪。电子商务作为一种新型的贸易方式,极大地促进了全球经济贸易的发展,同时也正在改变人们的生活方式和思想观念。电子商务是指整个贸易活动实现电子化,交易各方以电子交易方式而进行的商业交易。世界贸易组织电子商务专题报告定义:电子商务是通过电子信息网络进行的生产、营销、销售和流通等活动。全球电子商务涉及世界各国,也为我国企业带来了新的发展机遇。所以本次毕业设计的选题就是一个电子商务系统的开发。
我们的系统主要应该实现的功能有用户的注册、登陆、密码找回、修改密码、浏览商品、购买商品以及系统的添加商品、商品展示、新闻发布等功能。系统设计中主要采用的技术为:JSP、Servlet、J2EE、B/S。我主要负责的是新闻发布和系统管理子系统。
关键词: JSP B2C Servlet J2EE B/S
AbstractTechnology advance rapidly nowadays, information economy firstly appeared. Electronic-commerce has strongly advanced the world’s economy and commerce’s development; it also changes our life style and anamnesis concept. Electronic-commerce is point to the electronic of world’s commerce activities, businessman trade with each other electronic-bargaining mode. The special topic of the World’s Trade Organize defines that: electronic-commerce is some activities such as produce, battalion, sell and circulate overpasses the electronic information network. The world’s electronic-commerce related to all the country of the world, it bring us a new develop opportunity. So this time our graduate chosen is the exploitation of an electronic-commerce system.
Our system should achieve the function of user’s register, login, get back password, change password, items browse, items purchase and administrator’s items add, items lay out, items’ news put out and so on. Our main technique in developing this system is: JSP, Servlet, J2EE, B/S. My job is the subsystem of news put out and system manage.
Key words: JSP B2C Servlet J2EE B/S
目录
目录11
引言11
正文44
1.系统概述44
1.1选题来源及意义44
1.2 技术背景55
1.2.1 JSP55
1.2.2 SERVLET88
1.2.3 J2EE1010
1.2.4 B/S模式1212
1.3 设计目标1313
1.4 开发工具简介1313
1.4.1 IBM WebSphere5.1.11313
1.4.2 Rational Rose 20031313
1.4.3 IBM DB2 8.21414
2. 系统分析1616
2.1 功能需求1616
2.1.1 用户部分应实现功能1616
2.1.2 后台应实现的功能1616
2.2 系统需求1616
2.2.1 服务器端需求1616
2.2.2 客户端需求1616
2.3维护需求1616
3.系统设计1717
3.1系统设计思想1717
3.2系统功能模块设计1919
3.2.1 用户登陆模块1919
3.2.2 产品展示模块2020
3.2.3 购物车功能模块2020
3.2.4 各功能模块描述2121
4.详细设计与实现2222
4.1数据字典2222
4.1.1 用户数据字典2222
4.1.2 订单数据字典2222
4.1.3 表单数据字典2222
4.1.4 产品数据字典2323
4.2 类成员描述2323
4.3用户界面的设计与功能代码的实现2424
4.3.1 登陆页面的设计2424
4.3.2 注册页面的设计2525
4.3.3 密码找回的设计2626
4.3.4 商品展示的设计2929
4.3.5 购物车页面的设计3131
5.开发遇到的问题与解决方案3333
6.总结体会3434
参考文献3535
引言
随着技术的发展和人们认识的不断深化,电子商务在社会中的应用日益广泛,其业务内容涵盖信息流、物流、资金流,由电子数据交换、网上浏览完成信息流,由售前和售后服务、商品配送完成物流,由电子支付完成资金流。电子商务的核心是借助信息技术来实现特定的商务活动,其根本目的是提高企业生产效率、降低经营成本[11]。
商品流通包括商流、信息流、物流与资金流,流通是资本运动必不可少的部分。对企业来说,商品流通的时间越是等于零或接近于零,企业的竞争力就越强,获利就更多。流通费用是企业的商品流通成本,它包括纯粹流通费用、保管费用和运输费用,纯粹流通费用包括直接与买卖商品有关的费用、簿记费用、货币生产上所支付的费用,这部分可以被看作是商流和资金流方面的费用,而保管和运输费用则是物流方面的费用。
电子商务环境下新的流通模式能产生对流通费用的节约,导致商流费用、物流费用、信息流费用、资金流费用的全面降低。
电子商务对流通费用的影响
我国的产品成本比较低,特别是劳动力成本,一般只占总成本的10%,这是我们一个巨大的优势。但我们的交易费用太高,一般占到成本的30%以上。居高不下的交易费用大大削弱了我们的竞争优势,因为低成本所支持的低价格依然是我国工商企业开展竞争的主要手段。生产环节的物质、劳动消耗的节约潜力是有限的,而降低流通费用、提高企业物流效率则还有较大空间。物流对企业而言,是继劳动力和自然资源之后的“第三利润源泉”,对整个国民经济而言,是有待开垦的处女地和新的经济增长点。据了解,2000年我国全社会流通费用达17880亿元,约占GDP的20%。如果全社会流通费用降低1个百分点,就可节约资金178亿元。为了降低流通费用,提高了企业竞争力,最理想的出路是电子商务。
电子商务与传统商务相比有明显的优势,主要表现在以下几方面。一是速度快。以前要几周才能到达的商务信息,现在通过因特网几秒钟即能收到。二是环节少。网上信息具有更新速度快、内容全面的特点,企业、客户通过因特网直接就可以掌握所需要的最新信息。任何企业均可将其信息搬上网供顾客查询,可克服电话信息不全面、不直观、不灵活的缺点。三是没有商品库存压力。一个经营良好的电子商场,甚至可以做到零库存,不需承担任何库存压力。
电子商务导致流通费用节约的革命集中体现在交易速度加快和流通时间缩短上。互联网将全球的生产者和客户(消费者)联系在一起,缩小了交易双方空间上的距离。交易者在网上解决从收集信息、签订交易合同到支付的整个过程,实体商品则由离客户最近的物流企业以最快的速度直接送至客户手中。除了物流配送之外,交易各方所在位置和距离远近已经几乎没有了任何区别。
经济全球化使市场越来越远,人类虽然拥有电话、传真等先进的通讯工具,但是流通渠道仍然冗长,交易方式没有根本变化,传统的流通模式使流通时间提速难以突破。电子商务真正实现了“用时间消灭空间”,电子商务使交易过程中所需要的信息流、商流、资金流在网上一次性完成,从根本上节约了流通费用,极大地加快了资金周转速度。传统流通模式具有资金密集型的特点,需要大量的投入,形成了高额的流通费用。电子商务环境下的流通模式使流通过程极大简化,中间商的减少使各种中间环节所需的费用节省了,流通费用自然大幅降低。
进一步发展电子商务的对策
随着因特网的普及,电子商务的应用呈现迅猛增长之势。电子商务的推广,使物流在整个商务活动中占有举足轻重的地位。电子商务带来对流通费用的极大节约,推动了物流的进一步发展,而物流也在促进电子商务的发展,因此可以说二者互相依存。实践表明,凡是电子商务业务蓬勃发展的企业,必是物流技术发达、流通费用较低的企业;相反,如果流通费用较高,则企业必然缺乏竞争力。因此,进一步发展电子商务,降低流通费用,提高企业竞争力刻不容缓。
建立快捷完善的配送系统,缺乏良好的物流配送系统,将导致较高的电子商务流通成本,这一点正是影响我国电子商务发展的重要障碍。由于缺乏大型流通企业为依托,许多电子商务公司只好各自与一些速递公司签约,或独自组织配送队伍,为客户运送货物。而且目前一些网站物流配送体系,是根据网络经济时代的“大而全”和“小而全”原则建立的,有悖于电子商务节约成本的精神,也违背了市场经济条件下专业化分工和协作的要求。为此,国家有关部门应鼓励组建高效快捷的物流配送中心,将实物产品送到买方手中。配送中心应是集商流,物流、信息流于一体的现代化经济设施,政府应统一规划,集中投入资金,首先在信息技术和网络建设较发达的城市建立物流配送中心,然后逐步向外辐射,形成遍布全国的配送中心网。要充分发挥配送中的线、手段、节点的作用。线指公路、铁路、海路等,手段指汽车、火车、飞机船舶等运输工具,节点指车站、集散中心、港口、机场等设施。总之,要根据各地区的地理条件、经济状况等实际情况建立适合本地区的有特色的配送体系。
国家与企业共同改进软硬件建设,软硬件建设是进行电子商务的基础,软硬件建设跟不上,发展电子商务便无从谈起。为此,一方面,国家继续加强信息化建设,拓宽网络带宽,提高传输速度,降低上网费用,另一方面,企业要对现有网站进行整改,尽量使交易流程清晰明了。在观念、组织、资金和技术允许的条件下,小规模率先在标准化程度高、交易量大、批发次数多、顾客流量大的商品或服务领域开展电子商务活动,以此为突破口带动企业电子商务活动的开展。
充分发挥政府的宏观规划与指导作用,将政府和网络企业协调起来,建立一种相得益彰的良性关系。一方面,政府通过一系列措施为电子商务的健康发展提供良好的环境,包括公平竞争的市场环境、规范有序的制度环境、适宜的政策法律环境和良好的社会发展环境,另一方面,政府也可以通过电子商务收集信息、获得市场资料、实现政府的电子化。
大力培养专门人才 普及电子商务知识,国家和教育机构应加大对IT人才的培养力度,培养出既懂IT技术又熟悉电子商务业务流程的综合性人才,使电子商务行业配备一定数量的IT技术和管理信息人才,解决人才制约的瓶颈。
电子商务根本性地改变了传统的交易方式,正实现了“用时间消灭空间”的目的,使交易过程中所需要的信息流、商流、资金流能够在交易主体间快速的传递,降低了流通费用,提高了企业竞争力,必将是未来商务的主流形式。
正文
1.系统概述
1.1选题来源及意义
以下为我们要进行B2C的电子商务的理由:
全世界大约有几千万人可访问World Wide Web(WWW),不管你是做什么买卖的,你都不能小觑这几千万人。要想加入这个圈子,并在其中表现出你有兴趣为他们提供服务,你就需要踏上WWW。你该知道,你的对手们是会这样干的[1]。
建立人际关系网络:做生意当中的许多周折无非就是跟他人取得联系。精明的商人都知道,重要的不是你知道什么,而是你认识谁。如果你向几千个,甚至几百万个潜在客户和合作伙伴递出名片,并说这就是我所从事的工作,如果你需要我的服务,可以通过它跟我联系,这样将会产生何等效果也就可想而知了。在WWW上,你每天24小时都可以轻而易举地这样做。
让商务信息唾手可得:基本的商务信息是什么?想想黄页广告就知道了。你什么时间营业?你是干什么的?怎么跟你联系?你接受哪种付款方式?你在何处?今日的特价商品是什么?如果你能让你的客户知道他们该跟你做生意的每一条理由的话,你的生意不就做得更好吗?而在WWW上,这些你都办得到。
向客户提供服务:让商务信息随手可得是向客户提供服务的最重要的途径之一。而采用WWW技术后,你会找到更多的向客户提供服务的方法。
提高大众兴趣:你没办法让《新闻周刊》来报道你的小店开张之事。但是如果你的网页作得新颖有趣的话,你可以让他们把你的网址写进去。有了网页信息,不管何人,也不论他身在何地,只要他通过Web了解到你,他都会成为你的网站的潜在访问者,从而进一步发展成潜在客户。
发布时效性强的材料:如果你手里有些材料不能在午夜之前发布,你会怎么办?如何发布季度收益报告、大奖获得者以及兼并等消息呢?现在这些信息可以在午夜或你定下的任何时候发布了,而且像图片、相关人物简介之类的有关材料也可以同时发布。像“到12:01,所有材料都可以从我们的站点上获得”这样的预告是做得到的。独家新闻只能由那些等待信息发布的人们分享,而不会落入提早发布你的信息的人手里。
卖东西:有一个最合适的比方:你认为电话是卖东西的最佳“场合”吗?或许不是吧!你或许也清楚,电话只是一种工具,让你同客户交流,进而帮助你卖东西。其实,我们也应当这样来看待WWW。当然,这两种技术是不一样的。但有一点是相同的,即别人在决定做你的客户之前,想了解你,看你是干什么的,你能给他们做点什么。这些你都可以在WWW上经济而方便地做到。然后,你就有望将他们转化成客户。
提供图像、声音和电影文件:假如你的装饰品很棒,人们看到它的话会真正喜欢上它;假如你的唱片集极佳却上不了广播,以至无人知晓其动听之处,而上了WWW,你就可以把声音、图像和短剧文件加进你的公司信息里,使之为你的潜在客户服务。这种事是任何手册之类的东西所做不到的。
获得人口高度密集的市场:WWW的用户可能是市场最大的人口群体。这些人通常受过大学教育或正在接受大学教育,正在挣大钱或很快就要挣大钱。在这个Internet圈子里,《Wired》杂志是当然之选,它获得Lexus或高端商家的广告是没问题的。这个圈子还可以算上在线商业企业,在未来几年内,这里的人口将是相当密集的。
回答常见问题:在你的机构内,任何一个回答电话问题的人都会告诉你,他们的时间主要花在一遍又一遍地回答相同的问题上。这些问题是客户或潜在客户在跟你做买卖之前想搞清楚的地方。如果我们能后把它们放到WWW页面上,你就会排除人们跟你做生意的一个障碍,从而为饱受折磨的话务员争得一些空闲时间。
其它还有诸如跟销售人员保持联系、开拓国际市场、创建24小时服务、迅速进行信息更改、收集客户反馈、对新服务、新产品进行市场定位、获得媒体效应、进入教育与年轻人市场、进入特殊市场以及为地方市场提供服务使用电子商务来做的话都会简单许多。
1.2 技术背景
本次我们的B2C电子商务系统设计过程中主要用到的技术为分别为JSP、Servlet、J2EE、B/S模式,以下为各技术的简要介绍:
1.2.1 JSP
Java Server Pages (JSP) 是由Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。它为创建动态Web应用提供了一个简捷而快速的方法。JSP 技术使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。IBM WebSphere Application Server 标准版为电子商务应用的Web 事务处理和交互提供了健全的开发环境,它提供可移植的、基于Java 的Web 应用程序开发平台, 支持JavaServer Page、Java Servlet 等技术[2]。
WebSphere Application Server 提供了JSP 引擎和标记支持。JSP 组合了服务器端脚本和标记,同时允许将显示逻辑(如HTML) 与业务逻辑区分开来。在每一个JSP 文件中,可以包括JSP 语法、HTML 标记、Servlet 标记、NCSA 标记及处理用户请求的内联Java 代码、访问可重用业务逻辑组件,如所需的小服务程序和基于Java 的Web 应用程序。
JSP的功能特性
内容的生成和显示进行分离
使用JSP 技术,Web 页面开发人员可以使用HTML 或者XML 标识来设计和格式化最终页面。使用JSP 标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans 组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans 中,那么其他人,如Web 管理人员和页面设计者,能够编辑和使
用JSP 页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP 标识和小脚本,生成所请求的内容,并且将结果以HTML(或者XML) 页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML 的Web 浏览器的完全可用性。
强调可重用的组件
绝大多数JSP 页面依赖于可重用的,跨平台的组件(JavaBeans 或者是Enterprise JavaBeans 组件) 来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
用标识简化页面开发
标准的JSP 标识能够访问和实例化 JavaBeans 组件,设置或者检索组件属性,下载Applet ,以及执行用其它方法更难于编码和耗时的功能。通过开发定制标识库, JSP 技术是可以扩展的。第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得 Web 页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用 Java 技术家族的一部分,以及Java 2(企业版体系结构) 的一个组成部分, JSP 技术能够支持高度复杂的基于Web 的应用。
健壮性和安全性
由于JSP 页面的内置脚本语言是基于Java 编程语言的, 而且所有的JSP 页面都被编译成为JavaServlet ,JSP 页面就具有Java 技术的所有好处,包括健壮的存储管理和安全性。作为Java 平台的一部分,JSP 拥有Java 编程语言一次编写,各处运行的特点。随着越来越多的供应商将JSP 支持添加到他们的产品中,可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。
JSP 访问模型
可用两种方法访问JSP 文件:
① 浏览器发送对JSP 文件的请求
JSP 文件会访问Bean 或其它能将生成的动态内容发送到浏览器的组件。图1 说明该JSP 访问模型。
图1.10JSP访问模型当Web 服务器接收到一个JSP 文件请求时,服务器将请求发送至WebSphere 应用服务器。WebSphere 应用服务器对JSP 文件进行语法分析并生成Java 源文件(被编译和执行为Servlet) 。Java 源文件的生成和编译仅在初次调用Servlet 时发生,除非已经更新了原始的JSP 文件。在这种情况下,WebSphere 应用服务器将检测所做的更新,并在执行它之前重新生成和编译Servlet 。
② 发送至Servlet 的请求
发送至Servlet 的请求生成动态内容, 并调用JSP 文件将此内容发送到浏览器。图2 说明了该访问模型。
图1.11Servlet访问模型该访问模型使得将内容生成从内容显示中分离出来更为方便。WebSphere 应用服务器支持HttpServiceRequest 对象和HttpServiceResponse 对象的一套新方法。这些方法允许调用的Servlet 将一个对象放入(通常是一个Bean) 请求对象中,并将该请求传递到另一个页面(通常是一个JSP 文件) 以供显示。调用的页面从请求对象中检索Bean , 并用JSP来生成客户机端的HTML。
比较两种模式,模式一更能通过JSP 灵活处理事务,模式二通过小服务程序来处理事务,能够较好地优化系统,提高安全性。
与数据库的连接
JSP 支持与JDBC 数据库和ODBC 数据库的连接。当连接至ODBC 数据库时, 可以使用Java Development Kit (JDK) 中包括的Sun JDBC - to - ODBC网桥驱动程序或其他供应商的ODBC 驱动程序。JSP 的IBM 扩展使得不是程序员的使用者也能轻松地创建访问数据库的Web 页面。以JSP0. 91 为例,用于数据库访问的JSP 标记有:< DBCONNECT > 标记, 用于指定JDBC 或ODBC 数据库、数据库驱动程序、用户标识符和连接口令。< USERID > 和< PASSWD > 标记,用于在请求时指定数据库用户标识符和标记, 而不必在< DBCONNECT> 标记中对它进行固定编码。< DBQUERY> 标记,用于建立与数据库的连接(由此JSP 页面上的< DBCONNECT > 标记指定) 并向数据库提交查询。< DBMODIFY> 标记,用于建立与数据库的连接(由此JSP 页面上的< DBCONNECT > 标记指定)然后在数据库中添加或更新记录。可以看出,JSP 可以方便地连接数据库,并对其中的数据进行处理。
JSP 实质上是嵌有JSP 语法标记的HTML 文件。它能接收客户的请求,执行程序逻辑,存取后台数据库,并返回动态的HTML结果。它的优点在于它把HTML 代码和程序逻辑分离。网页设计师可设计JSP 文件的用户界面,而把存取后台数据库等的程序逻辑留给JSP 程序员完成。JSP 规范的IBM 扩展中包括类似HTML 标记的JSP 标记,并且便于HTML编程人员将Java 的强大功能添加到Web 页面中。缺乏程序设计技巧的HTML 编程人员可开发用于访问数据库和可重用Java 组件的JSP ,例如小服务程序和JavaBean。程序员创建可重用Java 组件,并为HTML 编程人员提供组件名称和属性。数据库管理员则为HTML 编程人员提供数据库访问和表名信息。与其它脚本语言不同的是JSP 文件运行前需被编译成Java Servlet。如下是使用JSP 的一些建议:JSP 的标记并不多,较容易上手。但JSP 是以Java 语言为脚本的,所以前提要对Java 熟悉。一旦JSP 编写好后,访问速度是很快的(第一次启动较慢) ,因为JSP 对数据库的访问有优势。JSP 虽然容易编写,但没有什么调试的工具,一定要在运行中才能发现问题。所生成一个JSP 文件常常需要运行、修改来回的调试,这就要求在写JSP文件时要格外的细心,应该严格注意字母的大小写,同样的单词,可能会因为大小写的错误而导致系统无法正常运转。建立一个理想的动态网站需要多种技术的结合,不要局限于一种技术的应用。在实际中,可根据不同的需要来选择工具,例如,要想页面更美观,可以加入FLASH 动画,要增加一些辅助功能,也可以用Javascript 等编写一些应用程序。
1.2.2 SERVLET
Servlet是使用Java Servlet应用程序设计接口及相关类和方法的Java程序。它在Web服务器上或应用服务器上运行并扩展了该服务器的能力。Java Servlet对于Web服务器就好像Java Applet对于Web浏览器。Applet装入Web浏览器并在Web浏览器内执行,而Servlet则是装入Web服务器并在Web服务器内执行。Java Servlet API 定义了Servlet和服务器间的一个标准接口,这使Servlet具有跨服务器平台的特性[9]。
Servlet通过创建一个框架扩展服务器的能力,采用请求-响应模式提供Web服务。当客户机发送请求至服务器时,服务器将请求信息发送给Servlet,Servlet生成响应内容并将其传给Server,然后再由Server将响应返回给客户端。
Servlet的功能
Servlet的功能涉及范围很广。例如,Servlet可完成如下功能:
创建并返回一个包含基于客户请求性质的动态内容的完整的 HTML页面。
创建可嵌入到现有 HTML 页面中的一部分 HTML 页面(HTML 片段)。与其他服务器资源(文件、数据库、Applet、Java应用程序等)进行通信。
用多个客户机处理连接,接受多个客户机的输入,并将结果广播到多个客户机上。例如,Servlet 可以是多参与者的游戏服务器。
允许在单连接方式下传送数据的情况下,在浏览器上打开服务器至Applet的新连接,并将该连接保持在打开状态。允许客户机和服务器简单、高效地执行会话的情况下,Applet也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准(如 IIOP)进行通信。
对特殊的处理采用 MIME 类型过滤数据,例如图像转换和服务器端(包括SSI)。将定制的处理提供给所有服务器的标准例行程序。例如,Servlet 可以修改如何认证用户。
Java Servlet与现有网络技术的差别
Java Servlet与Applet之间的差别 从基本上来说,Servlet与 Applet 是截然相反的。Servlet可以被视为服务器方面的 Applet。Servlet在网络服务器内运行而Applet在网络浏览器内运行。浏览器提交一个请求执行Servlet的命令;而由于浏览器可直接命令Applet,所以它可以在运行时单机运行。
Java Servlet与CGI之间的差别 与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。其中最大的区别是在性能方面。在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而使用Servlet时,服务器上仅有一个Java虚拟机在运行,只有当Servlet被调用时,它才被加载,且直到Servlet更改时,它才会被再次加载。在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等。
通过使用Servlet API,开发人员不必担心服务器的内部运作方式。表格资料、服务器头、cookies等皆可通过Servlet处理。另外,因为Servlet是用Java写的,能将其从一个服务器移到另一个服务器以供发布,同时不必担心操作系统或服务器的类型。这一优点充分体现了Java"一次编写,随处运行"的优越特性。
Servlet的生命周期
Servlet的生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求、提供服务。在代码中,Servlet生命周期由接口javax.servlet.Servlet定义。所有的Java Servlet 必须直接或间接地实现javax.servlet.Servlet接口,这样才能在Servlet Engine上运行。Servlet Engine提供network Service,响应MIME request,运行Servlet Container。 javax.servlet.Servlet接口定义了一些方法,在Servlet 的生命周期中,这些方法会在特定时间按照一定的顺序被调用。如图14-1所示[3]。
图1.12Servlet访问周期图1.2.3 J2EE
J2EE是美国Sun公司刚刚推出的一种全新概念的模型,与传统的互联网应用程序模型相比有着不可比拟的优势。当今许多企业都需要扩展他们的业务范围,降低自身经营成本,缩短他们和客户之间 的响应时间,这就需要存在一种简捷,快速的服务于企业,合作伙伴和雇员之间。典型的说,提供这些服务的应用软件必须同企业信息系统(EIS)相结合,并提供新的能向更为广阔的用户提供的服务。这些服务要具备以下的特点[4]:
① 高可用性:来满足现在的全球商业环境
② 安全性:保护用户的隐私和企业数据的安全
③ 可依赖性和可扩展性:保证商业交易的正确和迅捷通常这些服务是由分布的应用程序组成的,包括前端数据端和后端数据源以及它们之间的一层或几层,这些中间层提供了把商业功能和数据与EIS相结合的功能。这些中间层把客户端从复杂的商业逻辑中分离出来,利用成熟的INTERNET技术使用户在管理上所花费的时间最小化。
J2EE正是降低了开发这种中间层服务的成本和复杂程度,因而使得服务可以被快速的展开,并能够更轻松的面对竞争中的压力。J2EE通过定义一种标准的结构来实现它的优势,如下:
① J2EE Application Programming Model ----一种用于开发多层次,瘦型客户用户程序的标准设计模型
② J2EE Platform----一个标准的平台,用来整合J2EE的应用程序,指定一系列的接口和方法
③ J2EE Compatibility Test Suite----一套兼容测试组件,用来检测产品是否同J2EE 平台兼容
④ J2EE Reference Implementation----用来示范J2EE的能力
J2EE 应用程序模型:J2EE是被设计为顾客,雇员,供应商,合作者提供企业级服务,这样的应用程序天生具有复杂性,他们要访问各种类型的数据并分发于大量的客户端。
为了更好的控制,管理这些应用程序,支持各种各样用户的商业功能要在中间层引入,中间层描述了一个被企业的信息技术部门紧紧控制的环境。
J2EE应用程序依靠于EIS层来存储企业的商业数据。这些数据和用来管理它的系统是企业中的核心[10]。
最初,双层结构(client-server)应用程序模型许诺将提高伸缩性与更广阔的功能,但不幸的是,直接向用户提供EIS服务的复杂性和再每台用户计算机上安装和维护商业逻辑所引起的管理上的问题成了很大的限制。而这些再双层结构中的限制在三层结构中已不存在了。如今要求既开发服务的商业功能,还要开发访问数据库和其他资源的代码,这是很复杂的,因为每一种多层结构的服务器都有它自己的应用模型,因此组建一直富有经验的开发队伍将是困难的。另外,随着服务规模的扩大,为了降低开支和加快响应速度,也要经常对其基层代码进行修改。
J2EE应用模型定义了一种建筑模型来让多层应用程序实现服务,并消除了以上的问题,提供了可伸缩的,易访问的,易于管理的方法。
J2EE应用模型把实现多层结构服务的工作划分为二部分:
开发者实现商业和表达逻辑,以及由J2EE平台提供的标准的系统服务。开发者可以依赖于这个平台为开发中间层服务中遇到的系统级硬件问题提供
J2EE应用模型为中间层应用程序提供了编译一次,任意运行的特点(write once,run anywhere),这种标准模型最小化了培训开发人员的费用。J2EE应用程序模型通过在建立多层应用程序中最小化其复杂程度,围简化和加速应用程序的开发迈出了重要的一步。
J2EE应用程序模型起始于Java程序语言和Java虚拟机,他们提供的不断提高的便携性,安全性和开发人员能力的提高是应用程序模型的基础。应用程序模型通常包括JavaBean组件模型,JavaBean是的为普通功能编写基于Java技术的代码更加容易,利用JavaBean的开发工具可以可视的定制,组合这些组件。
J2EE应用程序模型的一个主要优点便是在中间层的多层应用程序。在J2EE平台,中间层商业功能是由企业JavaBean实现的。这些企业Beans允许服务开发者集中于商业逻辑,并且让EJB Server处理传送稳定的,可升级服务的复杂工作。
JavaServerPages 技术和Servlets向客户层提供了易于访问的Internet型服务的中间层功能。Jsp技术使用户接口开发者更加容易的提供向任何浏览器用户提供动态页面的服务。Servlets让基于Java技术的开发者有更大的自由来在Java语言中提供完全的动态服务。
J2EE平台支持几种类型的客户。许多J2EE服务被设计为浏览器用户服务,这些服务通过动态生成Html页和表单来同客户端实现交互,而Jsp和Servlets是通过让这些商业数据通过某种方式格式化,使客户端更容易来同它工作。这些客户端可以是运行于浏览器中的JavaApplet和基于Java技术的程序。要注意的是安全是多层结构的关键部分,在J2EE中安全性总是通过平台和管理员来解决的。在大多案例中,服务方或客户方都不需要开发者与安全逻辑。
1.2.4 B/S模式
B/S模式中的B是指Brower(浏览器),S是指Server服务器。我们一般把课件中的部分放在服务器上,而服务器主要用来监听接收来自客户端的请求信息,并对其进行分析处理,与Web数据库建立联系,完成系统的各项功能。在客户端,用户使用浏览器软件即可进行页面学习、网上练习、网上讨论、网上测试等操作,不需要另外的软件和配置。浏览器作为客户层,提供图形用户界面,负责与用户进行交互。而这一种网络模式构架系统的所有源程序和文档资料都处于服务器端,这样,我们就只需配置一台性能相对稳定的、支持课件完全运行的服务器,而客户机(浏览器)端只要是一台能上网的机器即可,这样就完全解放了学习者的设备配置,只要服务端(一般指学校或远程教育提供商)进行一些必要的软件和硬件配置。所以,B/S是最佳选择[5]。
B/S模式的采用可以大大提高计算机和网络的使用率。我们在开发基于B/S模式的课件练习系统时,如何分配这两者之间的工作任务呢?是不是一味地把所有的处理工作都放在服务器上,让客户端基本上只是用于浏览课件的页面,其他什么都不做呢?正确做法是合理地分配双方的工作,以达到最佳的网络传输和使用效率。下面我们结合一个实例来说明这个“最佳”。
如果现在要开发一个网上数学教学课件的练习系统,我们首先会想到的是要做一个题库,用于存放数学题目的数据库。服务端应有数据库连接程序,从数据库中抽取题目,把它发送到某一个要做题的客户端。在初始状态时,浏览器端显示的是用户选题,让用户根据自己的需要来选择所要做的题目,这个选择条件发送回服务器端,让服务器来执行数据库查询程序,把满足条件的题目发送到客户端。在这里,如果我们数据库查询放在客户端的话,看上去好像提高了查询速度,其实不然。因为,要在客户端查询的话,必须在开始的时候就把整个题库一同发送过去,这要求相当的网络传输时间。
学习者在答题过程中,操作产生错误的概率是相当高的。如,有一道题是两个式子的相加减,在其后的文本框中让我们填写结果,如果结果是数字的话,文本框中肯定只能填写数字,否则就要求报错了,这个报错程序应放在服务器端还是客户器端呢?如果放在服务器端的话,当某一个学习者偶然出了100多次错,就要访问服务器100多次,这将会加重服务器的负担。所以,我们一般会把出错的程序放在客户端执行,比如可以用一些JavaScript写一些脚本语言来进行健壮性检测[6]。
1.3 设计目标
实现一个网络环境下的B2C的网上拍卖系统。系统应实现以下功能:用户的注册、登陆、密码找回、商品浏览、售出商品等功能以及系统后台对于用户登陆信息的校验、注册信息的校验、用户展示商品的校验、实现等功能。
主要相关技术指标:
①能正确实现系统要求的各项功能
②能正确完成与数据库的各项交互功能,用户界面友好
③具有一定的容错能力
④具有一定的可扩展性
1.4 开发工具简介
1.4.1 IBM WebSphere5.1.1
本次的开发环境为IBM 公司的WebSphere5.1.1,IBM WebSphere产品系列是一套典型的电子商务应用开发工具及运行环境,其在开发电子商务系统上的功能尤为强大。IBM WebSphere Studio提供了项目工作台和有关向导,这些向导可用来存取数据库、创建JavaBean和Servlet等等;IBM WebSphere Application Server (WebSphere应用服务器)是一个Web 应用服务器(内含IBM Http Server),它本质上是适合于servlet的Web 服务器插件,提供了增强的Servlet API和Servlets管理工具,并集成了JSP技术和数据库连接技术[7]。
1.4.2 Rational Rose 2003
Rational公司开发的
UML建模工具,它可以在
Rose建模中提供建立、视图、修改和操作组件的能力。Rational Rose包括了一体化建模语言(UML),OOSE及OMT。其中一体化建模语言(UML)由Rational公司的三位世界级面向对象技术的专家Grady Booch, Ivar Jacobson和Jim Rumbaugh通过对早期面向对象研究的设计方法的进一步扩展而得来的,为可视化建模软件奠定了坚实的理论基础。Rational Rose支持绝大多数软件工程常见的个人/公共工作平台。直到所编制软件共享之前,软件工程师都可以在个人工作平台修改自己的源代码和已建立的模型[10]。
Rational Rose提供对工业标准标记的独家支持,其中包括一体化建模(UML),这一即将在工业界成为标准的面向对象建模语言。一体化建模语言(UML)是早期面向对象研究和设计方法的进一步扩展,由世界级面向对象技术知名专家Grady Booch,Ivar Jacobson和Jim Rumbaugh对Booch,OOSE和OMT理论的研究基础上提出的,为可视化建模软件奠定了坚实的理论基础。一体化建模语言对建模语言提供了以下支持:使用事件模型、类和对象模型、组件模型、分布处理模型。
Rational Rose产品在支持UML的同时,也支持OOSE及OMT。
在公共平台,通过在配置管理和版本控制系统(CMVC),模型改变可以共享,换句话说,其他开发可以观察和利用这些改变。Rational ROSE能够与主要的CMVC工具集成。Rational Rose也可支持企业级数据库。
1.4.3 IBM DB2 8.2
DB2 是IBM公司的关系型数据库产品,是目前最流行的大型数据库之一,用户可以用结构化查询语言(SQL)对数据库对象进行创建、更新以及控制。它可以运行在不同的操作系统平台上,如大型操作系统 OS/390TM、MVS/ESA TM 、VM及VSE;中型操作系统 OS/400®、AIX、HP-UX、Solaris、SCO UNIX及SINIX;单用户及局域网操作系统 OS/2、Windows NT、Windows 95,同时它还支持DOS、Windows、Macintosh平台上的应用[9]。
DB2能存储所有类型的电子信息,它包括传统的关系型数据、结构化以及半结构化的二进制信息、多种语言文档及文本、图片、多媒体以及与特殊应用有关的信息。因此被称为通用数据库(Universal Database)。
DB2通用数据库是由DB2 Parallel Edition V1.2 和 DB2 Common Server V2.1.2两个产品组成的,这两个产品是在DB2/6000 Version 1的基础上发展起来的,但其侧重点不同,前者用于查询运行在多并行处理器上的大型数据库,为IBM 的RS/6000TM SPTM 优化查询能力而开发;后者是为满足UNIX、OS/2 、Windows NT平台上的通用SQL服务器市场而设计,称为数据库服务器。DB2 Parallel Edition V1.2和DB2 Common Server V2.1.2的结合使DB2拥有丰富的功能不仅具有从膝上型电脑到巨型并行系统、支持大量并行事务的处理能力,而且能支持联机分析或OLAP处理。OLAP处理是以在数据仓库、数据挖掘或决策支持等应用中由少数用户运行非常复杂的查询为显著特征。DB2 UDB也包括Web集成,并将Net.Data TM 包含在数据库服务器中,还有一些集成工具如数据复制和作业调度器。
DB2的主要软件部件
DB2 UDB Version5有四种不同的数据库服务器产品:单用户版、工作组版、企业版及企业扩展版,功能也依次越来越强。其软件部件非常丰富(如图1-1所示),主要软件部件有:
①数据库引擎(Database Engine) 提供DB2基本的主要功能。它管理和控制所有对数据的访问、提供事务管理和数据保护、确保数据一致性和并发控制。
②命令行处理器(Command Line Processor , CLP) 用于动态执行SQL请求或DB2的命令。
③管理工具(Administration Tools) 用于帮助管理数据库的图形用户界面的工具的集合。包括:
- 控制中心(Control Center),进行配置、备份与恢复、目录管理。
- 命令中心(Command Center),执行命令和生成命令脚本。
- 脚本中心(Script Center),执行SQL和生成SQL脚本。
- 事件分析器(Event Analyzer),分析事件信息。
- 运行日志(Journal),分析提交作业的状态。
- 工具设置(Tools Settings),创建复制、设置终止符和创建Alter Center选件。
④应用(Application)可以用下列方式访问数据库:
- Embedded SQL
- Call Lever Interface ODBC
- Java
- Application Programming Interfaces (APIs)
⑤外部工具(External tools)提供相应的附加功能。
2. 系统分析
2.1 功能需求
2.1.1 用户部分应实现功能
用户部分应实现的功能:登陆、注册、密码找回、修改密码、浏览商品、购买商品、退出登陆等功能。
2.1.2 后台应实现的功能
后台应实现的功能:用户登陆信息的校验、注册信息的校验、用户取回密码的校验、用户修改密码的校验以及购买商品的校验等用户部分的功能实现以及展示新商品、发布打折信息、更新旧商品等系统管理部分功能的实现。
2.2 系统需求
2.2.1 服务器端需求
处理器:奔腾III 1.6GHz以上
内存: 512M以上
WEB服务器:IBM WebSphere 5.1.1自带测试服务器
数据库服务器:IBM DB2 8.2
操作系统:WinNT 操作系统
开发工具:IBM WebShphere 5.1.1,IBM DB2 8.2,Rational Rose 2003
2.2.2 客户端需求
处理器: 166MHz以上
内存: 64M以上
操作系统:Win98以上视窗
浏览器: IE 6.0
协议 : TCP/IP
2.3维护需求
本系统的操作人员要求能操作Windows NT操作系统的水平即可。维护人员须有一定的数据库管理和网络安全方面的知识。
3.系统设计
3.1系统设计思想
我们把系统分为3个主要功能模块:用户登陆模块、商品展示模块和购物车功能模块。同时,系统网络部分交互采用如下构架模式进行设计:
图3.1B/S模型各模块之间的详细操作参考以下的4个活动图
图3.1 用户登陆活动图 图3.2 用户注册活动图图3.3 找寻密码活动图 图3.4 用户购物活动图各页面主要设计依据为下面的两个顺序图:
图3.5 登陆与展示模块顺序图图3.6 购物车模块顺序图3.2系统功能模块设计
3.2.1 用户登陆模块
①进入登陆页面后,用户输入包括用户名和密码的登陆信息,确认提交后,系统对登陆信息进行有效性验证,如果有效就跳到产品展示页面,无效就提示登陆失败并返回登陆页面。用户可以在此选择继续登陆或者注册和找回密码。
②进入注册页面后,当用户填写了包括用户姓名、密码、密码找回提示问题、密码找回答案、等各项信息并确认提交后,系统对用户的注册信息进行有效性验证,有效就跳转到登陆页面,无效则提示注册失败并返回注册页面。
③如有用户忘记自己的用户密码,则可以点击“忘记密码”按钮,这时,系统将会跳转进入密码取回问答阶段,这里用户需要输入密码提示和答案,当密码提示和用户名效验正确,用户会获取密码,并得到更换密码提示。并跳转回登陆界面。若中途问题答错,提示用户选择“上一步”问题或者“放弃”。
图3.7 登陆模块用例图3.2.2 产品展示模块
在产品展示页面,用户可以浏览选择自己喜欢的商品,单击“详情”以后可以查看详细信息,选中自己喜欢的商品后可以选择“购买”,然后系统会跳转到购物车模块。
图5.2 产品展示用例图3.2.3 购物车功能模块
在该模块中用户可以看到自己的购物车信息,用户可以选择的操作有清空购物车、继续购买和跳转到确认购买的下一步操作,在确认购买页面用户确认交易后购买过程结束。
图5.3 购物车模块用例图3.2.4 各功能模块描述
表3.1 登录功能模块设计
名 称 | 登陆功能模块 | 系统代称 | S01 |
---|
接 口说 明 | 输入 | 在登陆页面的用户名、密码输入栏用键盘或鼠标输入;或点击注册或找回密码按钮。 |
输出 | 输出到表Customers,并根据操作的不同转到相应下一个页面:loginFailure.jsp;loginOK.jsp;registerOK.jsp; registerFailure.jsp;showQuestion.jsp; |
功 能说 明 | 提供用户注册、用户登陆、与密码找回功能。 |
运行环境说明 | 网络能连接服务器,具备浏览器,正确安装协议。 |
调用关系说明 | 调用模块 | 无 |
被调用模块 | 无 |
表3.2 展示功能模块描述
名 称 | 展示功能模块 | 系统代称 | S02 |
---|
接 口说 明 | 输入 | 数据库表Products里相应数据项储存值。 |
输出 | 页面productList.jsp与productDetial.jsp。 |
功 能说 明 | 从数据库查询产品相关所有信息展示给客户,以供客户选择,并支持session到购物车模块 |
运行环境说明 | 网络能连接服务器,具备浏览器,正确安装协议,登陆成功。 |
调用关系说明 | 调用模块 | 无 |
被调用模块 | 购物车模块 |
表3.3 购物车功能模块描述
名 称 | 购物车功能模块(交易模块) | 系统代称 | S03 |
---|
接 口说 明 | 输入 | 从展示功能模块传值 |
输出 | lucky.jsp与productList.jsp页面 |
功 能说 明 | 根据客户在productList.jsp里选择购买的商品提供虚拟购物车并完成交易系统,提供客户修改购买意向的操作,退出的操作 |
运行环境说明 | 网络能连接服务器,具备浏览器,正确安装协议,登陆成功。 |
调用关系说明 | 调用模块 | 展示模块 |
被调用模块 | 无 |
4.详细设计与实现
4.1数据字典
4.1.1 用户数据字典
表4.1.1 Table_Customers为记录客户信息所创建,使用于用户表Table_Customers为记录客户信息所创建,使用于用户注册时登记信息;用户登陆时为效验登陆信息提供原始数据;用户忘记密码要求恢复密码操作时对客户的密码保护与密码保护问答。
表4.1.1 Table_CustomersKey | Name | Type | Length | Null |
---|
KEY | USERNAME | VARCHAR | 10 | FALSE |
/ | PASSWORD | VARCHAR | 10 | FALSE |
/ | QUESTION | VARCHAR | 10 | FALSE |
/ | ANSWER | VARCHAR | 10 | FALSE |
4.1.2 订单数据字典
表 4.1.2 Table_Orderdetails为纪录用户购买操作时纪录顾客名和商品总价的时候使用。
表 4.1.2 Table_OrderdetailsKey | Name | Type | Length | Null |
---|
KEY | PRICES | VARCHAR | 10 | FALSE |
/ | NAME | VARCHAR | 10 | FALSE |
/ | OrderID | INTEGER | 4 | FALSE |
/ | ProductID | INTEGER | 4 | FALSE |
/ | Quantity | INTEGER | 4 | FALSE |
4.1.3 表单数据字典
表4.1.3 Table_Orders为纪录订单中的如下细则而建立:送货地址、顾客邮编、送货方式、信用卡号、订单日期。
表4.1.3 Table_OrdersKey | Name | Type | Length | Null |
---|
KEY | DEVERYMETHOD | VARCHAR | 10 | FALSE |
/ | CONSIGNEENAME | VARCHAR | 10 | FALSE |
/ | CONSIGNEEADDRESS | VARCHAR | 10 | FALSE |
/ | ORDERDATE | VARCHAR | 30 | FALSE |
/ | CONSIGNEEPOSTALCOST | VARCHAR | 10 | FALSE |
/ | POSTAGE | VARCHAR | 10 | FALSE |
/ | ORDERID | INTEGER | 4 | FALSE |
/ | CUSTOMERID | VARCHAR | 10 | FALSE |
/ | STATUS | INTEGER | 4 | FALSE |
4.1.4 产品数据字典
表4.1.4 Table_Products主要纪录产品信息。其中产品ID、供货方ID、库存量、已卖出数量为INT型,产品代码、产品名、类别码、图片、修改人、修改日期、描述为字符串型(鉴于某些产品不一定有图片,图片字段设定可为空并设定长度为50)。市场价格、供货方价格与现价为双精度浮点数。
表4.1.4 Table_ProductsKey | Name | Type | Length | Null |
---|
KEY | PRODUCTID | INTEGER | 4 | FALSE |
/ | PRODUCTNAME | VARCHAR | 10 | FALSE |
/ | CODING | VARCHAR | 10 | FALSE |
/ | SUPPLIERID | INTEGER | 4 | FALSE |
/ | CATEGORYID | VARCHAR | 10 | FALSE |
/ | SUPPLIERPRICE | DOUBLE | 8 | FALSE |
/ | MARKETPRICE | DOUBLE | 8 | FALSE |
/ | PRICE | DOUBLE | 8 | FALSE |
/ | PICTURE | VARCHAR | 10 | TRUE |
/ | STOCKNUMBER | INTEGER | 4 | FALSE |
/ | SALENUMBER | INTEGER | 4 | FALSE |
/ | MODIFYMAN | VARCHAR | 10 | FALSE |
/ | MODIFYDATE | VARCHAR | 10 | FALSE |
/ | DESCRIPTION | VARCHAR | 10 | FALSE |
4.2 类成员描述
用户信息是由用户在注册时输入的,包括用户姓名、密码、密码找回提示问题、密码找回答案等信息。
产品展示中包括的产品信息有产品名称、产品类型、产品价格、当前市场价格、产品图片、详细描述等信息。
纪录表单中包括的相关信息有顾客购买的的商品、送货地址、顾客邮编、送货方式、信用卡号、订单日期等信息。
相关各类成员的详细信息可以参见系统总体类图。
图4.1 系统总体类图4.3用户界面的设计与功能代码的实现
4.3.1 登陆页面的设计
图4.2 登陆页面登陆页面部分关键代码:
out.println(username);
out.println(password);
Connection conn=pool.getConnection();
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="SELECT * FROM Customers WHERE Username='"+username.trim()+"'";
ResultSet rsLogin=stmt.executeQuery(sql);
if(!rsLogin.next() ){
response.sendRedirect("loginFailure.jsp");
}else if(!password.trim().equals( rsLogin.getString("Password").trim() )){
response.sendRedirect("loginFailure.jsp");
}else{
session.putValue("username",username);
response.sendRedirect("loginOK.jsp");
}
rsLogin.close();
stmt.close();
pool.releaseConnection(conn);
4.3.2 注册页面的设计
图4.3 注册页面注册页面部分关键代码:
Connection conn=pool.getConnection();
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql1="SELECT * FROM Customers WHERE Username='"+username+"'";
ResultSet rsLogin=stmt.executeQuery(sql1);
if(rsLogin.next()){
response.sendRedirect("registerFailure.jsp");
}else{
String sql2="INSERT INTO Customers(Username,Password,Question,Answer) VALUES('"+username+"','"+password+"','"+question+"','"+answer+"')";
stmt.executeUpdate(sql2);
response.sendRedirect("registerOK.jsp");
}
rsLogin.close();
stmt.close();
pool.releaseConnection(conn);
4.3.3 密码找回的设计
图4.4 找回密码第一步图4.5 找回密码第二步图4.6 找回密码第三步密码找回页面部分关键代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>找回密码第1步:输入用户名</title>
</head>
<body>
<h1>找回密码第1步:输入用户名
</h1>
<center>
<form name="form1" method="post" action="../loginBean/showQuestion.jsp">
<table width="300" border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="100" align="right">用户名:</td>
<td align="left"><input name="username" type="text" id="username"></td>
</tr>
</table>
<p>
<input type="reset" name="Reset" value="重 写">
<input type="submit" name="Submit" value="下一步">
</p>
</form>
<p> </p>
</center>
</body>
</html>
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="pool" scope="application" class="eshop.PoolBean"/>
<%
String username=new String(request.getParameter("username").getBytes("8859_1"));
Connection conn=pool.getConnection();
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="SELECT * FROM Customers WHERE username='"+username+"'";
ResultSet rsLogin=stmt.executeQuery(sql);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>找回密码第2步:回答问题 </title>
</head>
<body>
<h1>找回密码第2步:回答问题
</h1>
<center>
<%
if(rsLogin.next()){
%>
<form name="form1" method="post" action="../loginBean/showPassword.jsp">
<table width="400" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="150" align="right">您的用户名:</td>
<td align="left"><%= rsLogin.getString("Username") %></td>
</tr>
<tr>
<td align="right">您的提示问题:</td>
<td align="left"><%= rsLogin.getString("Question") %></td>
</tr>
<tr>
<td align="right">您的回答:</td>
<td align="left"><input name="answer" type="text" id="answer"></td>
</tr>
</table>
<p>
<input name="username" type="hidden" id="username" value="<%= username%>">
<input type="button" name="Button" value="上一步" onClick="JavaScript:history.go(-1)">
<input type="reset" name="Reset" value="重 设">
<input type="submit" name="Submit" value="下一步">
</p>
</form>
<%
}else{
%>
<p>您输入的用户名无效!</p>
<p>
<input type="button" name="Button" value="上一步" onClick="JavaScript:history.go(-1)">
</p>
<%
}
rsLogin.close();
stmt.close();
pool.releaseConnection(conn);
%>
</center>
</body>
</html>
4.3.4 商品展示的设计
图4.7 商品展示页面商品展示页面部分关键代码:
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
String sql="SELECT * FROM Products";
ResultSet rsProducts=stmt.executeQuery(sql);
rsProducts.last();//将指针移动到最后一条记录
rowCount=rsProducts.getRow();//取得ResultSet中记录的总条数
pageCount=((rowCount%pageSize)==0)?(rowCount/pageSize):(rowCount/pageSize+1);//计算总页数
if(pageIndex==null||pageIndex.equals("")){
showPage=1; //URL中不带参数的情况
}else{
//try{
showPage=Integer.parseInt(pageIndex); //URL中带参数的情况
//}
//catch(NumberFormatException e){
// showPage=1;
//}
if(showPage<1) {
showPage=1;//URL中应显示的页面小于1的处理
}else if(showPage>pageCount){
showPage=pageCount;//URL中应显示的页面大于页面总数的处理
}
}
if(showPage*pageSize>=rowCount){
pageNumber=rowCount-(showPage-1)*pageSize;
}else{
pageNumber=pageSize;
}
if(pageCount>0){
rsProducts.absolute((showPage-1)*pageSize+1);
}
4.3.5 购物车页面的设计
图4.8 购物车页面购物车页面部分关键代码:
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
String sql = "SELECT * FROM PRODUCTS WHERE ProductID=" + productID;
ResultSet rsProducts = stmt.executeQuery(sql);
if(rsProducts.next()){
price=rsProducts.getDouble("Price");
productName=rsProducts.getString("ProductName");
description=rsProducts.getString("description");
}else{
flag=false;
rsProducts.close();
stmt.close();
5.开发遇到的问题与解决方案
系统提示数据库驱动程序不正确。解决方案:下载最新的驱动程序。
DB2 7.2中不能直接修改数据库表中元素的问题。解决方案:更换更新版本数据库DB2 8.2。
页面中文显示为乱码的问题。解决方案:更改编码类型为GB2312。
页面间参数传递问题。解决方案:使用session进行参数的传递。
界面设计的问题。解决方案:多查阅教程和其它资料,争取做得更加美观。
各方面的功能还不够完善的问题。解决方案:在后续的版本中进一步补充,使之更能符合用户的需求。
6.总结体会
本次毕业设计跟我们以往的课程设计相比有很大的不同。首先:前期的选题时不确定的这样更有利于我们在充分的查阅资料后选择一个自己适合的题目,从而极大的提高我们做设计的积极性和选题的合理性。其次:文档方面由前期的毕业设计任务书、开题报告、文献综述到中期的中期报表,再到后期的毕业设计论文。前面不管哪一步如果做得不好都会影响到后面的设计进程,相反,如果前面的准备工作做得好,后面的设计就会变得相对容易许多。最后:开发工具上面我们使用的是IBM公司的WebSphere 5.1.1、DB2 8.2、Rational Rose 2003,这些都是我们在以前的课程设计中所没有接触过的,虽然给我们的设计带来了一定的难度,但同时也是我们对于这几种开发工具有了深入的了解。同时在此次设计中也加强了我们团队协作的精神,相信对于我们以后的学习和工作都会有很大的好处。
当然,由于此次的开发工具功能实在强大,与我们以往接触到的有很大不同,而我们所能找到的相关方面的资料实在是有限,使得我们在掌握他们并用来开发上造成了很大的困难,所以此次设计的完成情况不是很理想,有些功能虽然我们想到了,但终于还是不够完善,如果可能的话在以后的时间里我们会尽量完善系统的功能。
参考文献
[1]熊节 做电子商务的20条理由 中华科技网 2000年
[2]王变琴、刘一凡 《基于WebSphere的JSP技术》2000年
[3]刘晓华 Java Servlet概述 2004.11.23
[4]周悦芝 J2EE概述 2004年
[5]佚名 谈谈MIS系统平台2003年
[6]夏瑜 略论基于B/S模式网络课件练习系统 2002.3.21
[7]廖荣贵、张钰汶IBM WebSphere 开发工具详解 2004年
[8]UML软件工程组织
http://www.uml.org.cn/ 2003年
[9]王晓红 DB2 简介 2002年
[10] 佚名 中国J2EE技术论坛 2004年
[11] 张淑梅CNNIC(中国互联网络信息中心)的《中国互联网络热点调查报告》2003年