[计算机毕设]基于java的旅游网站系统设计与实现(项目报告+答辩PPT+源代码+数据库)

项目说明报告

此处为论文中文题目,要求居中填写

主标题不超过24个汉字;可加副标题(副标题前加破折号),副标题与主标题间空一行的位置

主标题:黑体,小二,居中

副标题:楷体_GB2312,四号,居中

阅后删除此文本框。

村镇旅游网站设计

城市旅游产业的日新月异影响着村镇旅游产业的发展变化。网络、电子科技的迅猛前进同样牵动着旅游产业的快速成长。随着人们消费理念的不断发展变化,越来越多的人开始注意精神文明的追求,而不仅仅只是在意物质消费的提高。塞北村镇旅游网站的设计就是帮助村镇发展旅游产业,达到宣传效果,带动一方经济发展。而在线消费与查询正在以高效,方便,时尚等的特点成为广大互联网用户的首选。塞北村镇旅游网站设计与开发以方便、快捷、费用低的优点正慢慢地进入人们的生活。人们从传统的旅游方式转变为在线预览,减轻了劳动者的工作量。使得旅游从业人员有更多时间来获取、了解、掌握信息。

塞北村镇旅游网站根据当地旅游风景和特色的实际情况,设计出一套适合当地旅游信息网站,通过网络,实现该网站的推广从而达到宣传的效果。

本系统在设计方面采用JSP和Java语言以及html脚本语言,同时采用B/S模式,进行各个界面和每个功能的设计与实现,后台管理与设计选用了SQL Server数据库,前台设计与后台管理相结合,共同完成各功能模块的功能。

SQL;塞北村镇旅游;JSP ;B/S

目录

塞北村镇旅游网站设计与实现......................................... I

摘要............................................................... I

Abstract.......................................................... II

1  概述............................................................ 1

1.1 项目研究背景........................................... 1

1.2 研究目的及意义......................................... 1

1.3 开发软件介绍........................................... 1

1.3.1技术介绍.............................................. 1

1.3.2 SQL2005数据库.................................... 3

2  系统分析........................................................ 4

2.1可行性研究............................................. 4

2.1.1经济上的可行性.................................... 4

2.1.2技术上的可行性.................................... 4

2.1.3操作上的可行性.................................... 4

2.2开发结构分析........................................... 4

2.3功能需求分析........................................... 5

2.4 数据流图............................................... 6

2.5 业务流程分析........................................... 7

2.6 数据字典............................................... 8

3  网站总体设计................................................... 11

3.1系统功能描述.......................................... 11

3.2系统界面设计.......................................... 11

3.3系统功能结构图........................................ 11

3.4系统设计目标.......................................... 12

3.5系统实现的软硬件平台.................................. 13

4  数据库设计..................................................... 14

4.1数据库概念结构设计..................................... 14

4.2数据库逻辑结构设计..................................... 17

4.3本章小结............................................... 19

5  系统详细设计................................................... 20

5.1主界面模块设计......................................... 20

5.2用户注册模块设计....................................... 24

5.3旅游景点模块设计....................................... 26

5.4酒店预定模块设计....................................... 28

5.5 后台管理设计........................................... 30

5.5.1后台登录模块设计................................. 33

5.5.2旅游景点模块设计................................. 35

5.5.3线路管理模块设计................................. 38

6  系统测试....................................................... 40

6.1 测试的任务及目标....................................... 40

6.1.1测试的任务....................................... 40

6.1.2测试的重要性及目标............................... 40

6.2测试方案............................................... 41

6.2.1模块测试......................................... 41

6.2.2集成测试......................................... 41

6.2.3验收测试......................................... 42

6.2.4平行运行......................................... 42

6.3系统评价............................................... 42

6.4本章小结............................................... 42

结论.............................................................. 43

附录.............................................................. 44

致谢.............................................................. 49

参考文献.......................................................... 50

英文原文.......................................................... 52

1.1 GENERALIZE............................................. 52

1.2 SOURCE OF JSP.......................................... 53

1.3JSP CHARACTERISTICS..................................... 55

1.4JSP MECHANISM........................................... 56

中文翻译.......................................................... 59

1.1 概述................................................... 59

1.2 JSP的由来............................................. 60

1.3 JSP的特点............................................. 60

1.4 JSP的机制............................................. 61

概述

1.1 项目研究背景

社会经济的发展和提高潜移默化的影响了人们对精神消费的日益看中与提高,所以越来越多的人们开始选择更健康有趣的生活活动,随之而来的旅游便成了人们消费的必选。随着旅客需求的日趋丰富和个性化,这势必将推动我国第三产业、旅游服务行业的迅猛发展前进。旅游行业如何能够提供多样化、个性化的服务来满足人们的多方面需求,这是一个值得深究的课题。旅游行业快速成长的同时,各个行业相互间的联系与竞争也就不断加强。互联网时代的大背景环境下,电子信息服务的将会是一个最便捷最省力最有效的服务方式。这就要求旅游行业能够提供一个综合性服务的信息平台,同时必须拥有强大的后台支撑、智能化的信息提供和服务,快速有效的信息应答,多种多样的信息功能等等。虽然目前我国电子信息科技迅猛发展,但是也有差强人意的地方,比如说,1.交互性差。多数信息系统是封闭性的,缺乏与各种其他信息系统的共享与交互,这就造成了信息资源的浪费和利用率低等问题。2.实时性差。系统在开发时存在系统漏洞,不能很好的对空间信息进行全方位的挖崛与利用。用户所需要的信息可能不能及时得到跟新与回复。这是摆在多数旅游系统面前的一个现实需求。3.个性化服务缺乏。大多数旅游系统还不完善,没有按实际情况来满足用户多方面的需求,而是片面的加入一些没有必要的或者说运用率并不高的功能。4.旅游系统的单一化。不难看出,大多数旅游系统功能服务基本相同,没有自己的特色,创新程度不强。电子科技迅速发展,也需要我们不断的去追求创新。

1.2 研究目的及意义

随着旅游业的迅猛发展,21世纪的中国将会成为世界上最大的旅游国家,对于旅游者而言获取相关的旅游信息以便于做出最优的旅游选择是十分必要的。塞北村镇旅游网站中以帮助客户怎么样才能更快速方便的找自己旅游公司咨询和旅游信息。因此开发塞北村镇旅游网站可以发布塞北村镇旅游信息,让客户自己在网上就可以方便快捷的了解到旅行社的所有旅行动态,大大方便了旅行者对旅游信息的查询和获取,旅行者也更愿意在电子信息平台下进行咨询和消费。

1.3 开发软件介绍

1.3.1技术介绍

JSP是一种能实现动态网页的技术。Sun公司最先提倡发行,并由多家公司共同开发与完善的。JSP技术通俗来说其实就是在普通的网页HTML文件中首先加上Java程序段来实现具体功能,然后再根据需要添加JSP标记(tag)进行记录,这样二者结合就可以形成JSP文件。其功能特别强大,基本可以实现大多数动态网页所需要的各种效果。用JSP技术所开发的网页具有跨平台的特点,在不同的操作系统,例如Windows,Linux,Winxp等操作系统上都可以运行起来。在服务器端进行大部分复杂的程序操作和功能实现操作,而这些并不需要用户直接参与或操作,最后的结果通过网络传送给用户。这样就减轻了用户工作量的同时也减少了浏览器的负担。因为有些浏览器并不支持Java语言,然而这不影响功能操作的实现,同样能够登录JSP网页,达到预想效果。

Java server page(以下简称JSP)为servlet技术的简化。JSP的功用在于它实现了Html语法中以<%, %>形式的java扩张。但是,值得注意的是,因为JSP与Servlet均在服务器端运行,故而往往以HTML文本为主要形式呈现客户端面前,所以当有 需求时,客户端可以便捷地通过浏览器来实现浏览。当网页服务器(web)遇到访问JSP提出的要求时,需要进行以下两个步骤:首先执行程序段,后将结果与htlm返回,以便系统更好运行。至于为何要进行的Java代码段的插入操作,其主要目的在于进行数据库的连接、网页重定向等等,以满足网页动态实现所需的各类功能。
    同时,我们也应该认识到JSP技术所使用的俩种程序:即类XML的tags和scriptlets,这些都是用Java语言实现的。另一方面,对于服务端也可以通过tags和scriptlets实现对资源的访问。除此之外,JSP将网页逻辑和网页设计分离开来,大大方便了编程人员实现对应用程序的设计与开发。同时,由于JSP的发展运用,使得网页设计变得更加灵活便捷,也使得网页的实现更加容易。

Html语言是一种脚本语言,是一种规范和标准,在所有的开发语言中,是较为简单易学的一种,它有很多标签,运用标签就可以实现很多静态页面效果。虽然html语言相对其他语言来说比较简单,但是他能够实现的功能却很强大,因此受到广大用户的热爱。他可以实现静态网页设计,是学习前端设计的一门基础性语言。Html的结构包括头和主体部分,是WWW的描述语言。

Java语言是一种完全面向对象的语言。具有继承,多态性,封装性等特点,还具有垃圾自动回收机构,程序员不用考虑内存使用不足的情况,因为内存在程序员不再使用后的一段时间内会自动释放。而且具有跨平台性。这些别的语言所没有的特点让java能够快速发展强大起来,它吸收了计算机领域的各种最新成果,功能十分强大。Java的应用也是到处可见,从计算机到移动平台,从办公软件到手机应用,从小型系统到大型企业,Java身影无处不在。Java能得到如此广泛的应用的另一个重要原因是因为java语言是动态的,它可以适应动态变化环境。

