当前位置:文档之家› 电影票预定网站系统AVA毕业设计

电影票预定网站系统AVA毕业设计

基于JSP电影票预定网站的设计和实现

专业:

年级:

学号:

作者:

指导老师:

目录

1 引言 (1)

2 系统分析 (2)

2.1 需求分析 (2)

2.2 可行性分析 (3)

3 系统设计 (3)

3.1 总体设计目标 (3)

3.2 功能模块设计 (4)

3.3 数据库设计 (8)

3.4 系统特点 (14)

4 系统实施 (14)

4.1 系统运行环境 (14)

4.2 系统架构设计 (15)

4.3 相关技术介绍 (15)

5 系统实现与运行 (19)

5.1 登录页面的实现 (19)

5.2 前台页面的实现 (20)

5.3 后台页面的实现 (25)

6 结论 (26)

附录主要功能代码 (29)

基于JSP的电影票预订网站的设计

孙晓燕

南京信息工程大学电子与信息工程学院信息工程系,南京 210044

摘要:为方便公众的娱乐生活,避免人们现场购买电影票时受排队之苦,本文研究B/S架构的在线电影票预定网站的设计与实现过程,从需求分析、网站设计到具体实现都遵循了网站开发的思想和数据库的设计方法。网站的设计与开发使用JSP开发工具,应用Microsoft Access管理数据库。文章详细介绍了一个电影票预订网站的分析、设计和开发全过程,分析并实现了电影票订购的基本功能。

关键词:电影票预订;JSP;数据库

1 引言

互联网以前所未有的速度发展,成为与报纸、广播、电视相比肩的第四媒体,同时正以其便捷的信息传输形式改变着人们的消费模式,利用简单、快捷、低成本的电子通信方式,买卖双方不谋面就可以进行各种商贸活动,走向商业的互联网已经成为网络经济的大势所趋。1996年前后,在美国学术界提出“电子商务”(E-Buiness或E-Commerce)的概念。短短几年时间内这一概念被广泛接受。根据买方卖方的不同,电子商务市场可划分为4种类型:B2B(Business to Business)、C2C(Consumer to Consumer)、C2B(Consumer to Business)以及B2C(Business to Consumer)几种模式,目前占据主流的是B2B 和B2C 两种。B2B 主要面向企业,这种平台对性能、安全和服务要求比较高;B2C 直接面向终端的大众消费者。眼下电子商务网站正如雨后春笋般地大量涌现[1]。

正是因为国民经济快速发展,人们对生活的要求越来越高,娱乐方式越来越多样化,对服务的快捷、便利性要求也越来越高,从而他们对电影院行业的建设与管理提出了更高的要求。由于电影数量与电影种类不断增加,电影事业不断发展,中心影城的管理难度也越来越大。然而传统的售票方式存在着很多方面的不足,比如实时差、交易时间过长、运营成本高、信息不共享等[2]。为适应和推动电影行业的发展,各电影院公司和部门开始广泛采用计算机管理系统,推出网上电影票售票服务,大大减轻了订票、售票、检票、调度、票款管理等部门工作人员的劳动强度,提高了各部门的工作效率,而且能够在很大程度上减少顾客排队购票的时间和由此而带给顾客的疲劳,为广大顾客提供了更加快捷、优质、有序的服务,提高了中心影城的服务水平,也逐步树立了企业形象。

根据这种现实需要,设计制作一个影城在线售票管理系统便成为一件非常有价值的工作。应用在线售票网站对影城进行管理具有传统管理模式不可比拟的优点,它凭借其信息更新速度快、信息存储量大、安全性高、应用简便等特点为影城的管理带来了极大的方便,发挥越来越重要的作用。因此,越来越多的电影院都想利用动态电子商务的优越性来进行网上售票交易,以减少电影院工作人员大量繁琐的售票工作,避免人们赶到电影院发现票已售完的情况,缩短排队买票的时间。现如今比较成熟的电影票在线售票网站一般以数据库(如MySql、SQL Server)为基础,应用当今最为流行的网络编程语言(如JA V A、

ASP语言)共同制作而成。本文也将结合现实需要,设计出一个基于JSP语言、Access数据库管理系统的在线电影票预订网站。

