-新闻发布与系统管理子系统设计与实现
学院、专业学生姓名
指导教师姓名下发日期
(任务起止日期:20年月日至20年月日)
毕业设计(论文)开题报告
中期汇报表
版本兼容性WebSphere5.x产品家族提供了很多向后兼容性。WebSphereStudioApplicationDeveloper5.x版对J2EE1.2和1.3应用程序的开发都提供支持。事实上,它还可以和WebSphereApplicationServer4.0、5.0,以及5.1版的运行时测试环境一起安装。此外,在WebSphereApplicationServerV5.x上,J2EE1.2和1.3应用程序都可以运行。
图1说明了WebSphereStudio不同版本的使用方式。(在写本文时,WebSphereStudioApplicationDeveloper5.1.1版已经可以使用了。建议使用此版本来进行所有的WebSphere开发。)
图1.WebSphereStudioV5.1可以用来创建WebSphereApplicationServerV4和V5的应用程序
为WebSphereApplicationServerV4.0开发和封装的应用程序代码,一般不用修改就可以在WebSphereApplicationServerV5.x上运行。图2显示了可能和5.x版有关的一些配置。一个WebSphereApplicationServerV5.x实例可以同时运行J2EE1.2和1.3应用程序。
图2.WebSphereApplicationServerV4只能运行J2EE1.2应用程序,在V5版上,J2EE1.2和1.3应用程序将都可以运行
如图2所示,在WebSphereApplicationServerV5.1上运行J2EE1.2应用程序完全有效。这意味着可以只升级您的运行时环境而不需升级您的应用程序。您也可以只升级那些需要使用5.1版特有功能的应用程序,而保持其他应用程序的当前状态。
更好的是,J2EE1.3EnterpriseApplicationArchive(EAR)文件可以包含J2EE1.2模块(如图3)。这意味着,如果需要升级到J2EE1.3,可能只需要升级那些需要升级的部分。实际上,EJB2.0模块定义EJB1.1bean是很灵活的。如果必要,您可以升级部分,而不是所有的bean以利用特有功能。
图3.J2EE1.2模块可以被部署在J2EE1.3企业应用程序中
版本之间的兼容性并不包括对运行时环境的管理。应用服务器的管理方式已经发生了巨大的变化。WebSphereApplicationServerV4.0管理域(domain)时所依赖的管理数据库已经不复存在,取而代之的是在WebSphereApplicationServerV5.x中的XML配置文件。甚至术语也已经发生了变化,域已经被单元所取代。
J2EE全面介绍
本文从五个方面对J2EE进行了比较全面的介绍。从J2EE的概念说起,到它的优势,到J2EE典型的四层模型,和它的框架结构,最后是J2EE十三种核心技术的一个简介。本文分门别类的对J2EE中的服务,组件,层次,容器,API都做了比较详细的介绍,相信看完此文,读者会对J2EE有一个更清晰的认识。一.J2EE的概念目前,Java2平台有3个版本,它们是适用于小型设备和智能卡的Java2平台Micro版(Java2PlatformMicroEdition,J2ME)、适用于桌面系统的Java2平台标准版(Java2PlatformStandardEdition,J2SE)、适用于创建服务器应用程序和服务的Java2平台企业版(Java2PlatformEnterpriseEdition,J2EE)。
J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持EnterpriseJavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
二.J2EE的优势J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:
三.J2EE的四层模型J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是J2EE典型的四层结构:
运行在客户端机器上的客户层组件运行在J2EE服务器上的Web层组件运行在J2EE服务器上的业务逻辑层组件运行在EIS服务器上的企业信息系统(Enterpriseinformationsystem)层软件
文献综述:
基于B2C的电子商务与开发
摘要:
主要内容:
3.1尽管同属于IT业,但侧重电子商务的企业与传统的IT企业相比,有很大不同。
第一,产品不同。环球实业提供的网上支付平台,也就是互联网实时在线支付系统。通过这个系统,信用卡持卡人可以把资金划给商户,商户可以结算资金。举例来说,你在网上订了《时尚》杂志,那么通过环球实业提供的在线支付平台,你能用招商银行“一卡通”(或者别的银行卡)进行支付,而杂志社可以通过这个系统结算包括你在内所有预订杂志的费用。产品的价值就体现在消费者和商家的使用过程,所以产品没有实体、没有行状,是软性的、虚拟的。
第二,结构不同。环球实业的企业结构是以业务为模块。不同于传统企业的一般结构,环球实业划分成电子商务、客户服务、技术、结算、商务、项目等等部门。其中商务部门就是专门和有B2B、B2C业务的企业打交道;结算部门是专门和银行沟通,协商合作;而项目部特别为大客户设立,如Dell、铁路部门等等。
第三,技术不同。周凌君坦言,环球实业对IT技术要求在难度方面要求并不是最高。“说穿了不是高精尖的IT技术。”但是,特别强调技术在稳定性和安全性方面的高标准。因为提供的产品是网上支付的平台,一个卡号一个密码输入的背后,是钱的流动。安全和稳定绝对排在第一位。试想,如果A把钱划进B的账户,不论是钱没到位还是A的密码泄露,后果都不堪设想。环球实业绝对不能降低对IT技术在安全性和稳定性方面的标准,否则就是亏本生意。
3.2光有金融知识也不够
产品的特性决定了企业结构不同于传统,产品特性同时也决定了对IT技术的特殊要求。而这些特点落实到人,也就有了新要求。作为国内首家开发并运营的第三方网上实时支付平台,环球实业的客户已经到达1100家,其中包括搜狐、网易、腾讯等全国知名网络公司,也包括卓越、携程、当当等著名电子商务网站[4]。
已经是业界代表的环球实业对员工的要求很能代表同类企业的要求。周凌君告诉记者,环球实业的员工要把在线支付和用户企业的企业模式相结合,通过对用户企业的业务流程整合,提高结算效率,降低成本。“要让客户明白你能为他带来什么。”围绕这一终极目标,环球实业对产品的技术人员、销售人员等都有新要求。在基本的IT技术之外,“他们需要对服务企业所在行业非常熟悉,要对银行结算流程了如指掌……”在周凌君眼里,环球实业提供在线支付平台的过程简直相当于咨询公司的过程。
透彻了解合作企业所在的行业。为了更好地将在线支付与企业的模式相结合,环球实业需要员工对项目所在行业充分了解。只有对行业充分了解,才能对企业的运作模式、赢利模式以及业务流程有认识,基于此才能提供对方另一种整合业务流程的方法,找到在线支付的切入点。
例如,环球实业与携程网合作,就需要对酒店业有透彻了解。携程网提供的服务主要包括网上定票和预定酒店。网上定票业务的在线支付比较简单,类似民航、铁路的定票系统。而酒店预定的网上支付就必须考虑到酒店业的特点。酒店是客人Checkin(入住)后开始计费,等客人Checkout(离开)时结算。客人可以在网上预定,但如果最终没有入住,那么酒店就会有损失,空房率就会增大。
如何保证酒店的利益不受损失,保证客人预定后不更改就需要设计合理的网上支付程序,定金所占的比重。如果没有对酒店业的充分认识,也就无法解决这些可能出现的问题,也就无法得到客户的青睐。
充分熟悉银行结算流程。周凌君告诉记者,环球实业的员工中有不少来自银行,因为网上支付需要对银行的结算过程了若执掌。“银行是我们重要的战略伙伴。”周凌君说,“环球实业已经和国内20多家金融机构的网上结算网关进行了链接,可实现近40种银行卡的网上实时支付。”
4.“电子商务”成长的烦恼
CNNIC(中国互联网络信息中心)的《中国互联网络热点调查报告》显示,有17.9%的网民在半年内有过网络购物经历,有过网络购物经历的被访者中有超过90%的人今后会继续进行网络购物;有63.7%没有购物经历的网民表示今后会尝试网络购物。充分证明了未来网上购物的光明前景[2]。
那么第三方支付平台的提供者能否借网上购物的东风而茁壮成长呢?周凌君谈了自己的看法。她认为前途是光明的,但成长过程也有烦恼。业内行家和有关专家都把支付手段缺乏看作阻碍中国电子商务发展的障碍之一。改变落后的支付手段为像环球实业这样的电子商务第三方支付平台搭建者提供了广阔的发展空间。
银行与银行之间,以及银行内部跨地域的壁垒存在使得银行和商家做支付网关的成本大大提高。而第三方支付平台和银行谈,可以拿下更低的扣率,增加商家的利润空间;同时节省银行网站的网关开发成本,形成消费者、商家、银行、第三方支付平台“四赢”的局面。这是类似环球实业的第三方支付平台作为独立支付机构的优势[3]。
但周凌君也表示,目前这个市场还处于起步阶段,所以国家还没有出台标准,行业内也没有形成统一标准,导致市场有点混乱。一些小企业会选择价格低廉而技术不过关的支付平台提供者,结果安全性、信用方面就会出现问题。导致不了解的人对网上支付产生恐惧心理,不信任。整个信用体系的完善,支付平台的安全性提升如果不得到解决,那会阻碍整个产业进入良性循环的轨道。
由此可见,中国的电子商务还有很长的路要走,作为开发人员我们也要有更多的知识才行。
参考文献
[2]张淑梅CNNIC(中国互联网络信息中心)的《中国互联网络热点调查报告》2003年
[3]冯华《发展电子商务的策略和战略》电子商务世界2002年
[4]徐薇《整合营销战略基于电子商务的第三方物流研究》昆明理工大学学报(理工版)2001年
[5]程新章《电子商务人才—光有技术是不够的》计算机周刊2004年
[6]王峻涛采访纪录2004年
[7]罗汉洋《B2C电子商务模式分析与策略建议》情报杂志1999年
[8]赵廷超SARS肆虐,中国电子商务阳光灿烂《电子商务世界》2003第5期
[9]北京大学网络经济研究中心《信用与中国电子商务》2003年
[11]网络管理简介2004年
基于J2EE的B2C的电子商务系统开发
——新闻发布与系统管理子系统设计与实现
摘要
当今社会,科学技术突飞猛进,知识经济初见端倪。电子商务作为一种新型的贸易方式,极大地促进了全球经济贸易的发展,同时也正在改变人们的生活方式和思想观念。电子商务是指整个贸易活动实现电子化,交易各方以电子交易方式而进行的商业交易。世界贸易组织电子商务专题报告定义:电子商务是通过电子信息网络进行的生产、营销、销售和流通等活动。全球电子商务涉及世界各国,也为我国企业带来了新的发展机遇。所以本次毕业设计的选题就是一个电子商务系统的开发。
我们的系统主要应该实现的功能有用户的注册、登陆、密码找回、修改密码、浏览商品、购买商品以及系统的添加商品、商品展示、新闻发布等功能。系统设计中主要采用的技术为:JSP、Servlet、J2EE、B/S。我主要负责的是新闻发布和系统管理子系统。
关键词:JSPB2CServletJ2EEB/S
Abstract
Technologyadvancerapidlynowadays,informationeconomyfirstlyappeared.Electronic-commercehasstronglyadvancedtheworld’seconomyandcommerce’sdevelopment;italsochangesourlifestyleandanamnesisconcept.Electronic-commerceispointtotheelectronicofworld’scommerceactivities,businessmantradewitheachotherelectronic-bargainingmode.ThespecialtopicoftheWorld’sTradeOrganizedefinesthat:electronic-commerceissomeactivitiessuchasproduce,battalion,sellandcirculateoverpassestheelectronicinformationnetwork.Theworld’selectronic-commercerelatedtoallthecountryoftheworld,itbringusanewdevelopopportunity.Sothistimeourgraduatechosenistheexploitationofanelectronic-commercesystem.
Oursystemshouldachievethefunctionofuser’sregister,login,getbackpassword,changepassword,itemsbrowse,itemspurchaseandadministrator’sitemsadd,itemslayout,items’newsputoutandsoon.Ourmaintechniqueindevelopingthissystemis:JSP,Servlet,J2EE,B/S.Myjobisthesubsystemofnewsputoutandsystemmanage.
Keywords:JSPB2CServletJ2EEB/S
目录11
引言11
正文44
1.系统概述44
1.2技术背景55
1.2.1JSP55
1.2.2SERVLET88
1.2.3J2EE1010
1.2.4B/S模式1212
1.3设计目标1313
1.4开发工具简介1313
1.4.1IBMWebSphere5.1.11313
1.4.2RationalRose20031313
1.4.3IBMDB28.21414
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技术和管理信息人才,解决人才制约的瓶颈。
以下为我们要进行B2C的电子商务的理由:
全世界大约有几千万人可访问WorldWideWeb(WWW),不管你是做什么买卖的,你都不能小觑这几千万人。要想加入这个圈子,并在其中表现出你有兴趣为他们提供服务,你就需要踏上WWW。你该知道,你的对手们是会这样干的[1]。
建立人际关系网络:做生意当中的许多周折无非就是跟他人取得联系。精明的商人都知道,重要的不是你知道什么,而是你认识谁。如果你向几千个,甚至几百万个潜在客户和合作伙伴递出名片,并说这就是我所从事的工作,如果你需要我的服务,可以通过它跟我联系,这样将会产生何等效果也就可想而知了。在WWW上,你每天24小时都可以轻而易举地这样做。
向客户提供服务:让商务信息随手可得是向客户提供服务的最重要的途径之一。而采用WWW技术后,你会找到更多的向客户提供服务的方法。
提高大众兴趣:你没办法让《新闻周刊》来报道你的小店开张之事。但是如果你的网页作得新颖有趣的话,你可以让他们把你的网址写进去。有了网页信息,不管何人,也不论他身在何地,只要他通过Web了解到你,他都会成为你的网站的潜在访问者,从而进一步发展成潜在客户。
提供图像、声音和电影文件:假如你的装饰品很棒,人们看到它的话会真正喜欢上它;假如你的唱片集极佳却上不了广播,以至无人知晓其动听之处,而上了WWW,你就可以把声音、图像和短剧文件加进你的公司信息里,使之为你的潜在客户服务。这种事是任何手册之类的东西所做不到的。
其它还有诸如跟销售人员保持联系、开拓国际市场、创建24小时服务、迅速进行信息更改、收集客户反馈、对新服务、新产品进行市场定位、获得媒体效应、进入教育与年轻人市场、进入特殊市场以及为地方市场提供服务使用电子商务来做的话都会简单许多。
本次我们的B2C电子商务系统设计过程中主要用到的技术为分别为JSP、Servlet、J2EE、B/S模式,以下为各技术的简要介绍:
JavaServerPages(JSP)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它为创建动态Web应用提供了一个简捷而快速的方法。JSP技术使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。IBMWebSphereApplicationServer标准版为电子商务应用的Web事务处理和交互提供了健全的开发环境,它提供可移植的、基于Java的Web应用程序开发平台,支持JavaServerPage、JavaServlet等技术[2]。
WebSphereApplicationServer提供了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或者是EnterpriseJavaBeans组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
用标识简化页面开发
标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其它方法更难于编码和耗时的功能。通过开发定制标识库,JSP技术是可以扩展的。第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java2(企业版体系结构)的一个组成部分,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灵活处理事务,模式二通过小服务程序来处理事务,能够较好地优化系统,提高安全性。
与数据库的连接
Servlet通过创建一个框架扩展服务器的能力,采用请求-响应模式提供Web服务。当客户机发送请求至服务器时,服务器将请求信息发送给Servlet,Servlet生成响应内容并将其传给Server,然后再由Server将响应返回给客户端。
Servlet的功能
Servlet的功能涉及范围很广。例如,Servlet可完成如下功能:
创建并返回一个包含基于客户请求性质的动态内容的完整的HTML页面。
创建可嵌入到现有HTML页面中的一部分HTML页面(HTML片段)。与其他服务器资源(文件、数据库、Applet、Java应用程序等)进行通信。
用多个客户机处理连接,接受多个客户机的输入,并将结果广播到多个客户机上。例如,Servlet可以是多参与者的游戏服务器。
允许在单连接方式下传送数据的情况下,在浏览器上打开服务器至Applet的新连接,并将该连接保持在打开状态。允许客户机和服务器简单、高效地执行会话的情况下,Applet也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准(如IIOP)进行通信。
对特殊的处理采用MIME类型过滤数据,例如图像转换和服务器端(包括SSI)。将定制的处理提供给所有服务器的标准例行程序。例如,Servlet可以修改如何认证用户。
JavaServlet与现有网络技术的差别
JavaServlet与Applet之间的差别从基本上来说,Servlet与Applet是截然相反的。Servlet可以被视为服务器方面的Applet。Servlet在网络服务器内运行而Applet在网络浏览器内运行。浏览器提交一个请求执行Servlet的命令;而由于浏览器可直接命令Applet,所以它可以在运行时单机运行。
通过使用ServletAPI,开发人员不必担心服务器的内部运作方式。表格资料、服务器头、cookies等皆可通过Servlet处理。另外,因为Servlet是用Java写的,能将其从一个服务器移到另一个服务器以供发布,同时不必担心操作系统或服务器的类型。这一优点充分体现了Java"一次编写,随处运行"的优越特性。
Servlet的生命周期
图1.12Servlet访问周期图
①高可用性:来满足现在的全球商业环境
②安全性:保护用户的隐私和企业数据的安全
J2EE正是降低了开发这种中间层服务的成本和复杂程度,因而使得服务可以被快速的展开,并能够更轻松的面对竞争中的压力。J2EE通过定义一种标准的结构来实现它的优势,如下:
①J2EEApplicationProgrammingModel----一种用于开发多层次,瘦型客户用户程序的标准设计模型
②J2EEPlatform----一个标准的平台,用来整合J2EE的应用程序,指定一系列的接口和方法
③J2EECompatibilityTestSuite----一套兼容测试组件,用来检测产品是否同J2EE平台兼容
④J2EEReferenceImplementation----用来示范J2EE的能力
J2EE应用程序模型:J2EE是被设计为顾客,雇员,供应商,合作者提供企业级服务,这样的应用程序天生具有复杂性,他们要访问各种类型的数据并分发于大量的客户端。
为了更好的控制,管理这些应用程序,支持各种各样用户的商业功能要在中间层引入,中间层描述了一个被企业的信息技术部门紧紧控制的环境。
J2EE应用程序依靠于EIS层来存储企业的商业数据。这些数据和用来管理它的系统是企业中的核心[10]。
最初,双层结构(client-server)应用程序模型许诺将提高伸缩性与更广阔的功能,但不幸的是,直接向用户提供EIS服务的复杂性和再每台用户计算机上安装和维护商业逻辑所引起的管理上的问题成了很大的限制。而这些再双层结构中的限制在三层结构中已不存在了。如今要求既开发服务的商业功能,还要开发访问数据库和其他资源的代码,这是很复杂的,因为每一种多层结构的服务器都有它自己的应用模型,因此组建一直富有经验的开发队伍将是困难的。另外,随着服务规模的扩大,为了降低开支和加快响应速度,也要经常对其基层代码进行修改。
J2EE应用模型定义了一种建筑模型来让多层应用程序实现服务,并消除了以上的问题,提供了可伸缩的,易访问的,易于管理的方法。
J2EE应用模型把实现多层结构服务的工作划分为二部分:
开发者实现商业和表达逻辑,以及由J2EE平台提供的标准的系统服务。开发者可以依赖于这个平台为开发中间层服务中遇到的系统级硬件问题提供
J2EE应用模型为中间层应用程序提供了编译一次,任意运行的特点(writeonce,runanywhere),这种标准模型最小化了培训开发人员的费用。J2EE应用程序模型通过在建立多层应用程序中最小化其复杂程度,围简化和加速应用程序的开发迈出了重要的一步。
J2EE应用程序模型起始于Java程序语言和Java虚拟机,他们提供的不断提高的便携性,安全性和开发人员能力的提高是应用程序模型的基础。应用程序模型通常包括JavaBean组件模型,JavaBean是的为普通功能编写基于Java技术的代码更加容易,利用JavaBean的开发工具可以可视的定制,组合这些组件。
J2EE应用程序模型的一个主要优点便是在中间层的多层应用程序。在J2EE平台,中间层商业功能是由企业JavaBean实现的。这些企业Beans允许服务开发者集中于商业逻辑,并且让EJBServer处理传送稳定的,可升级服务的复杂工作。
JavaServerPages技术和Servlets向客户层提供了易于访问的Internet型服务的中间层功能。Jsp技术使用户接口开发者更加容易的提供向任何浏览器用户提供动态页面的服务。Servlets让基于Java技术的开发者有更大的自由来在Java语言中提供完全的动态服务。
J2EE平台支持几种类型的客户。许多J2EE服务被设计为浏览器用户服务,这些服务通过动态生成Html页和表单来同客户端实现交互,而Jsp和Servlets是通过让这些商业数据通过某种方式格式化,使客户端更容易来同它工作。这些客户端可以是运行于浏览器中的JavaApplet和基于Java技术的程序。要注意的是安全是多层结构的关键部分,在J2EE中安全性总是通过平台和管理员来解决的。在大多案例中,服务方或客户方都不需要开发者与安全逻辑。
B/S模式中的B是指Brower(浏览器),S是指Server服务器。我们一般把课件中的部分放在服务器上,而服务器主要用来监听接收来自客户端的请求信息,并对其进行分析处理,与Web数据库建立联系,完成系统的各项功能。在客户端,用户使用浏览器软件即可进行页面学习、网上练习、网上讨论、网上测试等操作,不需要另外的软件和配置。浏览器作为客户层,提供图形用户界面,负责与用户进行交互。而这一种网络模式构架系统的所有源程序和文档资料都处于服务器端,这样,我们就只需配置一台性能相对稳定的、支持课件完全运行的服务器,而客户机(浏览器)端只要是一台能上网的机器即可,这样就完全解放了学习者的设备配置,只要服务端(一般指学校或远程教育提供商)进行一些必要的软件和硬件配置。所以,B/S是最佳选择[5]。
B/S模式的采用可以大大提高计算机和网络的使用率。我们在开发基于B/S模式的课件练习系统时,如何分配这两者之间的工作任务呢?是不是一味地把所有的处理工作都放在服务器上,让客户端基本上只是用于浏览课件的页面,其他什么都不做呢?正确做法是合理地分配双方的工作,以达到最佳的网络传输和使用效率。下面我们结合一个实例来说明这个“最佳”。
学习者在答题过程中,操作产生错误的概率是相当高的。如,有一道题是两个式子的相加减,在其后的文本框中让我们填写结果,如果结果是数字的话,文本框中肯定只能填写数字,否则就要求报错了,这个报错程序应放在服务器端还是客户器端呢?如果放在服务器端的话,当某一个学习者偶然出了100多次错,就要访问服务器100多次,这将会加重服务器的负担。所以,我们一般会把出错的程序放在客户端执行,比如可以用一些JavaScript写一些脚本语言来进行健壮性检测[6]。
实现一个网络环境下的B2C的网上拍卖系统。系统应实现以下功能:用户的注册、登陆、密码找回、商品浏览、售出商品等功能以及系统后台对于用户登陆信息的校验、注册信息的校验、用户展示商品的校验、实现等功能。
①能正确实现系统要求的各项功能
②能正确完成与数据库的各项交互功能,用户界面友好
③具有一定的容错能力
④具有一定的可扩展性
本次的开发环境为IBM公司的WebSphere5.1.1,IBMWebSphere产品系列是一套典型的电子商务应用开发工具及运行环境,其在开发电子商务系统上的功能尤为强大。IBMWebSphereStudio提供了项目工作台和有关向导,这些向导可用来存取数据库、创建JavaBean和Servlet等等;IBMWebSphereApplicationServer(WebSphere应用服务器)是一个Web应用服务器(内含IBMHttpServer),它本质上是适合于servlet的Web服务器插件,提供了增强的ServletAPI和Servlets管理工具,并集成了JSP技术和数据库连接技术[7]。
Rational公司开发的UML建模工具,它可以在Rose建模中提供建立、视图、修改和操作组件的能力。RationalRose包括了一体化建模语言(UML),OOSE及OMT。其中一体化建模语言(UML)由Rational公司的三位世界级面向对象技术的专家GradyBooch,IvarJacobson和JimRumbaugh通过对早期面向对象研究的设计方法的进一步扩展而得来的,为可视化建模软件奠定了坚实的理论基础。RationalRose支持绝大多数软件工程常见的个人/公共工作平台。直到所编制软件共享之前,软件工程师都可以在个人工作平台修改自己的源代码和已建立的模型[10]。
RationalRose提供对工业标准标记的独家支持,其中包括一体化建模(UML),这一即将在工业界成为标准的面向对象建模语言。一体化建模语言(UML)是早期面向对象研究和设计方法的进一步扩展,由世界级面向对象技术知名专家GradyBooch,IvarJacobson和JimRumbaugh对Booch,OOSE和OMT理论的研究基础上提出的,为可视化建模软件奠定了坚实的理论基础。一体化建模语言对建模语言提供了以下支持:使用事件模型、类和对象模型、组件模型、分布处理模型。
RationalRose产品在支持UML的同时,也支持OOSE及OMT。
在公共平台,通过在配置管理和版本控制系统(CMVC),模型改变可以共享,换句话说,其他开发可以观察和利用这些改变。RationalROSE能够与主要的CMVC工具集成。RationalRose也可支持企业级数据库。
DB2是IBM公司的关系型数据库产品,是目前最流行的大型数据库之一,用户可以用结构化查询语言(SQL)对数据库对象进行创建、更新以及控制。它可以运行在不同的操作系统平台上,如大型操作系统OS/390TM、MVS/ESATM、VM及VSE;中型操作系统OS/400、AIX、HP-UX、Solaris、SCOUNIX及SINIX;单用户及局域网操作系统OS/2、WindowsNT、Windows95,同时它还支持DOS、Windows、Macintosh平台上的应用[9]。
DB2能存储所有类型的电子信息,它包括传统的关系型数据、结构化以及半结构化的二进制信息、多种语言文档及文本、图片、多媒体以及与特殊应用有关的信息。因此被称为通用数据库(UniversalDatabase)。
DB2通用数据库是由DB2ParallelEditionV1.2和DB2CommonServerV2.1.2两个产品组成的,这两个产品是在DB2/6000Version1的基础上发展起来的,但其侧重点不同,前者用于查询运行在多并行处理器上的大型数据库,为IBM的RS/6000TMSPTM优化查询能力而开发;后者是为满足UNIX、OS/2、WindowsNT平台上的通用SQL服务器市场而设计,称为数据库服务器。DB2ParallelEditionV1.2和DB2CommonServerV2.1.2的结合使DB2拥有丰富的功能不仅具有从膝上型电脑到巨型并行系统、支持大量并行事务的处理能力,而且能支持联机分析或OLAP处理。OLAP处理是以在数据仓库、数据挖掘或决策支持等应用中由少数用户运行非常复杂的查询为显著特征。DB2UDB也包括Web集成,并将Net.DataTM包含在数据库服务器中,还有一些集成工具如数据复制和作业调度器。
DB2的主要软件部件
DB2UDBVersion5有四种不同的数据库服务器产品:单用户版、工作组版、企业版及企业扩展版,功能也依次越来越强。其软件部件非常丰富(如图1-1所示),主要软件部件有:
①数据库引擎(DatabaseEngine)提供DB2基本的主要功能。它管理和控制所有对数据的访问、提供事务管理和数据保护、确保数据一致性和并发控制。
②命令行处理器(CommandLineProcessor,CLP)用于动态执行SQL请求或DB2的命令。
③管理工具(AdministrationTools)用于帮助管理数据库的图形用户界面的工具的集合。包括:
④应用(Application)可以用下列方式访问数据库:
⑤外部工具(Externaltools)提供相应的附加功能。
用户部分应实现的功能:登陆、注册、密码找回、修改密码、浏览商品、购买商品、退出登陆等功能。
后台应实现的功能:用户登陆信息的校验、注册信息的校验、用户取回密码的校验、用户修改密码的校验以及购买商品的校验等用户部分的功能实现以及展示新商品、发布打折信息、更新旧商品等系统管理部分功能的实现。
处理器:奔腾III1.6GHz以上
内存:512M以上
WEB服务器:IBMWebSphere5.1.1自带测试服务器
数据库服务器:IBMDB28.2
操作系统:WinNT操作系统
开发工具:IBMWebShphere5.1.1,IBMDB28.2,RationalRose2003
处理器:166MHz以上
内存:64M以上
操作系统:Win98以上视窗
浏览器:IE6.0
协议:TCP/IP
本系统的操作人员要求能操作WindowsNT操作系统的水平即可。维护人员须有一定的数据库管理和网络安全方面的知识。
我们把系统分为3个主要功能模块:用户登陆模块、商品展示模块和购物车功能模块。同时,系统网络部分交互采用如下构架模式进行设计:
图3.1B/S模型
各模块之间的详细操作参考以下的4个活动图
图3.1用户登陆活动图图3.2用户注册活动图
图3.3找寻密码活动图图3.4用户购物活动图
各页面主要设计依据为下面的两个顺序图:
图3.5登陆与展示模块顺序图
图3.6购物车模块顺序图
①进入登陆页面后,用户输入包括用户名和密码的登陆信息,确认提交后,系统对登陆信息进行有效性验证,如果有效就跳到产品展示页面,无效就提示登陆失败并返回登陆页面。用户可以在此选择继续登陆或者注册和找回密码。
②进入注册页面后,当用户填写了包括用户姓名、密码、密码找回提示问题、密码找回答案、等各项信息并确认提交后,系统对用户的注册信息进行有效性验证,有效就跳转到登陆页面,无效则提示注册失败并返回注册页面。
③如有用户忘记自己的用户密码,则可以点击“忘记密码”按钮,这时,系统将会跳转进入密码取回问答阶段,这里用户需要输入密码提示和答案,当密码提示和用户名效验正确,用户会获取密码,并得到更换密码提示。并跳转回登陆界面。若中途问题答错,提示用户选择“上一步”问题或者“放弃”。
图3.7登陆模块用例图
在产品展示页面,用户可以浏览选择自己喜欢的商品,单击“详情”以后可以查看详细信息,选中自己喜欢的商品后可以选择“购买”,然后系统会跳转到购物车模块。
图5.2产品展示用例图
在该模块中用户可以看到自己的购物车信息,用户可以选择的操作有清空购物车、继续购买和跳转到确认购买的下一步操作,在确认购买页面用户确认交易后购买过程结束。
图5.3购物车模块用例图
表3.2展示功能模块描述
表3.3购物车功能模块描述
表4.1.1Table_Customers为记录客户信息所创建,使用于用户表Table_Customers为记录客户信息所创建,使用于用户注册时登记信息;用户登陆时为效验登陆信息提供原始数据;用户忘记密码要求恢复密码操作时对客户的密码保护与密码保护问答。
表4.1.1Table_Customers
表4.1.2Table_Orderdetails为纪录用户购买操作时纪录顾客名和商品总价的时候使用。
表4.1.2Table_Orderdetails
表4.1.3Table_Orders为纪录订单中的如下细则而建立:送货地址、顾客邮编、送货方式、信用卡号、订单日期。
表4.1.3Table_Orders
表4.1.4Table_Products主要纪录产品信息。其中产品ID、供货方ID、库存量、已卖出数量为INT型,产品代码、产品名、类别码、图片、修改人、修改日期、描述为字符串型(鉴于某些产品不一定有图片,图片字段设定可为空并设定长度为50)。市场价格、供货方价格与现价为双精度浮点数。
表4.1.4Table_Products
用户信息是由用户在注册时输入的,包括用户姓名、密码、密码找回提示问题、密码找回答案等信息。
产品展示中包括的产品信息有产品名称、产品类型、产品价格、当前市场价格、产品图片、详细描述等信息。
图4.1系统总体类图
图4.2登陆页面
登陆页面部分关键代码:
out.println(username);
out.println(password);
Connectionconn=pool.getConnection();
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
Stringsql="SELECT*FROMCustomersWHEREUsername='"+username.trim()+"'";
ResultSetrsLogin=stmt.executeQuery(sql);
if(!rsLogin.next()){
response.sendRedirect("loginFailure.jsp");
}elseif(!password.trim().equals(rsLogin.getString("Password").trim())){
}else{
session.putValue("username",username);
response.sendRedirect("loginOK.jsp");
}
rsLogin.close();
stmt.close();
pool.releaseConnection(conn);
图4.3注册页面
注册页面部分关键代码:
Stringsql1="SELECT*FROMCustomersWHEREUsername='"+username+"'";
ResultSetrsLogin=stmt.executeQuery(sql1);
if(rsLogin.next()){
response.sendRedirect("registerFailure.jsp");
Stringsql2="INSERTINTOCustomers(Username,Password,Question,Answer)VALUES('"+username+"','"+password+"','"+question+"','"+answer+"')";
stmt.executeUpdate(sql2);
response.sendRedirect("registerOK.jsp");
图4.4找回密码第一步
图4.5找回密码第二步
图4.6找回密码第三步
密码找回页面部分关键代码:
Stringusername=newString(request.getParameter("username").getBytes("8859_1"));
Stringsql="SELECT*FROMCustomersWHEREusername='"+username+"'";
%>
"type="checkbox"disabled>
您输入的用户名无效!
图4.7商品展示页面
商品展示页面部分关键代码:
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
Stringsql="SELECT*FROMProducts";
ResultSetrsProducts=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中不带参数的情况
//try{
showPage=Integer.parseInt(pageIndex);//URL中带参数的情况
//}
//catch(NumberFormatExceptione){
//showPage=1;
showPage=1;//URL中应显示的页面小于1的处理
}elseif(showPage>pageCount){
showPage=pageCount;//URL中应显示的页面大于页面总数的处理
if(showPage*pageSize>=rowCount){
pageNumber=rowCount-(showPage-1)*pageSize;
pageNumber=pageSize;
if(pageCount>0){
rsProducts.absolute((showPage-1)*pageSize+1);
图4.8购物车页面
购物车页面部分关键代码:
Stringsql="SELECT*FROMPRODUCTSWHEREProductID="+productID;
if(rsProducts.next()){
price=rsProducts.getDouble("Price");
productName=rsProducts.getString("ProductName");
description=rsProducts.getString("description");
flag=false;
rsProducts.close();
系统提示数据库驱动程序不正确。解决方案:下载最新的驱动程序。
DB27.2中不能直接修改数据库表中元素的问题。解决方案:更换更新版本数据库DB28.2。
页面中文显示为乱码的问题。解决方案:更改编码类型为GB2312。
页面间参数传递问题。解决方案:使用session进行参数的传递。
界面设计的问题。解决方案:多查阅教程和其它资料,争取做得更加美观。
各方面的功能还不够完善的问题。解决方案:在后续的版本中进一步补充,使之更能符合用户的需求。
本次毕业设计跟我们以往的课程设计相比有很大的不同。首先:前期的选题时不确定的这样更有利于我们在充分的查阅资料后选择一个自己适合的题目,从而极大的提高我们做设计的积极性和选题的合理性。其次:文档方面由前期的毕业设计任务书、开题报告、文献综述到中期的中期报表,再到后期的毕业设计论文。前面不管哪一步如果做得不好都会影响到后面的设计进程,相反,如果前面的准备工作做得好,后面的设计就会变得相对容易许多。最后:开发工具上面我们使用的是IBM公司的WebSphere5.1.1、DB28.2、RationalRose2003,这些都是我们在以前的课程设计中所没有接触过的,虽然给我们的设计带来了一定的难度,但同时也是我们对于这几种开发工具有了深入的了解。同时在此次设计中也加强了我们团队协作的精神,相信对于我们以后的学习和工作都会有很大的好处。
[1]熊节做电子商务的20条理由中华科技网2000年
[2]王变琴、刘一凡《基于WebSphere的JSP技术》2000年
[3]刘晓华JavaServlet概述2004.11.23
[4]周悦芝J2EE概述2004年
[5]佚名谈谈MIS系统平台2003年
[6]夏瑜略论基于B/S模式网络课件练习系统2002.3.21
[7]廖荣贵、张钰汶IBMWebSphere开发工具详解2004年
[9]王晓红DB2简介2002年
[10]佚名中国J2EE技术论坛2004年
[11]张淑梅CNNIC(中国互联网络信息中心)的《中国互联网络热点调查报告》2003年