Myeclipse其实是在经过一系列已有软件产品的补充和更新的基础上产生出来的,是一款功能丰富的企业级开发环境。在多种程序开发、服务器效能的提高、功能实现等各个方面起到了不可估量的用处,很大程度上增强了开发效率。总之,Myeclipse和eclipse有着千丝万缕的关系,它其实就相当于一个功能插件,并且它具有丰富的开发环境,使用范围广泛,能够实现多种功能,支撑目前流行的几乎所有开源工具。像JavaServlet,JSP,JSF,Spring,AJAX等等。而在结构上,Myeclipse的特征有WEB开发工具,应用程序服务器的连接器等等7大类(在此只举出2类)。这种结构布局使得模块间各自独立,各个模块各自运行,他们之间互不影响,单独完成各自的升级或者扩展。MyEclipse 是基于Eclipse插件的解决方案,功能强大并且支持十分广泛,支持云开发、java web开发、移动开发、优化开发、RESTful Web服务开发、保持Maven、架构、企业交付、测试等等,此外,Myeclipse版本更新迅速,不断完善已有功能,弥补漏洞,方便开发。MyEclipse具有完备的编码、调试、测试和发布功能,是一款功能丰富的JavaEE集成开发环境。

MyEclipse这一开发工具,每个版本都有其各自的特点,本文使用的MyEclise8.5。8.5版本经过长期的投入使用,较以前旧的版本修正了许多bug,性能比较稳定,界面比较美观,用起来也方便,操作较为简单。但是就兼容性来说,Myeclipse6.5相对比较好。而8.5版本容量大,用起来可能会存在卡的情况。但是除此之外,8.5也有很多优点,比如说它用起来十分灵活,对前台开发的支持性比较好。其实,每个版本都有自己的特点,具体选用哪一版本,还需要根据实际情况,结合所开发项目进行选择。

另外,MyEclipse还有很好的自动查错功能、自动补全功能。程序员在进行项目开发的时候,可以方便准确的找出出错的地方。此外,自动补全功能也可以大大节省程序员的编程时间,极大的提高了工作效率。总之,在进行软件系统开发时,一个得心应手的开发环境是十分必要的,这一点是会影响到开发的效率。Myeclipse很好的解决了这样的难题,为软件开发提供了便利条件。

Tomcat服务器是一个免费的应用服务器,他的封面设计以一个动物的素描为灵感,正是因为这个设计理念,所以该项目以一个英文的动物名字为项目名称。因为其免费又好用,功能强大,所以成为大多数程序员的首选。Tomcat是一个小型的,轻量级的软件产品,他在启动运行时占用非常少的内存资源和系统开销,扩展性能比较好,支持多种应用需求,如果一个开发员对某一项功能实现特别感兴趣,他就直接可以将此功能加入到其中。Tomcat可以独立运行,身为网站的服务器,可以加载动态网页。

1.3.2 SQL2005数据库

SQL 数据库设计简单易懂,功能相对来说比较全面,为软件产品的开发应用提供了良好的环境和数据帮助。关系型数据和结构化数据为数据库提供了新的功能,使得信息能够更好的存储和组织,完善了SQL数据库,这样一来,程序员可以运用这一优势,在软件产品开发过程中,能够为用户开发出高质量高性能的数据应用软件。此外,Microsoft SQL Server 2005 还整合了各种功能:例如分析、集成等。用户凭借此完成了对方案的构建。SQL2005数据库为实现系统后台与前台连接起到了十分重要的地位。一个没有连接数据库的系统是无法实现任何有价值的功能的。数据库可以帮助开发人员整合管理数据,有效实现系统所需功能,同时还可以进行权限的设置和数据的添加。总之,SQL可以满足人们基本的几乎所有要求,为其提供一套经济,有效的开发策略,使得用户付出最少的代价获得最多的回报。

系统分析

2.1可行性研究

2.1.1经济上的可行性

实现塞北村镇旅游网站所需要花费的时间,人力,金钱成本较该网站投入使用时能够获得的收益来讲,差距是比较大的。所以,从经济方面讨论时,开发该网站显然是比较合理的。这样可以对当地村镇旅游信息进行有效的整合和集中,及时的发布与更新,可以使旅客及时获得各种景点、住宿、攻略等信息,方便得使消费者获得想要的信息,同时使企业盈利。这样可以为当地经济带来更好的工作效益和社会效益,开发出本网站可以减少旅游人力成本,而且管理便捷,各功能实现迅速,以对数据实施有效的管理。管理上的有效便捷,信息得以及时获取,选择上的方便等所能达到的利益是不可估量的,这样帮助村镇实现信息化的同时帮助他们宣传家乡文化、提高收入。所以,从经济这个角度来说,可以进行该网站的建设。

2.1.2技术上的可行性

技术是否成熟关乎该网站能否可以顺利进行,是不可忽视的一个重要方面。技术可行性的研究是指的目前而言已知的的各项技术中哪些可以高质量的完成对该软件系统的开发。同时要兼顾已有的软硬件配置的要求。就本系统而言,需要软硬件配置较高的PC机,Windows操作系统,另外,需要安装SQL2005数据库服务器,JDK, Myeclipse,tomcat,任意浏览器,配置好基本的所需环境以后,采用合java,JSP语言进行旅游网站的设计、开发与运行。从技术上来说,这些基本的软件系统开发所需技术是不成问题的。

2.1.3操作上的可行性

首先,进行网站设计的几种软件都具有较高的普及性和较高的可操作性,设计人员可以较为轻松地使用软件对塞北村镇旅游网站进行设计和完善。第二,管理员可对客户进行验证,对信息平台的信息进行发布,修改,管理,还可以实现酒店预订,修改,删除等各种功能。第三,客户可以在提示下进行一系列的留言,预订,查看等各项功能。而这些功能都是比较简单可行的,这些功能也比较普遍化,一般人员胜任是没有问题的。这样说来,从操作上来说是可行的。

结合以上分析与介绍,从经济、技术、操作等方面来说,现有的有效环境和条件、技术是可以开发出一个具有较高可操作性和功能强大的个性化旅游网站,实现各项功能,完成测试。

2.2开发结构分析

B/S模式即浏览器/服务器模式体系结构,这对较为小型的系统来说更加适用。他最大的优势在于不需要客户端的维护,适用于客户端需求较为多变的系统。这对客户来说,该模式界面友好,具有实用性。所以塞北村镇旅游网站采用通用性好,成本低,开发相对简单的B/S模式体系结构。管理方便也是该系统的又一个优势,此外,针对用户来讲,该网站用户数量大,变化性和流动性也强。经过上述分析探讨,最终认为B/S模式是该网站的最好选择。如图2-1B/S模式图所示:

图2-1 B/S模式图

     B/S三层模式结构所具有的特征包括:

  1. 开放的标准:B/S体系标准由国际组织统一规定,这样就使得该体系具有很强的通用性,同时也使得该系统就有很强的跨平台性。它的使用方便了广大用户和相关企业,在不同的系统不同的平台上都可以运行,不受限制。
  2. 较低的开发和维护成本:B/S体系结构优点在于不用对客户端进行专门的维护,用户只需要有一个浏览器即可。这样就大大减少了开发维护成本,需要做的仅仅对系统和服务器进行升级,从而便大幅度地降低了维护开发所消耗的资金。

(3)用户使用简单,界面友好:B/S体系结构对于用户来说只是一个简单的浏览器。用户对面的不是一堆复杂的数据和冗杂的代码操作,而是快捷方便的点击交互式的显示操作。这样就减少了客户端开发成本,用户不必在意内在实现过程,只需要了解自己需求而进行相应的图文式操作。

根据以上所分析不难看出,B/S是该网站系统最合适的体系结构。它开发成本小,简单便捷,容易实现的特点是我们的不二选择。所以,该网站系统基于B/S体系结构实现了旅游信息发布,线路管理,景点管理等功能。

2.3功能需求分析

需求分析在软件开发周期中起着十分重要的作用也可以说起着决定性作用,它是每一个软件产品在设计与实现之前必须进行的。当然了,该项工作如此重要,一定也有它的难度。在进行需求时,了解用户的需求是最关键的。旅游网站面向广大网络在线用户,它的特点就在于电子科技的广泛应用。根据该特点,我们可以通过网上网上调查,问卷调查,走访等方式了解网站需求。如何满足广大用户需要,尽可能多的细化网站功能就是摆在眼前的一个问题。同样的,不光用户需求需要注意,了解管理者的需求也同样很重要,一般来说,网站后台的主要对象主要是系统管理者,为了满足管理者的需求,开发出合适产品,在实现网站之前,需要提前与管理者进行沟通,需要系统实现什么功能,整合统计什么数据,完成哪些便捷操作。最后,还应该使网站具有较好的系统伸缩性和容错性。因为不管是用户还是系统管理者,他们的需求会根据实际情况,时间推移发生不断的变换,所以,系统应该尽可能提高容错性和可维护性,避免后期修改消耗人力物力。下面对该网站需求功能进行研究探讨:

塞北村镇旅游网站的功能比较全面丰富,尽量满足大部分旅游客户的要求,在网站的首页显示了该网站的具体实现模块部分。包含塞北人文、塞北故事、酒店信息 、旅游景点、 自驾游线路 、旅游地图查询、天气预报 、在线评价 、用户注册、 后台管理等功能:后台管理包括:塞北人文、塞北故事、酒店信息、旅游景点、自驾游线路、酒店预订,在线留言、用户增加删除修改、系统等的管理。

上边所述的功能是基本的旅游网站所需功能,它涵盖了一般客户的需求,也是此系统的主体功能。此外,在开发过程中还要不断的完善和修改,增加一些个性化和细节功能,使得系统具有很好的完整性和可操作性。

2.4 数据流图

进行业务流程分析也是一个重要环节。他的分析应该参照信息流动的整个过程,对每一个环节进行业务处理、数据流图的调查分析。数据流图可以清除的表明计算机软件系统的工作情况,他是一种图形表示。这样,可以简化工作难度,便于开发人员准确表达交流。同时便于开发端,维护端,测试端,应用端的相互交流合作。也就是说,数据流图不仅适合专业人员读取了解方便,也同样适用于非专业人员。在需求分析中是一种便于修改和交流的表达工具。

  1. 如图2-2总体流程图所示:

图2-2 总体流程图

(2)数据流程分析,如图2-3用户流程所示:

图2-3 用户流程图

2.5 业务流程分析