2 系统分析

2.1 需求分析

首先对现有系统进行分析,现有系统是信息的重要来源。分析已有系统的功能和实现,从而确定新系统的设计目标和模型。由于条件有限,调研主要是在网上进行,即通过在网上查看已有的电影票预订网站,注册成为其会员来了解该网站具备的功能。

2.1.1 用户需求

“用户是上帝”,设计网站前应详细了解用户需求,这样才能避免日后因不满足用户需求而造成大量修改。电影票预订网站前台应考虑以下几方面的要求:

用户通过在线注册成为网站的用户,可以获得以下功能:电影浏览,购买电影票,查看订单,修改订单,修改个人信息,评价电影等。

(1)用户注册:只有注册为本网站的会员后才有权限浏览网页。

(2)用户登录:分为普通用户和管理员。身份验证后,普通用户进入网站前台进行信息浏览,管理员进入网站后台进行信息管理。

(3)电影浏览:用户可以一览近期影院上映电影的信息。

(4)电影票预定:在查看电影信息后,用户可以根据个人需求预定电影票,选择方位和购买数量。(5)修改订单:用户可以查看自己的购物车,确认订单信息,发现有误时,可以删除订单。

(6)修改个人信息:用户的个人信息(如:电话、地址等)变更时,可以在网站前台修改自己的信息。(7)给电影评价:用户可以在观看电影之后对其做出评价,以供其他网友参考电影是否具有观看价值。

2.1.2 功能性需求

功能性需求分析是指对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析是软件设计、实现测试直至维护的主要基础,良好的需求分析可以避免或尽早提出早期的错误,从而降低软件的开发成本,改进软件的质量。需求分析的任务是通过详细调查现实世界要处理的对象,充分了解系统的工作概况,明确各种功能需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变[3]。

本电影票预订网站后台应完成以下任务:

(1)电影信息管理:可以添加、修改新上映电影的信息,电影下档后,亦可删除原来的电影信息。(2)订单管理:查看订单详情以确认订单或删除订单。

(3)用户管理:查看用户信息,或做删除处理,管理后台。

(4)电影评价管理:查看用户对电影评价信息,可以做删除处理。

系统对数据的安全性、完整性要求表现在:用户信息保密,只有管理员可见(可查),但不能任意修改。确保用户信息安全。此外,电影信息、用户信息必须保证其完整性,防止恶意删改。以下是系统性能需求:

(1)准确性和可靠性高。

(2)页面友好,功能齐全,且可以方便使用。

2.1.3 非功能性需求

(1)用户界面需求:简洁、易用、易懂,友好和谐的用户界面。

(2)硬件需求:Pentium以上计算机

(3)可靠性需求:保证用户在正常使用本系统时,用户的操作或误操作不会产生数据丢失。

(4)安全保密性需求:用户登录需要密码验证。

2.2 可行性分析

开发任何一个网站,都会受到时间和资源上的限制。因此,在每一个项目开发之前,都要进行可行性分析,以减少项目的开发风险,避免人力,物力和财力的浪费。可行性分析主要包括经济可行性和技术可行性等。

2.2.1 经济可行性

经济可行性,主要是针对电影院的,开发网站的成本与收益相比较。如今是信息化时代,信息化管理可以使电影票预订网站更加便捷化、快速化,这样可以为影院带来较好的工作效益和经济效益,开发出本网站可以减少影院售票人员人数,而且管理方便,各功能实现快速,数据有效的管理。这些效益和管理上的便捷远远超过了开发本网站的成本,所以在经济上具有完全的可行性。

2.2.2 技术可行性