业务流程分析在需求分析中的占有十分重要的分量。业务流程分析其实就是对产品业务处理过程的详细细节进行反应,也就是信息的流动过程的具体描述。业务流程分析需要根据具体业务画出流程中的具体活动,还有各个活动相互间的联系与逻辑,流程的输入输出以及流程的执行者等等。流程分析方法有顺向法、查询法、具体分析法、逻辑推理法。

业务流程分析可以帮助系统开发人员理清工作流程顺序,同时更好的分析业务相互间联系的因素关系。了解网站具体要求和业务需要,从而形成科学的、合理的工作管理和运作方式。而具体流程图的实现过程还具有相应的规范和标准,一般具有所规定的特定的一些符号、方框、箭头和线段来表示。具体如图2-4业务流程分析图所示:

图2-4 业务流程分析图

2.6 数据字典

对数据流程中的各个元素进行详细的说明是数据字典的主要目的和用途。它在系统开发阶段有着重要作用。数据字典中包括数据类型、字段、属性等等。有了数据字典,数据库在设计的时候也可以根据数据字典中的各元素成分进行数据的相关定义。下面根据具体的实例进一步说明数据字典中元素的的条目,如表2-1数据元条目、表2-2数据结构条目、表2-3数据流条目、表2-4 数据存储条目、表2-5 处理过程条目和表2-6 外部实体条目所示:

表2-1 数据元素条目

调入年份

表2-2 数据结构条目

表2-3 数据流条目

表2-4 数据存储条目

表2-5 处理过程条目

表2-6 外部实体条目

以上简单列举了一部分数据字典条目。根据上述数据条目的具体分析,不难得出看出,数据结构中可以包含多个数据项以及数据结构。数据字典就是将数据中的各个成分加以组织说明,减轻系统开发人工作量,达到最好的工作效率。

网站总体设计

3.1系统功能描述

塞北村镇旅游网站的功能主要分为俩部分:前台界面管理和后台数据库管理。它的主要功能包括:对塞北人文的增加删除修改查看 ,对塞北故事的增加删除修改查看,对酒店信息进行增加删除修改预订,对旅游景点的信息进行增加删除修改查看,还有路线查询,天气预报、用户评价、管理员后台登录管理。这些具体的板块涵盖了网站的设计的总体布局。

首页塞北人文板块、塞北故事板块、酒店信息板块、旅游景点板块、自驾游线路板块、用户评论板块、在线留言板块、天气预报板块都有自己具体实现的操作,供客户进行选择和查看、管理。

3.2系统界面设计

一个美观、清晰、操作便捷的界面可以增加用户量,吸引更多的人进行访问。通过对界面的访问,用户可以在最短时间内了解该网站的功能、属性、特点等等,同样也可以满足自己的需求。所以,在进行界面设计的时候一定要多花时间使得界面具有吸引力并且以最少的语言和图形传达最多的信息。该网站在设计界面的时候是根据以下几个方面进行的:

  1. 图文搭配。在进行界面设计的时候,太多的文字会使得用户觉得晦涩难懂,不愿意多花时间去进行研究。所以很有必要用图片进行展示,再加以必要的简洁的文字说明,这样用户会节省大量的时间去浏览更多网页并且可以获得自己想要的信息。塞北旅游网站界面设计采用文字加图片的形式,文字可以直观的向用户传递具体模块构造与功能,而图片可以更加形象的让用户感受到旅游地方的具体实景。
  2. 界面设计应当美观大方。太多的文字会使人们感觉到无聊不愿意阅读,然而太多的图片、动画也同样会使得界面太过花哨,凡事应该讲究适度原则。所以,在进行界面设计的时候切记要做到美观大方。塞北村镇旅游网站在设计的时候秉承这个原则,整个界面大方又不失美感。既不是一味的进行文字说明,也不是夸张的色泽艳丽。
  3. 字体选用应该注意突出重点。文字说明的时候也有讲究,对于重点的内容,就应该加以特别说明,字体应该适当加粗或者换种颜色。
  4. 色彩搭配应该柔和。在进行界面美化设计方面,色彩搭配也是一个很重要的环节。界面应该具有自己的主色调,而这个主色调最好采用暖色,这样可以给人一种柔和亲切的感觉。另外,界面颜色不宜太多。与网站所宣传的内容相符合、有自己的特色就好。

3.3系统功能结构图

塞北村镇旅游网站是基于B/S体系结构的旅游网站。通过全方位综合分析,该系统功能设计相对比较全面,能够满足大部分用户的需求。但是,做到满足每一个客户要求也是不可能的,只能是争取尽可能完善网站功能,到达更好的效果。塞北村镇旅游网站主要是通过各功能模块的介绍,对塞北村镇旅游进行宣传,包括首页,塞北人文,塞北故事等部分。具体前后台各部分实现如图3-1网站前台结构、图3-2网站后台结构所示:

3-1 网站前台结构图

3-2 网站后台结构图

3.4系统设计目标

用户特点、系统属性特点和实际需求是系统目标重要的考虑因素,该网络管理系统应该尽量满足操作灵活,界面友好,使用方便等设计要求。本网站应实现下面提到的几个任务目标:

1.人机交互。用户可以方便快速的获取所需要的信息,同时系统必须可以给予客户及时的应答。界面设计灵活友好,数据存取安全。

 3.对塞北村镇旅游网站的质量进行评估,达到预期效果,各功能完善。

4.实现以上所述各部分模块的功能操作。

5.设置数据检查,尽量避免数据的冗杂和出错。

3.5系统实现的软硬件平台

(1)硬件系统:硬件平台实际上就是支撑系统进行开发运行的物理设备,具有计算,输入输出、存储等功能,即计算机或PC机。本网站由Windows操作系统作为硬件支撑平台得以实现。

(2)软件服务:Myeclipse、tomcat、SQL.

数据库设计

4.1数据库概念结构设计

数据库是每一个系统所必需具备的。数据库的主要用途是实现对各种资源数据的存储,提供给该网站多种服务。通俗来讲,数据库其实就是一组具有相互关联的信息资源的有序集合,这些信息以一定的方式存放在一起,供系统使用。而对于程序来说,其与数据库又保持高度的独立性。

  1. 客户资料实体:如图4-1用户信息实体属性图所示

图 4-1 用户信息实体属性图

  1. 景点资料实体:如图4-2景点实体属性图所示

图 4-2景点实体属性图

3)评价实体属性图:如图4-3评论实体属性图所示

图 4-3评论实体属性图

4)站内信息实体属性图:如图4-4新闻信息实体属性图所示

图 4-4新闻信息实体属性图

5)留言板实体属性:如图4-5留言板实体属性图所示

图 4-5 留言板实体属性图

6)数据库E-R图:如图4-6 E-R图所示

图 4-6 E-R图

4.2数据库逻辑结构设计

数据库其实可以理解为一个仓库,而这个仓库不像一般的仓库存放物体,这个仓库是用来存储数据信息的。而这些数据并不是杂乱无章的进行存储,它们是按照一定的结构、组织方式、方法规定将这些数据以最少的冗余度最好的方式存储在一起的数据的集合。数据库的逻辑结构就是根据E-R图转换而来的模型结构。数据库可以帮助系统整合数据信息,可以将数据库比作人的大脑系统,它帮助系统获取、记忆、识别信息。一个没有数据库的系统是无法完成特定功能要求的,更不能进行后台连接应用。塞北村镇旅游网站对数据库的逻辑结构进行个性化设计,保证数据存储的合理有效性。帮助网站进行客户数据信息的记录,整理从而使得该网站具有实践意义。

表4-1allusers是权限为管理员的信息表,记录数据库中所设定的信息。

表4-1 allusers

表4-2jingdianxinxi是景点的信息表,记录数据库中所设定的景点信息。

表4-2 jingdianxinxi

表4-3liuyanban是用户所留言的信息表,记录数据库中所记录的留言板信息。

表4-3 liuyanban

表4-4xinwentongzhi是新闻通知的信息表,记录数据库中所设定的新闻信息。

表4-4 xinwentongzhi

表4-5kefang是客房的信息表,记录数据库中所设定的酒店信息。

表4-5 kefang

表4-6yonghuzhuce是注册用户的信息表,记录数据库中所记录的用户信息。

表4-6 yonghuzhuce

4.3本章小结

在塞北村镇旅游网站的设计和实现过程中,对于后台管理的设计,首先是对数据库进行数据的概念结构进行设计,之后又对数据库的逻辑进行设计。这是因为一个适合本系统的数据库对于软件开发的十分重要的,所以本网站在数据库设计过程中花费了很长的时间,争取将数据存放在一个结构清晰,安排合理的数据库中,这样就可以有效的存储,满足用户要求。

系统详细设计

5.1主界面模块设计

塞北村镇旅游网站的首页界面设计以简单、便捷、清晰为主。色彩搭配柔和,最上边包含各个模块的链接,另外还有系统公告、站内新闻,村镇旅游景点图片,友情链接等部分组成。塞北主界面整体结构比较单调大方,网页最上边以不同色彩的字体显示网站的名称,并配有网站特征标志,而在界面的名称下边包括系统公告和用户登录、站内搜索、友情链接。另外,界面上还显示了站内新闻、酒店推荐和系统简介。除此之外,界面还配置相应的图片,显示部分景点风景。还有推荐酒店的具体详细图文。系统用户将光标移动到对应模块并进行单击时候,都会跳转到相应的另一个网页。例如,当单击塞北人文时,页面会进入到对应的塞北人文介绍网页界面。类似的,单击塞北故事时,页面也会进入到塞北故事介绍网页界面。点击酒店信息时,界面下端会出现塞北村镇旅游网站所有酒店信息供用户选择,包括酒店星级,编号,名称,电话,照片,操作等。而同样在旅游景点界面中,包括该旅游景点星级,名字,具体方位,简介,图片还有旅游价格。点击天气预报,出现天气预报界面,将鼠标移动到指定省或者地方之后会显示该地具体天气预报,点击旅游地图查询,可以查看各个地方旅游路线。点击在线评价模块,用户就能够对该网站服务进行评价或者给出意见。在用户申请模块中,用户可以根据自己的实际情况进行基本信息的设置与提供,等待管理员审核通过之后方能登录。登录后,可以对该网站的各个功能进行管理,进行增加删除修改预订等功能。下图中显示的是塞北村镇旅游网站的首页,点击各个板块之后运行效果也如图5-1首页效果图、图5-2首页塞北人文、图5-3首页酒店信息、图5-4首页景点信息、图5-5自驾游路线、图5-6首页天气预报、图5-7在线留言、图5-8用户注册、图5-9首页后台登录所示:

图5-1首页效果图

图5-2首页塞北人文

图5-3首页酒店信息

图5-4首页景点信息

图5-5自驾游路线

图5-6首页天气预报

图5-7在线留言

图5-8用户注册

图5-9首页后台登录

5.2用户注册模块设计

申请注册流程需要通过每一个使用该网站的客户提供个人详细资料完成对该网站的注册。用户注册完成后,经过管理员的审核以后方能成功登录。用户注册成功以后,可以进行预订管理,个人信息管理以及旅游路线管理等功能。同时,用户可以对该系统的服务进行在线评论,及时把意见反馈给管理人员。用户在注册过程中,对于某些信息可以不用填写,但是对于有标记*号的信息必须进行填写,否则的话,系统会自动弹出请输入用户名(密码)(姓名)的对话框,注册失败。其次,只有填写正确有效的详细信息才能提交成功,等待管理员审核。如图5-10用户注册界面、图5-11用户填写不成功、图5-12用户注册成功所示,本文用图片的方式详细展示了用户申请注册和注册成功的界面:

图51用户注册界面

图5-11信息填写不成功

图5-12 用户注册成功

5.3旅游景点模块设计

在该模块部分中,用户可以在此对显示出来的并且是自己感兴趣的旅游景点进行查看。点击首页的旅游景点之后,用户可以看到该网站上所有旅游景点的具体详细信息,在搜索栏的名称一栏中填写对应的找寻的名字,就可以显示符合该名称或者与该名称有相同关键字的旅游景点信息。同样的,在搜索栏中的星级栏中搜索某级景点,点击搜索按钮之后便可将对应的星级景点信息加以显示出来。供用户快速便捷的搜索到自己想要的旅游景点信息。如图5-13景点信息展示、图5-14景点名称查询、图5-15旅游景点效果图所示,可以清楚的看出,该部分风景的查询与显示。

图5-13景点信息展示

图5-14景点名称查询

图5-15旅游景点效果图

5.4酒店预定模块设计

塞北村镇旅游网站根据用户的实际需要,在该网站中加入了酒店预订部分。其目的在于为用户提供一体化的服务,同时减轻酒店工作人员的工作量,用户可以自己进行房间的选择与订购。用户登录以后,点击本网站首页最上边显示的酒店信息,就可以出现出本网站酒店的具体信息。点击出现页面操作栏的详细,就可以出现如下图所示的酒店详情。最下边一栏有酒店预订,点击相应按钮后,就可以提供详细的预定所需资料。当填写完基本预订信息之后,单击提交按钮,就会出现操作成功的对话框。点击确定以后,就可以返回到主界面上,此时,可以登录个人后台管理,查看自身已经预订的酒店信息。值得注意的是,酒店预订必须是在登录完成以后,才可以进行。如果没有进行客户登录,只可以进行具体资料查看操作但是却没有办法完成预订操作。如图5-16酒店详细信息图、图5-17酒店预订图、图5-18酒店预订成功图、图5-19酒店预订成功列表所示,可以清晰的展现出酒店订购模块的具体操作和运行效果

图5-16酒店详细信息图

图5-17酒店预订图

图5-18酒店预订成功图

图5-19酒店预定成功列表

5.5 后台管理设计

后台管理和数据库部分相连接,要求只有该登录名和密码与数据库所设置的用户一致时,才可以进行后台登录操作。只有符合数据库数据的用户名和密码才可以登录。登录后,可以实施各种操作。实现对网站基本信息的管理。系统功能列表里主要包括:1.账号管理,在这里管理员可以修改个人信息,包括密码和个人资料等等。2.用户注册管理部分是对该网站的申请注册的用户进行验证通过,管理员可以对该网站申请的所有用户进行删除修改和审核。审核通过以后,用户方可注册成功,成为该网站用户,实现以后一系列的操作。管理员也可以对该注册用户实施一票否定权,此时用户注册不成功。用户还需重新注册。3.塞北人文添加模块主要是对该网站中塞北人文的管理,管理员可以对塞北人文进行更新修改和删除。操作完成以后,在主页面的塞北人文模块可以相应的出现管理员之前修改或者更新过的塞北人文。再者,该模块还有塞北人文查询模块,管理员在对塞北人文添加更新完毕以后,可以在查询模块里找寻对应的修改,完成想要的操作。4.塞北故事管理模块同样包含俩部分内容,一是塞北故事添加,二是塞北故事查询。管理员可根据实际情况对塞北故事进行更新或者添加删除。操作完成以后,首页中的塞北故事模块就会显示相应的修改。而塞北故事查询模块是对管理员进行以上操作之后进行的查询工作。在这里,管理员可以对自己刚添加或者已经添加的塞北故事进行查看,确定是否添加成功。同样的,管理员对于自己添加的信息有所不满或者添加错误的时候,也可以进行相应的改正或者删除操作。5.塞北景点进行的操作包含塞北风景信息的添加和塞北风景的查询。同塞北人文和塞北故事模块一样,管理员也同样可以对景点信息进行适当的添加和实时更新。改正过后的景点具体资料同样可以在首页的景点信息模块得以显示。管理员在景点查询模块可以对自己已经添加修改过的景点信息进行查看,有错误的地方还可以修改或者删除。6.自驾游路线管理主要是对路线的实时更新和查询。管理员通过路线发布模块对塞北旅游网站进行路线的发布,方便广大旅客进行查找。在前台的首页部分也会相应的进行更新显示。而在旅游路线查询部分管理员同样可以进行旅游驾车线路的问询和修改。同以上三个模块功能基本相同,此处不做太多叙述。7.酒店信息管理模块一共涵盖三部分内容。包括信息添加,信息管理操作以及订购操作。在此模块中,除了和以上所介绍的模块一样管理员可以进行酒店信息的添加和查询管理,之后可以在主界面进行显示以外,又增加了一项新的功能,即酒店预订管理。所有该网站注册用户的酒店预订信息管理员都可以进行查看,这样可以方便帮助管理员安排与用户要求所相符合的酒店。同时,该酒店预订管理还可以进行搜索功能。管理员可根据需求搜索自己想要查询的酒店预订管理。还可以对已经预订的酒店信息进行添加和撤销等操作。8.留言板管理较为简单。该模块实现功能较为单一。管理员有权限对客户的在线评论进行一系列操作,包括删除和回复。管理员在查看用户留言之后,可针对用户提出来的问题或者意见进行回复和做出实时修改。这样解决了该网站管理员与广大客户之间的沟通交流问题。9.最后包括修改密码和退出登录模块。该项功能也比较简单,在上述的叙述中也有提到,在此不重复说明。后台管理模块具体实现的功能如图5-20后台管理功能所示:

图5-20后台管理功能

5.5.1后台登录模块设计

后台登录是整个系统的核心部分,在这里可以对该网站的信息进行基本的管理。登录页面设计清晰明了,由俩个文本框、一个选择文本框和俩个按钮构成。文本框内需要用户填写用户名和密码,选择文本框的权限是管理员。也就是说,只有管理员才可以登录,其他普通用户不可以登录。用户在上述文本框内填写管理员用户名与密码,若填写的用户和密码与数据库中管理员的用户和密码一致,方可进行登录,跳转到后台管理页面。如果所填写的用户和密码与数据库内容不一致,则无法进入跳转页面,进行相应的操作,同时系统还会显示错误信息,清空文本框内填写的信息。用户如果还需登录,那么就需要重新填写信息。后台登录模块的流程图如图5-21用户登录模块流程图、5-22后台登录界面以及图5-23后台登录失败、图5-24后台登录成功所示,从而进行显示,运行效果也如下。

图5-21 用户登陆模块流程图

图5-22后台登录界面

图5-23后台登录失败

图5-24后台登录成功

5.5.2旅游景点模块设计

旅游景点介绍和管理是整个网站的重点设计部分。景点信息需要及时进行更新和添加,管理员也可以对景点资料进行查阅。管理员在后台对景点添加模块对塞北村镇网站景点进行添加之后,点击提交按钮,会提示添加成功的对话框,按确定之后重新回到上一级页面。添加成功后,前台用户可以实时的看到管理员更新过的景点信息,以便进行更好的选择。同样的,管理员在后台对景点信息进行添加之后,还可以在景点信息查询模块对自己所修改过的景点信息进行查询操作,对应不满意的地方还可以进行进一步的修改删除。该模块最上边还设置有搜索框,管理员可以根据时间或者星级或者名称来查找相关景点资料信息。图5-25旅游景点后台管理、图5-26景点添加图、图5-27景点添加成功、图5-28景点信息查询、图5-29景点信息前台查询和图5-30景点信息添加页面所示,展示了该模块的运行示意图。

图5-25旅游景点后台管理

图5-26景点添加图

图5-27景点添加成功

图5-28景点信息查询

图5-29景点信息前台查询

图5-30旅游景点添加页面

5.5.3线路管理模块设计

路线管理实际上是为了方便广大用户,为其制定合理省时的路线方案。管理员可以对自驾游路线进行添加和查询。管理员在后台对旅游路线进行发布和更新,用户可以在前台首页点击自驾游路线进行路线的查看。而在后台自驾游路线查询中,管理员可以在此进行路线的查询,修改,删除等操作功能。而在自驾游路线查询页面的最上边设有路线编号,路线名称,目的地,交通工具,出行时间,发布人等栏目,管理员可以根据以上提示信息,填入关键字,对自己已经发布的路线进行查找。如图5-31路线添加界面、图5-32路线查询界面所示,展示了路线管理模块的实现图。

图5-31路线添加界面

图5-32路线查询界面

系统测试

6.1 测试的任务及目标