本网站开发工具是JSP和Microsoft Access。JSP具有可视化界面,是一种面向对象的语言,简单易学而且灵活方便,Microsoft Access是一个安全、可靠的并且支持面向对象设计的数据库系统。易用性和可维护性也很好。通过学习钻研JSP和Access,电影票预订网站总体上开发难度不是太高,技术上具有完全的可行性。

3 系统设计

3.1 总体设计目标

减少影院售票人员大量繁琐的工作,方便人们提前购票。网站用户通过使用本系统,可以随时根据需要,查询上映电影信息,对电影票预订网站中的个人信息进行修改,并可以根据个人喜好提前预定电影票,避免了现场排队购票之苦,同时也减少影院在售票方面的人力和物力的投资。作为一个在线订票网站,除了要功能强大、操作简单、符合上述需求分析,还应实现其他目标,以适用于各类城市影院,

具体要求如下:

(1)界面在设计上要美观、友好,操作要快捷、准确; (2)数据存储要安全可靠;

(3)注册用户可以随时修改个人信息;

(4)对于用户输入的数据,系统要有严格的检错机制,尽可能排除人为错误; (5)系统要最大限度的实现易维护性,运行要稳定、可靠、安全。

3.2 功能模块设计

概念模型是信息管理系统设计中较早却相当重要的一步,为了全面获取本系统的概念模型,首先需要分析整个网站的操作流程。以用户在购票体验上尽量接近一般网购方式为出发点,网站在设计上应使购票流程尽量贴近人们平时的网购习惯。因此,可以得到用户登录网站进行购票的流程图,如图3-1所示。

网 站 前 台

电影浏览、购票

修改购物车

给电影评价 修改个人信息

用 户 登 录

结 束 退 出

继续操作

图3-1 前台管理流程图

是否网站

用户

注册新用户

从网站管理员角度来看,管理员进入网站后台选择相应的功能,操作结束后,仍可以进行其他操作,或者没有操作时退出网站。网站后台管理流程如图3-2所示。

管理员

后台登录

电影管理订单管理用户管理评价管理

继续操作

结束退出

图3-2 后台管理流程图

整个系统的处理流程如下:

(1)用户进入登录页面,身份验证:普通用户和管理员的权限有所不同。

(2)正常进入网站:身份核实无误后,按权限的不同,普通用户进入网站前台,管理员进入网站后台。(3)执行各任务:根据各自需求,进行各项操作。

(4)一任务执行完毕后重新返回主页:执行任务后回到主页能够保证操作的条理性。

(5)执行完毕,退出网站:若所要执行的任务全部完成,即可退出网站。

为了最终实现目标系统,必须设计出组成这个系统的所有程序、文件以及数据库。模块是数据说明、可执行语句等程序设计对象的集合,它是单独命名的而且可通过名字来访问。模块化就是把程序化分成若干个模块,每个模块完成一个子功能,把这些模块集起来组成一个整体,可以完成指定的满足问题的要求[4]。

通过以上流程分析,可以进一步设计出电影票预订网站的总体结构模块图,分别从用户和管理员两个不同的角度去设计,如图3-3所示。

(1)用户模块:在本网站中,所有的用户在访问网站的时候均可以浏览查看电影信息、将电影加入购物车、查看购物车删除影票、给电影做出评价、修改个人基本信息。其功能结构模块图如图3-4所示。

重新验证

图3-3 系统总体结构图

退出系统

身份验证

进入系统后台 修

改 个 人 信 息

影 管 理

管 理

管 理

查 看 电 影 信 息

购 物 车 管 理

给 电 影 评 价

进入系统前台

用户登录

电 影 信 息

购物车信息

电 影 评 价

个 人 信 息

浏览上映电影信息

图3-4 电影票预订网站前台功能模块图

将电影加入购物车 查 看 购 物 车

删除已订购影票

给电影做出评价

确认个人信息

修改个人信息

(2)管理模块:在本网站中,管理员除了要进行相关信息的维护还有如下主要工作:定时查看电影评价信息,审查用户的评价是否具有合法性,删除恶意评价;定期对系统数据库进行备份,确保数据安全;及时更新新上映电影的信息,删除下线电影的信息等等。管理员通过后台登录网站,为确保系统的安全性,管理员后台登录会进行密码权限的检测。成功登录后,导航条上将出现“电影管理”、“订单管理”、“用户管理”及“评价管理”等按钮供管理员进行不同的系统操作。上述功能在前台不可见,属于网站的后台操作模块,因此这部分模块可定义为“后台管理”,其功能结构模块图如图3-5所示。

具体任务分析如下:

① 电影管理模块的基本功能应包括添加、删除、修改电影信息等。当管理员单击其中的任何一个功能按钮时,都可以进行对网站前台显示的电影信息进行相关的操作。

② 用户管理模块的基本功能应包括网站用户基本信息查看和注销处理。其中用户基本信息查看包括用户真实姓名、手机号、电子邮箱、地址等。对于新注册的会员用户,管理员要对其注册信息进行审核。

添加上映电影信息 电影票预订网站后台

影信息管理

用户管理 电影评价管理

订单管理

查看网站用户信息

注销网站用户

删除下线电影信息 确认订单 删除订单 查看评价 删除评价

图3-5 电影票预订网站后台功能模块图

③ 订单管理模块的基本功能应包括查看用户已下单的信息、删除订单。其中订单信息包括购买者编号、电影名称、放映厅、座位、购买订购数量等。当管理员单击查看按钮时,将显示该条订单的详细信息。

④ 评价管理模块中,只有购买过电影票的网站会员才能对电影进行评价,管理员可以查看或删除评价信息。用户评价的发言主题应与电影相关,这是管理员审核的要点,对于一些恶意评价,管理员可以选择删除。

3.3 数据库设计

3.3.1 数据流分析

数据流图是结构化系统分析的基本工具。一个数据流图确定了系统的转化过程、系统所操纵的数据或物质的收集(存储),还有过程、存储、外部世界之间的数据流或物质流[5]。

数据流图技术是可以扩充到允许实时系统的建模。数据流图是当前业务过程或新系统操作步骤的一种表示方法。数据流图可以在一个抽象的广泛范围内表示系统。在一个多步骤的活动中,高层数据流图对数据和处理部分提供一个整体的浏览,这是对包含在软件需求规格说明中的精确、详细叙述的补充。数据流图描述了软件需求规格说明中的功能需求怎样结合在一起,使用户可以执行指定的任务。从图中迅速反馈的信息有助于对所探讨的任务流的理解进行提炼加工。

电影票预订网站的第一层数据流图,如图3-6所示。本数据流图描述了电影票预订网站后台的各个模块处理过程中的数据处理的过程。用户管理主要是对用户信息的查看和删除;电影管理是添加或修改电影信息;订单管理是确认订单或删除订单;评价管理是对用户评价的查看和删除。

网站首页 电影信息管理

电影评价管理

订单管理

用户管理

评价信息

电影信息

用户信息

订单信息

图3-6 电影票预订网站第一层数据流

电影信息管理中的数据处理图是本网站的第二层数据流图,如图3-7所示。描述了在电影信息管理模块中所作操作的数据处理。主要包括对上映电影信息的添加、删除和修改操作。

用户管理数据流程图,如图3-8所示。描述了用户信息管理模块中所作操作的数据处理。主要包括对用户信息的添加和注销操作。

订单管理数据流图,如图3-9所示。描述了用户下单后,订单管理模块中所作操作的数据处理。网站

网站首页 添加处理

注销处理 查询处理

注销用户信息

用户信息

图3-8 用户管理模块数据流图

网站首页

删除处理

添加处理

修改处理

删除电影信息

添加新电影 修改电影信息

电影基本信息

图3-7 电影信息管理模块数据流图

管理员的主要操作包括查看订单和删除订单。