6.1.1测试的任务

软件测试的需要完成的任务有:在软件产品进行生产运营之前,以最少的时间成本和人力资源、最大限度的发现或者找出软件产品中已经存在的或者尚未发现的不足和漏洞,保证产品能够正常运转并且能够满足用户对产品的所有要求。同时可以有效的和系统工作人员互动,实现改进软件的最终目标。具体主要包括以下几个方面:

1.更早的发现并找出软件产品中的bug。

2.尽量多的避免软件缺陷的出现。

3.尽可能全面的评价软件产品的各项性能指标,保证软件产品的功能和容错性。

4.时刻关注需求的变化。

5.功能检查:检查每个部分功能能否运作,是否有漏洞或者运行不出来的情况。

6.性能检查:检查性能是否合格。

7.初始化、终止检查:检查程序是否能够正常开始和正常结束终止。

6.1.2测试的重要性及目标

     软件测试是软件开发过程中的一个重要部分环节,可以说在软件产品开发周期中起着举足轻重的地位。而在以前的软件开发中,并不重视测试部分。他们经常只是存在于系统的运行和维护阶段之前进行,其他部分并不涉及。所以,这就成了所发开的软件在完成之前进入投入使用的质量标准是否合格进行的唯一测试和保障。这就导致后期维护成本增加,系统漏洞出现频率增高。在最近几年来来,开发维护人员逐渐意识到系统测试的重要性,所以提出,应该在系统生命周期的每一个阶段都应该包含测试,这样就可以验证系统能否达到用户所期望的效果和需要,能否高效的实现了用户要求的全部功能,是否存在运行不出来或者运行出错的问题。若少了这些环节,不提早进行各个时间段的具体测试任务和细节,后期开发维护成本将会大幅度增加,而且问题的蔓延往往使得产品错上加错,越滚越大,最后甚至会导致软件开发难以继续进行进而宣告失败。

理论上具有很大的可行性,但是事实上,对于测试系统来讲,不论进行如何精细的测试方案、技术和方法,系统不可避免的还会出现错误。然而,创新合理的方法,周密的方案,新的语言,能够大大减少问题的发生的概率,绝对的避免问题的发生几乎是不能够完成的。测试人员应该通过测试不断修改完善系统中存在的问题。进行系统测试工作应该至少达到整个软件产品发开时间和任务的40%以上。因为测试占据重要地位,关乎软件开发成功与否,更关乎成本的投入数量。统计表明,典型的系统项目投入的总资金中,测试部分大概就要花百分之30到50的资金总额。如果没有合适的测试部分,也可以说在测试部分没有投入太多工作量就直接交付成品,可能就会导致二次开发、三次开发甚至多次开发的严重后果。最后不仅开发的系统不合格,资金投入高,严重时还会使得软件被弃用。这样说来,测试工作必须得花费时间仔细完成。正因为系统测试具有如此重要性,所以在运营之前进行测试是必不可少的,同样,测试可以到达的目标也是十分重要的。软件测试的目标主要是力求避免或者减少bug和漏洞的发生,以求可以确保系统的正常运行。

6.2测试方案

在测试的过程中,方案的选取是十分重要的。根据系统的不同,制定不同的测试方案,既能到达预测效果,又能节省成本,符合系统制定规则。而测试方案的设计是否成功,不仅仅只是资金和时间上的节省,更重要的是能否找到系统已经存在或者潜在的bug。能够找出多种证明系统错误或者漏洞的数据,这才是成功的测试数据和方案。黑盒测试以及白盒测试是经常使用到的两种固有方案。

黑盒测试也称为功能测试,主要针对接口之间。黑盒测试不在乎内部结构如何,它只关心程序能否实现已经规定好的各种功能,正确输入输出即能否正常接收数据然后获得预期效果一样的输出结果,同时保持程序结构的无差错性。黑盒测试的优点在于简单,便捷的获得想要的结果,找出系统错误,而不必担心程序内部如何运行,这就大大简化了测试人员的工作量又可以达到自己想要的结果。常用的黑盒测试方法主要包括:等价法、边界值分析法、因果图法、猜错法等等。

白盒测试又称为逻辑测试。该方法与黑盒测试方法正好相反,该方法关注的是程序内部逻辑的实现,而不在乎外部接口。白盒测试方法将系统看成一个透明的盒子,它关心的是程序内部实现逻辑和结构,对系统的逻辑路径及过程一一进行测试。检验系统是否与预期效果是否相符。白盒测试需要设计多种测试用例,对已有代码进行全方面的检测,保证代码的正确性。白盒测试的俩种方法有:逻辑覆盖法和路径覆盖法。该测试依照程序内部的逻辑结构顺序进行程序的检验,检验其程序中的正确性。

本系统开发过程进行的测试步骤如下:

6.2.1模块测试

模块测试在测试的过程中往往是一个常常选用的测试方案。其的要完成的任务是将系统一个部分一个部分的分开进行检验,保证每一个单元都能正常运行。在模块测试执行中出现的问题一般都是详细设计或者编码过程中出现的问题。简单通俗来说,单元测试其实就是根据已知条件和具体情况来检验某功能函数执行过程和结果是否可以达到要求。模块测试是由程序员自己完成,就像某程序员定义了一个函数,需要查看一下该函数是否能够正确执行,程序员可以自己设计一些代码段来对该函数进行验证。对软件产品而言,就可以及时发现不足加以改善。对于程序员而言,单元测试的良好习惯可以使得程序出错性低,产品质量好。

6.2.2集成测试

集成测试以单元测试为基础,在单元测试的前提条件下,将多个单元之间进行联合测试,发现这些单元之间的接口可能存在的问题。因为如果一个单元模块可以正常运行,但是将他们联合起来并不一定能够完成任务,达到预期效果。程序在某些局部反映不出来的问题,有可能在全局上就显示出来了。集成测试是一个过程,需要精细周密的设计,他的任务是检查各个不同模块相互间是否有连接错误问题。

在集成测试的多种测试方法中,渐增式集成测试是比较占有优势的,所以在本网站测试环节中,使用的是该联合测试方法。但是单一的测试方式是难以将测试方法做到完美,应该使用多种混合的方式,这样可以更多更早的发现软件产品中存在的问题。所以,在软件产品的上部采用自上而下,相反的,在软件的中下部采用自下而上的测试方法。多种方式可以相互结合,共同完成测试工作。

6.2.3验收测试

验收测试是最后一个操作,也称为交付测试。软件产品在完成以上模块,集成,系统测试之后,下一步就需要进行最后的检验。验收测试可以保障软件开发各项功能全部就绪,让客户最后决定其所需的所有任务。而验收测试所用的最多的方式是黑盒法,其常用的方法有三种:正式验收、Alpha测试和Beta测试。具体方式的采用往往根据各种标准和应用领域。

6.2.4平行运行

所谓平行运行其实就是将不同系统之间同时运行,比较不同系统之间的运行参数和结果,这样可以互为参考,同时便于新旧俩个系统的处理结果进行比较。这样做的目的有:

1.系统能够在已有的准确的生产环境中运行试验,减少系统风险;

2.能够对各种已经交付的指南、说明、手册等的文档进行验证;

3.对于用户来说,对新系统的熟悉也比较方便;

4.可以准确检验软件成品的各种功能和性能指标,对新系统进行合理的分析。

6.3系统评价

系统评价是指系统测试交付成功以后,运行一定时间内,对该系统进行客观的评价,包括功能性能,技术,反应速度等各个方面的评价。根据该网站的评价如下:

(1)系统功能评价

该网站的所有需求基本上得以实现,网站运行良好,得到了用户和管理者的基本需求。

(2)系统技术评价

本网站采用的技术合理,容错性强,运行稳定可靠,大大提高了网站效率,同时技术简单易懂,安全实用。

(3)系统经济评价

在指定时间内,达到系统目标要求,且经济成本低廉,实用。各项性能指标都合格。

6.4本章小结

    本章主要介绍了系统测试模块所采用的几种测试方案。每一个系统在发开阶段都应该注意系统测试部分,因为测试可以及时发现问题,找出系统不足的地方,进行全面的修改,这样就可以减少后期维护成本,开发出来的产品性能才会比较高。

结论

在塞北村镇旅游网站的设计和实现过程中,最开始通过网上问卷调查等方式对该网站进行了系统的需求分析,向广大互联网用户了解到旅游网站一般应该具备哪些基本的功能与特征。然后下一步对网站从技术上,经济上,操作上进行可行性分析,分别对这三方面可行性进行分析确认。可行性分析通过之后又进入详细设计阶段,这个阶段主要是对数据库进行选择和设计。这一过程非常重要,是整个详细设计阶段的最重要部分。只有数据库设计合理有效,才能为下面一系列模块实现工作打下坚实的基础,为具体工作做好准备。最后是划分各个部分所要实现的内容,然后着手每个部分代码的实现。

该网站开发采用MyEclipse作为开发工具,运用JSP,JAVA,HTML等技术,SQL2005数据库这样一个简单的小型数据库。整个界面便清晰便捷,客户使用起来简单方便。在网站的开发过程中,特别注意强调的是,开发过程采用的是边开发边测试。这样就可以及时发现问题,及时改正。不然会因为前期工作的失败造成后续工作额度难以推行,找不到出错位置。首先进行单元测试,确保各个模块正确无误之后再进行下一模块代码的编写与实现,最后进行个模块接口的实现,完成模块之间的整合,最后进行一次最终的测试。考虑到该网站在未来投入使用过程中不可避免的出现各种错误操作,还需要对系统可能出现的各种异常都进行提示框处理。完成具体模块功能以及整合后,还需要修修改改,不断美化界面,达到完美。最终实现了集性能稳定及页面美观为一体的一个完整的旅游网站。