评价管理数据流图,如图3-10所示。描述了已购票用户观看电影后,对电影做出评价,网站管理员在评价管理模块中所作操作的数据处理。管理员的主要操作包括查看评价和删除评价。

3.3.2 实体E-R 图

E-R 图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型[6]。构成E-R 图的基本要素是实体、属性和联系,其表示方法为:

(1)实体型:用矩形表示,矩形框内写明实体名;

(2)属性:用椭圆形或圆角矩形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;

(3)联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向

网站首页

查询处理

删除处理

评价信息

图3-10 评价管理模块数据流图

网站首页

购买用户 信息

查看订单 信息

查询处理

查看订单 信息

删除处理

图3-9 订单管理模块数据流图

边旁标上联系的类型。在E-R 图中要明确表明1对多关系,1对1关系和多对多关系。1对1关系在两个实体连线方向写1;1对多关系在1的一方写1,多的一方写N ;多对多关系则是在两个实体连线方向各写N ,M 。

经过分析,由上面的数据流程图可以得出以下各实体之间的E-R 图,如图3-11所示。

3.3.3 逻辑结构设计

模型是软件的第一个技术表示。信息系统的建模是用模型来描述复杂的信息系统,使得系统的要求、结构和数据变得简单。设计者通过描述用户的需求获得与用户的不断交互,最终对整个系统能全面地把握。建立完整的数据模型,完成对信息系统中数据的存储和处理。

电影票预订网站比较复杂,为了建立这样一个复杂系统的模型,并满足实际对象不断发展的需求,在实际设计中应遵循下列原则:

(1)准确性:所建立的模型要求能够正确反映实际的对象,能够满足电影票预订网站工作的实际需

用 户

订 单

电影

订购

电话

真实姓名

邮箱 性别

登陆次数

展厅号

介绍

图片

影片号

影片名

价格

购买数量

购买用户名称

角色

年龄

用户名

展 厅

展厅名称

标签

m

n

n

上映时间

等级 地址

用户编号

密码 订单编号 影片号

座位

图3-11 网站E-R 图

放映

1

n

写入

评 价

1

n

评价编号

评价内容

评价时间

用户名称

求。

(2)完整性:指要求模型既能反映对象系统的静态特性,又能够反映其丰富的动态特性。

(3)一致性:要求建立的模型能保证从分析阶段到设计阶段的平稳过渡。

设计电影票预订网站关系模型如下:有下划线的属性为主键(primary key)

(1)展厅信息(展厅号,展厅名称,标签)

(2)用户信息(用户编号,密码,登陆次数,用户名,等级,真实姓名,性别,年龄,地址,邮箱,电话、角色)

(3)电影信息(影片号,影片名,展厅号,价格,图片,介绍,上映时间)

(4)订单信息(订单编号,购买用户名称,影片号,座位,购买数量)

(5)评价信息(评价编号,用户名称,评价内容,评价时间)

数据库逻辑结构的基本定义有:

(1)主键:在表中是唯一不可重复的值。具有索引的作用,可以用来快速查询表内数据。

(2)外键:有此表的列或列的组合和其他表的主键值或UNIQUE_KEY具有相关联的特性。此时,可以将这些列或列组合定义为外键。

(3)索引:建立索引是为了加快查询速度的有效手段。用户可以根据应用环境的需求,在基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。

(4)视图:从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个虚表。

经过以上分析,本电影票预订网站的数据库主要包含以下表:

(1)user表:用来管理用户的基本信息,字段包括:用户编号、密码、性别、登陆次数、用户名、等级、真实姓名、性别、年龄、地址、邮箱、电话、角色。结构如表3-1所示。

表3-1 user表

属性名存储代码数据类型是否主键允许空值备注

用户编号memberID 数字是否自动

密码pwd 文本否否

登陆次数LoginTimes 数字否是

用户名memberName 文本否否

等级rank 文本否是

真实姓名truename 文本否是

性别sex 文本否是

年龄age 文本否是

地址address 文本否是

邮箱email 文本否是

电话phone 文本否是

角色Role 数字否否0代表普通用户

1代表管理员(2)sorts表:用来记录展厅的基本信息,字段包括:展厅号、展厅名称、标签。结构如表3-2所示。

表3-2 sorts表

属性名存储代码数据类型是否主键允许空值备注

展厅号SortID 数字是否唯一

展厅名称SortName 文本否否

标签tag 数字否是

(3)film表:用来管理电影的基本信息,字段包括:影片号、影片名、展厅号、价格、图片、介绍、上映时间。结构如表3-3所示。图片的格式为jpg或gif,以图片名存储。

表3-3 film表

属性名存储代码数据类型是否主键允许空值备注

影片号filmID 数字是否唯一

影片名filmName 文本否否

展厅号SortID 数字否否注意输入格式

价格Price 数字否否注意输入格式

图片PicUrl 文本否否

介绍Intro 文本否否

上映时间time 文本否否

(4)goods表:用来管理订单基本信息,字段包括:订单编号、购买用户名称、影片号、座位、购买数量。结构如表3-4所示。

表3-4 goods表

属性名存储代码数据类型是否主键允许空值备注

订单编号GoodsID 数字是否自动

购买用户名称UserName 文本否否

影片号filmID 数字否否注意输入格式

座位seat 文本否否

购买数量BuyNumber 数字否否注意输入格式

(5)assess表:用来管理评价基本信息,字段包括:评价编号、用户名称、评级内容、评价时间。结构如表3-5所示。

表3-5 assess表

属性名存储代码数据类型是否主键允许空值备注

评价编号assessID 数字是否自动

用户名称UserName 文本否否外键

评价内容asscontent 数字否否

评价时间asstime 日期/时间否否注意输入格式

3.4 系统特点

任何一个网站的设计都需要有自己的特色。从网站的需求到实现,考虑所有的可行性,总结出系统需具备以下特点:

(1)人性化设计:由于个人喜好不同,人们可能喜欢坐在影院的不同位置观看电影。所以网站提供了可选的方位,如前方、后方、左方、右方,但由系统直接分配该方位的任一座位给用户。但对于登录本网站购票次数较多的用户,他们的等级会随购票次数增加,达到一定等级后,他们成为星级用户,可以选择座位。换言之,普通用户只能选择大致方位,而星级用户可以选择具体座位。因此,会在程序中加入算法,这是本网站的一个亮点。有关算法的细节将在系统运行部分具体介绍。另外,对于团购电影票的用户(一次购买数量不小于20张),会给予优惠处理,在原影票价格的基础上打8折。

(2)页面模块化:本系统在界面设计上都采用了模块化处理思想,把很多页面共有的部分集成到一个模块,如页面的头,导航条。这样在开发时,遇到这些相似的页面部分就不需要再重新编写代码,大大提高了开发效率,节省了时间。

(3)面向对象设计:在系统中,将用户、电影、订单等都封装成相应的类,同时每个类都具有自己相应的操作类,从而再次提高了对数据库操作的安全性和程序的可扩展性。

4 系统实施

4.1 系统运行环境

由于本系统系个人单独开发,综合系统特点、开发时间等因素,采用传统的开发方式—瀑布模型开发模式。从节约成本的角度考虑,开发工具选择目前网站开发的主流工具JSP+Access的组合。

4.1.1硬件要求

(1)CPU:P4 1.8GHz

(2)内存:256MB以上

4.1.2开发及运行环境

(1)操作系统:Windows 2000/Windows 2003/ WindowsXP/ Windows Vista

(2)开发工具:JSP+Java

(3)数据库:Microsoft Access

(4)服务器:Tomcat 6.0

(5)浏览器:IE 6.0 以上。

4.2 系统架构设计