塞北村镇旅游网站基本可以满足塞北村镇对其当地景点宣传的需要。基本上达到了预期效果。但是,人无完人,笔者在网站设计过程中,不可避免的还会有一些不完善的现象,比如说,功能实现不够细致还需进一步深思改正,界面设计不太美观还需要进一步美化等等。另外,在数据存储上可能也存在一定缺陷,数据表的设计也存在不足。一些功能的实现没有找到最简便的方法,代码太长导致网站系统反应时间太长等等。根据系统的不足,继续改进和完善本系统。虽然存在上述问题,但是整体而言,本网站有许多地方还是做的非常不错,希望可以在以后的学习工作中不断完善与改正。

附录

该代码实现了塞北村镇旅游网站的主界面设计,现附录关键程序代码如下:

</style>

</head>

<script language="javascript">

function check()

{

       if(document.form1.yonghuming.value==""){alert("请输入用户名");document.form1.yonghuming.focus();return false;}if(document.form1.mima.value=="")

{alert("请输入密码");document.form1.mima.focus();return false;}if(document.form1.xingming.value=="")

{alert("请输入姓名");document.form1.xingming.focus();return false;}

}

functiongow()

{

document.location.href="yonghuzhuce_add.jsp?jihuabifffanhao="+document.form1.jihuabifffanhao.value;

}

</script>

对于景点信息界面,可以进行景点的选择与查看功能,管理员还可以在后台进行对该模块操作,实现对景点信息的添加删除和修改。实现该模块的核心代码如下所示:

<link rel="stylesheet" type="text/css" href="<%=path %>/css/base.css" />

curpage=1;

}

if (curpage==0)

{

curpage=1;

}

if(curpage>zys)

{

curpage=zys;

}

//out.print(curpage);

      

String sql="select top "+page_record+" * from shangpinxinxi where id not in (select top "+((curpage-1)*page_record)+" id from shangpinxinxi order by id desc) ";                     

if(sc.equals(""))

{}

else

{

sql=sql+" and "+ltt+" like '%"+qd+"%'";

}

sql=sql+" order by id desc";                        

ResultSetRS_result=connDbBean.executeQuery(sql);