目前,网络应用软件的运行模式主要有两类:C/S模式和B/S模式。目前大多数应用软件系统都是Client/Server形式的两层结构,现在的软件应用系统正在向分布式的Web应用发展;内部的和外部的用户都可以访问新的和现有的应用系统,Web和Client/Server应用都可以进行同样的业务处理;不同的应用模块共享逻辑组件;通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client 端和Server 端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。C/S之间通过任意的协议通信,一般要求有特定的客户端。C/S程序注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑;由于整体性,必须整体考察,因此在处理出现的问题以及系统升级上难度较大。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。

B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet 技术的兴起,对C/S 结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。B/S模式是靠应用层的http协议进行通信的(当然也要靠底层的好多协议支持),一般不需要特定的客户端,而是需要有统一规范的客户端,那就是浏览器。B/S架构的优点在于客户端和服务器通过Internet 进行数据交换,客户端基于统一的Web 浏览器,减少了投资,解决了系统维护升级的问题。另外只有极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,这也就充分保护了数据的安全。B/S架构中,显示逻辑交给了Web 浏览器,事务处理逻辑在放在了WebApp上,这样就避免了庞大的客户端,减少了客户端的压力[7]。

总的来说,B/S 结构具有如下优点:无需安装客户端,任何一点都可以登录访问;根据权限对网络拓扑进行统一管理;配置文件和发现信息实现集中统一管理和共享。由于系统的定位是一个网上购票系统——是一个电子商务类网站,传统的C/S(客户机/服务器)已不适应。作为Internet 上的Web 应用,需要的是B/S(浏览器/服务器)架构。所以本网站采用B/S结构。

4.3 相关技术介绍

开发网站需要两种工具,即前台开发语言和后台数据库。本网站前台开发技术使用JSP,后台数据库使用Microsoft Access。JSP灵活方便,与后台的Microsoft Access数据库相结合,可以提供一个高性能

的在线订票网站。

4.3.1 JSP及其特点

JSP,全称为Java Server Pages/Servlet。JSP和Servlet都是Sun公司的J2EE(Java 2 platform Enterprise Edition)应用体系中的一部分,两者一般需要放在一起被讨论。Servlet的形式和CGI差不多,它是HTML 代码和后台程序分开的。它们的启动原理也类似,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process),而Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(Parent Thread)来实现资源共享,这样就减轻了服务器的负担,所以,Java Servlet可以用来做大规模的应用服务[8]。

JSP技术主要具备以下特点:

(1)将内容的产生和显式进行分离:使用JSP技术,Web开发人员可以使用HTML或者XML标志来设计和格式化最终页面。使用JSP标志或者小脚本来产生页面上的动态内容。

(2)强调可重用的群组件:绝大多数JSP页面依赖于可重用且跨平台的组件(如:JavaBean或者Enterprise JavaBean)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或用户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡。

(3)采用标志简化页面开发:Web页面开发人员不会都是熟悉脚本语言的程序设计人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标志中进行动态内容产生所需要的。标准的JSP标志能够存取和实例化JavaBeans组件,设定或者检索群组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。

目前主流的网站开发语言有JSP、ASP、PHP等等。虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSP Parser)转换成Servlet代码,然后Servlet代码被Java编译器编译成 .class 字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(Script Language)版。JSP和ASP相比,运行速度、运行开销、运行平台、扩展性、安全性、函数支持、厂商支持、对XML的支持等等,JSP的优点都是ASP无法比拟的。采用PHP的网站也有很多,如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。首先,PHP缺乏规模支持;其次,它缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,群组成二维数组。而PHP则缺乏这种支持。还有十分重要的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。目前在国内PHP与ASP应用最为广泛。而JSP 由于是一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP,比较出名的如IBM的E-Buiness,它的核心是采用JSP/Servlet的Web Sphere。它们都是通过CGI来提供支持的。

由于JSP/Servlet都是基于Java的,所以它们也具备Java语言的最大优点——平台无关性,也就是