while(RS_result.next()){

i=i+1;

j=j+1;

id=RS_result.getString("id");

bianhao=RS_result.getString("bianhao");

mingcheng=RS_result.getString("mingcheng");

tupian=RS_result.getString("tupian"); %>

实现酒店预订的核心代码如下所示:

<%

String jiudianmingcheng=request.getParameter("jiudianmingcheng");String kefangbianhao=request.getParameter("kefangbianhao");String jiage=request.getParameter("jiage");String yudingshijian=request.getParameter("yudingshijian");String yudingtianshu=request.getParameter("yudingtianshu");String nindexingming=request.getParameter("nindexingming");String nindedianhua=request.getParameter("nindedianhua");String nindeshenfenzheng=request.getParameter("nindeshenfenzheng");String beizhu=request.getParameter("beizhu");String yonghuming=request.getParameter("yonghuming");

String id=request.getParameter("id");

String sql="update jiudianyuding set jiudianmingcheng='"+jiudianmingcheng+"',kefangbianhao='"+kefangbianhao+"',jiage='"+jiage+"',yudingshijian='"+yudingshijian+"',yudingtianshu='"+yudingtianshu+"',nindexingming='"+nindexingming+"',nindedianhua='"+nindedianhua+"',nindeshenfenzheng='"+nindeshenfenzheng+"',beizhu='"+beizhu+"',yonghuming='"+yonghuming+"' where id= "+id;

connDbBean.executeUpdate(sql);

out.print("<script>alert('修改成功!!');

location.href='jiudianyuding_updt.jsp?id="+id+"';</script>"); %>

在后台登录模块中,权限为管理员的用户方可登录成功,进行一系列的后台管理操作,核心程序代码如下:

String uid=request.getParameter("username");

String pwd=request.getParameter("pwd");

String cx=new String(request.getParameter("cx").getBytes("8859_1"));

String sql="";

if(cx.equals("员工"))

{

sql="select * from [yuangongxinxi] where yonghuming='"+uid+"' and mima='"+pwd+"'";

}

else

{

sql="select * from [allusers] where username='"+uid+"' and pwd='"+pwd+"'";

}

ResultSetRS_result=connDbBean.executeQuery(sql);

if(!RS_result.next())

{

out.print("<script>alert('你输入的用户不存在或密码错误,请重新登录!');

window.history.go(-1);</script>");

}

else{

session.setAttribute("username",uid);

if(cx.equals("员工"))

{

session.setAttribute("cx","员工");

}

else

{

session.setAttribute("cx",RS_result.getString("cx"));

}

response.sendRedirect("main.jsp");

}

RS_result.close();

%>

景点后台管理可以对景点信息进行添加和查询修改操作,实现其关键程序代码如下所示:

String sql="insert into xinwentongzhi(biaoti,leibie,neirong,tianjiaren,shouyetupian,dianjilv) values('"+biaoti+"','"+leibie+"','"+neirong+"','"+tianjiaren+"','"+shouyetupian+"','"+dianjilv+"') ";

connDbBean.executeUpdate(sql);

out.print("<script>alert('添加成功!!')

;location.href='xinwentongzhi_add.jsp?lb="+leibie+"';</script>");

在实现自驾游路线管理模块中,管理员可以对路线进行实时修改和更新,以方便广大用户进行路线的选择。实现该功能的核心代码如下:

<%

intcurpage=1;//当前页

intpage_record=10;//每页显示的记录数

intzgs=0;

intzys=0;

//用下面的方法(sql查询完成,速度快)

String hsgnpage=request.getParameter("page");

String fysql="select count(id) as ss from shangpinxinxi";

ResultSetRS_resultfy=connDbBean.executeQuery(fysql);

while(RS_resultfy.next()){

zgs=Integer.parseInt(RS_resultfy.getString("ss"));

zys=zgs/page_record+1;

}

if (hsgnpage!=null)

{

curpage=Integer.parseInt(request.getParameter("page"));//获取传递的值,需要显示的页

}

else

{

curpage=1;

}

参考文献

[1]张文琳.基于JSP的旅游网站设计与实现.经营管理者.2014

[2]刘昱.旅游网站系统设计与实现.电子科技大.2011.11

[3]王青.旅游网站的优化设计研究.北京印刷学院  2011.07

[4]王国辉.Java Web 开发实战宝典[M].清华大学出版社.2010.1.

[5]王海心.大学生互助旅游网站设计与运营研究.龙江科技信息.2016

[6]张红.利用Java Servlet实现在Web服务器平台上的开发.[J].桂林电子科技大学学报.2009.29(3).

[7]黄勇. 基于JSP的电子商务系统中关键技术研究[J], 商场现代化, 2008.1(528): 133~134.

[8]Marty Hall, Larry Brown著. Servlet与JSP核心编程(第2版)[M]:北京.清华大学出版社.

[9]Christine Canning Esposito.The business of restoring a car’s beauty.[J].Coatings World .2002.7(9).

[10] David Flanagan. JavaScript: The Definitive Guide[M]. O'Reilly Media, Inc.2006.

英文原文

THE TECHNIQUE DEVELOPMENT HISTORY OF JSP

    The Java Server Pages( JSP) is a kind of according to web of the script plait distance technique, similar carries the script language of Java in the server of the Netscape company of server- side JavaScript( SSJS) and the Active Server Pages(ASP) of the Microsoft. JSP compares the SSJS and ASP to have better can expand sex, and it is no more exclusive than any factory or some one particular server of Web. Though the norm of JSP is to be draw up by the Sun company of, any factory can carry out the JSP on own system.

The After Sun release the JSP( the Java Server Pages) formally, the this kind of new  Web application development technique very quickly caused the people's concern. JSP provided a special development environment for the Web application that establishes the high dynamic state. According to the Sun parlance, the JSP can adapt to include the Apache WebServer, IIS4.0 on the market at inside of 85% server product.

This chapter will introduce the related knowledge of JSP and Databases, and JavaBean related contents, is all certainly rougher introduction among them basic contents, say perhaps to is a Guide only, if the reader needs the more detailed information, pleasing the book of consult the homologous JSP.

1.1 GENERALIZE

The JSP(Java Server Pages) is from the company of Sun Microsystems initiate, the many companies the participate to the build up the together of the a kind the of dynamic the state web the page technique standard, the it have the it in the construction the of the dynamic state the web page the strong but the do not the especially of the function. JSP and the technique of ASP of the Microsoft is very alike. Both all provide the ability that mixes with a certain procedure code and is explain by the language engine to carry out the procedure code in the code of HTML. Underneath we are simple of carry on the introduction to it.

JSP pages are translated into servlets. So, fundamentally, any task JSP pages can perform could also be accomplished by servlets. However, this underlying equivalence does not mean that servlets and JSP pages are equally appropriate in all scenarios. The issue is not the power of the technology, it is the convenience, productivity, and maintainability of one or the other. After all, anything you can do on a particular computer platform in the Java programming language you could also do in assembly language. But it still matters which you choose.

JSP provides the following benefits over servlets alone:

   • It is easier to write and maintain the HTML. Your static code is ordinary HTML: no extra backslashes, no double quotes, and no lurking Java syntax.

   • You can use standard Web-site development tools. Even HTML tools that know nothing about JSP can be used because they simply ignore the JSP tags.

   • You can divide up your development team. The Java programmers can work on the dynamic code. The Web developers can concentrate on the presentation layer. On large projects, this division is very important. Depending on the size of your team and the complexity of your project, you can enforce a weaker or stronger separation between the static HTML and the dynamic content.

Now, this discussion is not to say that you should stop using servlets and use only JSP instead. By no means. Almost all projects will use both. For some requests in your project, you will use servlets. For others, you will use JSP. For still others, you will combine them with the MVC architecture . You want the appropriate tool for the job, and servlets, by themselves, do not complete your toolkit.

1.2 SOURCE OF JSP                  

The technique of JSP of the company of Sun, making the page of Web develop the personnel can use the HTML perhaps marking of XML to design to turn the end page with format. Use the perhaps small script future life of marking of JSP becomes the dynamic state on the page contents.( the contents changes according to the claim of)

The Java Servlet is a technical foundation of JSP, and the large Web applies the development of the procedure to need the Java Servlet to match with with the JSP and then can complete, this name of Servlet comes from the Applet, the local translation method of now is a lot of, this book in order not to misconstruction, decide the direct adoption Servlet but don't do any translation, if reader would like to, can call it as" small service procedure". The Servlet is similar to traditional CGI, ISAPI, NSAPI etc. Web procedure development the function of the tool in fact, at use the Java Servlet hereafter, the customer need not use again the lowly method of CGI of efficiency, also need not use only the ability come to born page of Web of dynamic state in the method of API that a certain fixed Web server terrace circulate. Many servers of Web all support the Servlet, even not support the Servlet server of Web directly and can also pass the additional applied server and the mold pieces to support the Servlet. Receive benefit in the characteristic of the Java cross-platform, the Servlet is also a terrace irrelevant, actually, as long as match the norm of Java Servlet, the Servlet is complete to have nothing to do with terrace and is to have nothing to do with server of Web. Because the Java Servlet is internal to provide the service by the line distance, need not start a progress to the each claimses, and make use of the multi-threading mechanism can at the same time for several claim service, therefore the efficiency of Java Servlet is very high.

But the Java Servlet also is not to has no weakness, similar to traditional CGI, ISAPI, the NSAPI method, the Java Servlet is to make use of to output the HTML language sentence to carry out the dynamic state web page of, if develop the whole website with the Java Servlet, the integration process of the dynamic state part and the static state page is an evil-foreboding dream simply. For solving this kind of weakness of the Java Servlet, the SUN released the JSP.

A number of years ago, Marty was invited to attend a small 20-person industry roundtable discussion on software technology. Sitting in the seat next to Marty was James Gosling, inventor of the Java programming language. Sitting several seats away was a high-level manager from a very large software company in Redmond, Washington. During the discussion, the moderator brought up the subject of Jini, which at that time was a new Java technology. The moderator asked the manager what he thought of it, and the manager responded that it was too early to tell, but that it seemed to be an excellent idea. He went on to say that they would keep an eye on it, and if it seemed to be catching on, they would follow his company's usual "embrace and extend" strategy. At this point, Gosling lightheartedly interjected "You mean disgrace and distend."

 Now, the grievance that Gosling was airing was that he felt that this company would take technology from other companies and suborn it for their own purposes. But guess what? The shoe is on the other foot here. The Java community did not invent the idea of designing pages as a mixture of static HTML and dynamic code marked with special tags. For example, Cold Fusion did it years earlier. Even ASP (a product from the very software company of the aforementioned manager) popularized this approach before JSP came along and decided to jump on the bandwagon. In fact, JSP not only adopted the general idea, it even used many of the same special tags as ASP did.

The JSP is an establishment at the model of Java servlets on of the expression layer technique, it makes the plait write the HTML to become more simple.Be like the SSJS, it also allows you carry the static state HTML contents and servers the script mix to put together the born dynamic state exportation. JSP the script language that the Java is the tacit approval, however, be like the ASP and can use other languages( such as JavaScript and VBScript), the norm of JSP also allows to use other languages.

1.3JSP CHARACTERISTICS

Is a service according to the script language in some one language of the statures system this kind of discuss, the JSP should be see make is a kind of script language. However, be a kind of script language, the JSP seemed to be too strong again, almost can use all Javas in the JSP.

Be a kind of according to text originally of, take manifestation as the central development technique, the JSP provided all advantages of the Java Servlet, and, when combine with a JavaBeans together, providing a kind of make contents and manifestation that simple way that logic separate. Separate the contents and advantage of logical manifestations is, the personnel who renews the page external appearance need not know the code of Java, and renew the JavaBeans personnel also need not be design the web page of expert in hand, can use to take the page of JavaBeans JSP to define the template of Web, to build up a from have the alike external appearance of the website that page constitute. JavaBeans completes the data to provide, having no code of Java in the template thus, this means that these templates can be written the personnel by a HTML plait to support. Certainly, can also make use of the Java Servlet to control the logic of the website, adjust through the Java Servlet to use the way of the document of JSP to separate website of logic and contents.

Generally speaking, in actual engine of JSP, the page of JSP is the edit and translate type while carry out, not explain the type of. Explain the dynamic state web page  development tool of the type, such as ASP, PHP3 etc., because speed etc. reason, have already can't satisfy current the large electronic commerce needs appliedly, traditional development techniques are all at to edit and translate the executive way change, such as the ASP → ASP+;PHP3 → PHP4.

In the JSP norm book, did not request the procedure in the JSP code part( be called the Scriptlet) and must write with the Java definitely. Actually, have some engines of JSP are adoptive other script languages such as the EMAC- Script, etc., but actually this a few script languages also are to set up on the Java, edit and translate for the Servlet to carry out of. Write according to the norm of JSP, have no Scriptlet of relation with Java also is can of, however, mainly lie in the ability and JavaBeans, the Enterprise JavaBeanses because of the JSP strong function to work together, so even is the Scriptlet part not to use the Java, edit and translate of performance code also should is related with Java.

1.4JSP MECHANISM

To comprehend the JSP how unite the technical advantage that above various speak of, come to carry out various result easily, the customer must understand the differentiation of" the module develops for the web page of the center" and" the page develops for the web page of the center" first.

The SSJS and ASP are all in several year ago to release, the network of that time is still very young, no one knows to still have in addition to making all business, datas and the expression logic enter the original web page entirely heap what better solve the method. This kind of model that take page as the center studies and gets the very fast development easily. However, along with change of time, the people know that this kind of method is unwell in set up large, the Web that can upgrade applies the procedure. The expression logic write in the script environment was lock in the page, only passing to shear to slice and glue to stick then can drive heavy use. Express the logic to usually mix together with business and the data logics, when this makes be the procedure member to try to change an external appearance that applies the procedure but do not want to break with its llied business logic, apply the procedure of maintenance be like to walk the similar difficulty on the eggshell. In fact in the business enterprise, heavy use the application of the module already through very mature, no one would like to rewrite those logics for their applied procedure.HTML and sketch the designer handed over to the implement work of their design the Web plait the one who write, make they have to double work- Usually is the handicraft plait to write, because have no fit tool and can carry the script and the HTML contents knot to the server to put together. Chien but speech, apply the complexity of the procedure along with the Web to promote continuously, the development method that take page as the center limits sex to become to get up obviously.

At the same time, the people always  at look  for the  better method  of build  up the  Web application procedure, the module  spreads in  customer's machine/ server the realm. JavaBeans and ActiveX were published the company to expand to apply the procedure developer for Java and Windows to use to come to develop the complicated procedure quickly by" the fast application procedure development"( RAD) tool. These techniques make the expert in the some realm be able to write the module for the perpendicular application plait in the skill area, but the developer can go fetch the usage directly but need not control the expertise of this realm.

Be a kind of take module as the central development terrace, the JSP appeared. It with the JavaBeans and Enterprise JavaBeans( EJB) module includes the model of the business and the data logic for foundation, provide a great deal of label and a script terraces to use to come to show in the HTML page from the contents of JavaBeans creation or send a present in return. Because of the property that regards the module as the center of the JSP, it can drive Java and not the developer of Java uses equally. Not the developer of Java can pass the JSP label( Tags) to use the JavaBeans that the deluxe developer of Java establish. The developer of Java not only can establish and use the JavaBeans, but also can use the language of Java to come to control more accurately in the JSP page according to the expression logic of the first floor JavaBeans.

See now how JSP is handle claim of HTTP. In basic claim model, a claim directly was send to JSP page in. The code of JSP controls to carry on hour of the logic processing and module of JavaBeanses' hand over with each other, and the manifestation result in dynamic state bornly, mixing with the HTML page of the static state HTML code. The Beans can be JavaBeans or module of EJBs. Moreover, the more complicated claim model can see make from is request other JSP pages of the page call sign or Java Servlets.

The engine of JSP wants to chase the code of Java that the label of JSP, code of Java in the JSP page even all converts into the big piece together with the static state HTML contents actually. These codes piece was organized the Java Servlet that customer can not see to go to by the engine of JSP, then the Servlet edits and translate them automatically byte code of Java.

Thus, the visitant that is the website requests a JSP page, under the condition of it is not knowing, an already born, the Servlet actual full general that prepared to edit and translate completes all works, very concealment but again and efficiently. The Servlet is to edit and translate of, so the code of JSP in the web page does not need when the every time requests that page is explain. The engine of JSP need to be edit and translate after Servlet the code end is modify only once, then this Servlet that editted and translate can be carry out. The in view of the fact JSP engine auto is born to edit and translate the Servlet also, need not procedure member begins to edit and translate the code, so the JSP can bring vivid sex that function and fast developments need that you are efficiently.

Compared with the traditional CGI, the JSP has the equal advantage. First, on the speed, the traditional procedure of CGI needs to use the standard importation of the system to output the equipments to carry out the dynamic state web page born, but the JSP is direct is mutually the connection with server. And say for the CGI, each interview needs to add to add a progress to handle, the progress build up and destroy by burning constantly and will be a not small burden for calculator of be the server of Web. The next in order, the JSP is specialized to develop but design for the Web of, its purpose is for building up according to the Web applied procedure, included the norm and the tool of a the whole set. Use the technique of JSP can combine a lot of JSP pages to become a Web  application procedure very expediently.

中文翻译

 JSP的技术发展历史

Java Server Pages(JSP)是一种基于web的脚本编程技术,类似于网景公司的服务器端Java脚本语言—— server-side JavaScript(SSJS)和微软的Active Server Pages(ASP)。与SSJS和ASP相比,JSP具有更好的可扩展性,并且它不专属于任何一家厂商或某一特定的Web服务器。尽管JSP规范是由Sun公司制定的,但任何厂商都可以在自己的系统上实现JSP。

在Sun正式发布JSP(Java Server Pages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照Sun的说法,JSP能够适应市场上包括Apache WebServer、IIS4.0在内的85%的服务器产品。

本文将介绍JSP相关的知识,以及JavaBean的相关内容,当然都是比较粗略的介绍其中的基本内容,仅仅起到抛砖引玉的作用,如果读者需要更详细的信息,请参考相应的JSP的书籍。

1.1 概述

    JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,其在动态网页的建设中有其强大而特别的功能。JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。下面我们简单的对它进行介绍。

    JSP页面最终会转换成servlet。因而,从根本上,JSP页面能够执行的任何任务都可以用servlet来完成。然而,这种底层的等同性并不意味着servlet和JSP页面对于所有的情况都等同适用。问题不在于技术的能力,而是二者在便利性、生产率和可维护性上的不同。毕竟,在特定平台上能够用Java编程语言完成的事情,同样可以用汇编语言来完成,但是选择哪种语言依旧十分重要。

和单独使用servlet相比,JSP提供下述好处:

JSP中HTML的编写与维护更为简单。JSP中可以使用常规的HTML:没有额外的反斜杠,没有额外的双引号,也没有暗含的Java语法。

能够使用标准的网站开发工具。即使是那些对JSP一无所知的HTML工具,我们也可以使用,因为它们会忽略JSP标签(JSP tags)。

可以对开发团队进行划分。Java程序员可以致力于动态代码。Web开发人员可以将经理集中在表示层(presentation layer)上。对于大型的项目,这种划分极为重要。依据开发团队的大小,及项目的复杂程度,可以对静态HTML和动态内容进行弱分离(weaker separation)和强分离(stronger separation)。

此处的讨论并不是说人们应该放弃使用servlet而仅仅使用JSP。事实上,几乎所有的项目都会同时用到这两种技术。在某些项目中,更适宜选用servlet,而针对项目中的某些请求,我们可能会在MVC构架下组合使用这两项技术。我们总是希望用适当的工具完成相对应的工作,仅仅是servlet并不一定能够胜任所有工作。

1.2 JSP的由来

    Sun公司的JSP技术,使Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的)。

    Java Servlet是JSP技术的基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成,Servlet这个名称源于Applet,现在国内的翻译方式很多,本书为了避免误会,决定直接采用Servlet而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI、ISAPI、NSAPI等Web程序开发工具的作用是相似的,在使用Java Servlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合Java Servlet规范,Servlet是完全与平台无关且是与Web服务器无关的。由于Java Servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Java Servlet效率非常高。

但Java Servlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程会非常难以实现。为了解决Java Servlet的这种缺点,SUN推出了JSP。

    许多年前,Marty受到邀请,参加一个有关软件技术的小型研讨会.坐在Marty旁边的人是James Gosling--- Java编程语言的发明者。隔几个位置,是来自华盛顿一家大型软件公司的高级经理。在讨论过程中,研讨会的主席提出了Jini的议题,这在当时是一项新的Java技术。主席向该经理询问他的想法.他回答说,虽然现在言之过早,但这看起来会是非常有前途的一项技术。他们会持续关注这项技术,如果这项技术变得流行起来,他们会遵循公司的“接受并扩充(embrace and extend)”的策略.此时, Gosling随意地插话说“你的意思其实就是不接受且不扩充(disgrace and distend)。”

在此, Gosling的抱怨显示出,他感到这个公司会从其他公司那里拿走技术,用于他们自己的目的.出人意料的是,形势已经完全不同。Java团队并没有发明这一思想----将页面设计成由静态HTML和用特殊标签标记的动态代码混合组成.。ColdFusion多年前就已经这样做了。甚至ASP(来自于前述经理所在公司的一项产品)都在JSP出现之前推广了这种方式。实际上,JSP不只采用了这种通用概念,它甚至使用许多和ASP相同的特殊标签。

JSP是建立在Java servlets模型之上的表达层技术,它使编写HTML变得更简单。像SSJS一样,它也允许你将静态HTML内容与服务器端脚本混合起来生成动态输出。JSP把Java作为默认的脚本语言,然而,就像ASP可以使用其他语言(如JavaScript和VBScript)一样,JSP规范也允许使用其他语言。

1.3 JSP的特点

按照脚本语言是服务于某一个子系统的语言这种论述,JSP应当被看作是一种脚本语言。然而,作为一种脚本语言,JSP又显得过于强大了,在JSP中几乎可以使用全部的Java类。

作为一种基于文本的、以显示为中心的开发技术,JSP提供了Java Servlet的所有好处,并且,当与一个JavaBeans类结合在一起时,JSP提供了一种使内容和显示逻辑分开的简单方式。分开内容和显示逻辑的好处是,更新页面外观的人员不必懂得Java代码,而更新JavaBeans类的人员也不必是设计网页的行家里手,就可以用带JavaBeans类的JSP页面来定义Web模板,以建立一个由具有相似的外观的页面组成的网站。JavaBeans类完成数据提供,这样在模板中就没有Java代码,这意味着这些模板可以由一个HTML编写人员来维护。当然,也可以利用Java Servlet来控制网站的逻辑,通过Java Servlet调用JSP文件的方式来将网站的逻辑和内容分离。

一般来说,在实际的JSP引擎中,JSP页面在执行时是编译式,而不是解释式的。解释式的动态网页开发工具如ASP、PHP3等由于速度等原因已经满足不了当前大型电子商务应用的需要了,传统的开发技术都在向编译执行的方式改变,如ASP→ASP+;PHP3→PHP4。

在JSP规范书中,并没有明确要求JSP中的程序代码部分(称为Scriptlet)一定要用Java来写。实际上,有一些JSP引擎就是采用的其他脚本语言,如EMAC-Script、WebL等,但实际上这几种脚本语言也是构建在Java上面,编译为Servlet来实现的。按照JSP规范书写,和Java没有任何关系的Scriptlet也是可以的,不过,由于JSP的强大功能主要在于能和JavaBeans、Enterprise JavaBeans共同运转,所以即使是Scriptlet部分不使用Java,编译成的执行代码也应该是与Java相关的。

1.4 JSP的机制

要理解JSP怎样联合以上各种所提到的技术的优点,从而轻而易举地实现各种效果,用户必须首先了解“组件为中心的网页开发”和“页面为中心的网页开发”的区别。

SSJS和ASP都是在几年前推出的,那时网络还很年轻,没有人知道除了把所有的商务、数据和表达逻辑统统堆进原始网页中之外还有什么更好的解决方法。这种以页面为中心的模型容易学习并且得到相当快速的发展。然而,随着时间的推移,人们认识到这种方法不适于构建大型的、可升级的Web应用程序。在脚本环境中书写的表达逻辑被锁在页面内,只有通过剪切和粘贴才能被重用。表达逻辑通常和商务及数据逻辑混在一起,这使得当程序员试图改变一个应用程序的外观而不想破坏与之紧密结合的商务逻辑时,应用程序的维护就变得十分艰难。其事实上,企业中可重用组件的应用早已经很成熟,没有人愿意为它们的应用程序重写那些逻辑。HTML和图形设计师把它们的设计的实施工作交给了Web编写者,使他们不得不加倍工作—— 常常是手工编写,因为没有合适的工具可以把服务器端脚本与HTML内容结合起来。简而言之,随着Web应用程序的复杂性不断提升,以页面为中心的开发方式的局限性变得明显起来。

与此同时,人们一直在寻找建立Web应用程序的更好方法,组件在客户机/服务器领域流行起来。JavaBeans和ActiveX被“快速应用程序开发”(RAD)工具发行商推广给Java和Windows应用程序开发者用来快速开发复杂的程序。这些技术使某领域内的专家可以为本领域内的垂直应用编写组件,而开发者可以直接拿来使用而不必掌握这一领域的专门技术。

作为一种以组件为中心的开发平台,JSP出现了。它以JavaBeans和Enterprise JavaBeans(EJB)组件包含商务和数据逻辑的模型为基础,提供大量标签和一个脚本平台用来在HTML页中显示由JavaBeans产生或回送的内容。由于JSP的以组件为中心的性质,它可以被Java和非Java开发者同样使用。非Java开发者可以通过JSP的标签(Tags)来使用高级Java开发者创建的JavaBeans。Java开发者不仅可以创建和使用JavaBeans,还能在JSP页中使用Java语言来更精密地控制基于底层JavaBeans的表达逻辑。

    现在来看看JSP是如何处理HTTP请求的。在基本请求模型中,一个请求直接被送到JSP页中。JSP代码控制着进行逻辑处理时与JavaBeans组件的交互,并在动态生成的、混合了静态HTML代码的HTML页中显示结果。Beans 可以是JavaBeans 或EJB组件。另外,更加复杂的请求模型可看作从被请求页呼叫其他JSP页或Java Servlets。

JSP引擎实际上要把JSP标签、JSP页中的Java代码甚至连同静态HTML内容都转换为大块的Java代码。这些代码块被JSP引擎组织到用户看不到的Java Servlet中去,然后Servlet自动把它们编译成Java字节码。这样,当网站的访问者请求一个JSP页时,在它不知道的情况下,一个已经生成的、预编译过的Servlet实际上将完成所有的工作,非常隐蔽而又高效。因为Servlet是编译过的,所以网页中的JSP代码不需要在每次请求该页时被解释一遍。JSP引擎只需在Servlet代码最后被修改后编译一次,然后这个编译过的Servlet就可以被执行了。由于是JSP引擎自动生成并编译Servlet,不用程序员动手编译代码,所以JSP能带给你高效的性能和快速开发所需的灵活性。

和传统的CGI相比较,JSP有相当的优势。首先,在速度上,传统的CGI程序需要使用系统的标准输入输出设备来实现动态网页的生成,而JSP是直接和服务器相关联的。而且对于CGI来说,每一个访问就需要新增加一个进程来处理,进程不断地建立和销毁对于作为Web服务器的计算机将是不小的负担。其次,JSP是专门为Web开发而设计的,其目的是为了建立基于Web的应用程序,其中包含了一整套的规范和工具。使用JSP技术可以很方便地将一大堆JSP页面组合成为一个Web应用程序。

参考资料:

Java毕业设计174例,包含部署视频-CSDN博客

Java毕业设计174例,包含部署视频-CSDN博客

基于java的旅游网站系统(项目报告+答辩PPT+源代码+数据库+截图+辅导视频)

基于java的旅游网站系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业课程设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值