所谓的“一次编写,随处运行(WORA – Write Once, Run Anywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。因此,JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。随着越来越多的的供货商将JSP支持加入到他们的产品中,用户可以使用自己所选择的服务器和工具,修改工具和服务器并不影响目前的应用。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用,作为采用Java技术家族的一部分,以及J2EE的一个成员,JSP技术能够支持高度复杂的基于Web的应用。

4.3.2 JavaBean

JavaBean是一种基于Java的软件组件,JavaBean和ActiveX控件一样,可以通过封装业务逻辑建立一整套可重复利用的对象库。JSP对于在Web应用中集成JavaBean组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经过测试和可信任的已有组件),避免重复开发,也为JSP应用带来了更多的可伸缩性。JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互与数据提取等。

4.3.3 Microsoft Access及其特点

Access是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS,即Relational Database Management System),是Office系列应用软件之一[9]。一般电脑均会安装,应用广泛。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象,并且提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化,为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。Access的优点具体有以下几点:

(1)存储方式单一:Access管理的对象有表、查询、窗体、报表、页、宏和模块这7种,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。

(2)面向对象:Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和特征,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。

(3)界面友好、易操作:Access是一个可视化工具,其风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。

(4)集成环境、处理多种数据信息:Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。

(5)Access支持ODBC:利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。

4.3.4 Tomcat

Tomcat是APACHE JAKARTA软件组织的一个子项目,TOMCAT是一个JSP/SERVLET容器,它是在SUN公司的JSWDK(JAVA SERVER WEB DEVELOPMENT KIT)基础上发展起来的一个JSP和SERVLET规范的标准实现,使用TOMCAT可以体验JSP和SERVLET的最新规范。经过多年的发展,Tomcat不仅是JSP和SERVLET规范的标准实现,而且具备了很多商业JAVA SERVLET容器的特性,并被一些企业用于商业用途。

Tomcat服务器是一个免费的开放源代码的Web应用服务器。因为Tomcat技术先进、性能稳定且免费,所以深受Java程序开发者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

Tomcat是提供一个支持Servlet和JSP运行的容器。Servlet和JSP能根据实时需要,产生动态网页内容。而对于Web服务器来说,Apache仅仅支持静态网页,对于支持动态网页就会显得无能为力;Tomcat则既能为动态网页服务,同时也能为静态网页提供支持。尽管它没有通常的Web服务器快、功能也不如Web服务器丰富,但是Tomcat逐渐为支持静态内容不断扩充。大多数的Web服务器都是用底层语言编写如C语言,利用了相应平台的特征,因此用纯Java编写的Tomcat执行速度不可能与它们相提并论。

一般来说,大的站点都是将Tomcat与Apache的结合,Apache负责接受所有来自客户端的HTTP请求,然后将Servlets和JSP的请求转发给Tomcat来处理。Tomcat完成处理后,将响应传回给Apache,最后Apache将响应返回给客户端。

4.3.5 数据库连接

Access作为关系型桌面数据库管理系统,在建立中、小型的数据库管理网站中得到了广泛的应用。因此,为了建立与数据库的连接,可以通过三种方式:建立DSN、使用非DSN和OLE DB。在本网站设计过程中,通过JDBC-ODBC桥连接Access数据库[10]。

ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC 驱动程序操纵数据库。在给ODBC驱动程序传递SQL指令时,用的就是DSN来告诉它到底操作的是哪一个数据库。由此可见,DSN是应用程序和数据库之间的桥梁。要通过ODBC访问数据库,前提是必须配置好DSN。因此,一个DSN必须包含一些信息,DSN的名字就是给这座桥取的名字,当在程序中访问数据库时,给系统传的就是这个名字,而不是数据库的实际名称。所以,在操纵数据库时,系统才会知道调用哪个ODBC驱动程序来服务。

SUN的JDK中自带了用来连接ODBC数据源的JDBC驱动,写法为:

Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );

相关主题
文本预览
相关文档 最新文档