1、基于JavaWeb技术的旅游网站的设计与实现论文作者姓名:申请学位专业:网络工程申请学位类别:工学学士指导教师姓名(职称):论文提交日期:基于JavaWeb技术的旅游网站的设计与实现摘 要由于互联网的快速的发展和使用人数的普遍提高,计算机和互联网在人们生活中的地位已经表现的越来越重要了。将旅游行业与互联网结合在一起已经成为了一种必然的趋势。旅游行业最重要的就是应该要有完善的旅游信息供人们了解各地名胜风景及其周边信息,通过计算机网络技术可以轻松的收集、整理各种旅游信息。相比过去传统的方法,如通过书籍、报刊等获取旅游信息,计算机网络技术大大节省了人们耗费的时间与精力。将计算机网络技术与旅游行业结合
2、起来不仅方便了人们的生活出行,并且有助于加快旅游行业的整体发展。此文根据旅游行业目前的发展趋势,提出了一种可行的解决办法:采用jsp技术、MVC模式、mysql数据库、jdbc技术等,设计开发了一个现代化的旅游网站并实现对旅游信息的网络化管理,网站功能包括:发表旅游信息、用户登录和注册、用户更改个人信息、查看景点信息、用户交流、酒店预订等功能,论述了设计开发的基本过程,文章共分为前言、旅游网站需求分析、旅游网站系统概要设计、旅游网站详细设计、旅游网站系统测试,其中重点介绍了各功能模块的实现过程。关键词:旅游网站;Mysql;信息管理;JSPThe Design and Achieve of T
3、ourism Website Based on JavaWeb TechnologyAbstractWith the rapid development of the Internet technology and the popularization of computers,computers and the Internet have become more and more important in peoples lives. It has become an inevitable trend to combine the tourism industry with the Inte
4、rnet. It is the most important for the tourism industry that people can get a comprehensive scenic spot information and information around the scenic spots , people can collect and sort out a variety of tourism information through the computer network technology easily. Compared with the traditional
5、 methods, such as the use of books, newspapers and other travel information, computer network technology has greatly saved peoples time and energy consumption. It is not only convenient for people to travel, but also helps to speed up the overall development of the tourism industry if we can combine
6、 the computer network technology with the tourism industry.According to the current trend of development of the tourism industry. the paper proposed a feasible solution and build a modern tourist sites using JSP technology, MVC pattern, MySQL database and JDBC technology. The website realized networ
7、k management for tourism information and can execute some fuctions including travel information release, user login, user information modification,scenic spot information browsing, user communication, hotel reservation and other functions. The basic process of design and progress is described in thi
8、s paper. This article is divided into preface, the demand analysis of the tourism website, the outline design of the system, the detailed design of the website and the system of the tour website. The realization process of each function module is introduced in this article. Key words: tourism websit
9、e; Mysql; information control; JSP目 录论文总页数:26页1 前言11.1 开发背景11.2 目前旅游行业存在的问题11.3 技术背景21.3.1 Mysql数据库概论21.3.2 JSP介绍22 系统需求分析22.1 项目概述22.1.1 系统目标22.1.2 软件环境32.2 系统可行性研究33 系统概要设计43.1 系统总体结构设计43.1.1 系统总体结构图53.1.2 系统功能模块设计53.2 数据库设计63.2.1 数据库设计概述63.2.2 数据库逻辑结构设计63.2.3 数据库的物理结构73.2.4 数据库的完整性和安全性84 旅游网站详细设计
10、94.1 项目结构94.2 数据库的连接94.3 功能模块详细设计114.3.1 用户功能模块的设计与实现114.3.2 信息浏览模块的设计与实现134.3.3 论坛模块的设计与实现144.3.4 管理员功能模块的设计与实现174.3.5 酒店模块的设计与实现195 旅游网站系统测试215.1 注册、登录测试215.2 酒店预订测试225.3 信息发布测试225.4 信息删除测试225.5 信息回复测试23结 语23参考文献24致 谢25声 明261 前言1.1 开发背景自从我国加快发展的步伐以来,工作之余人们对休闲放松也更加重视起来,因此旅游行业也得到了十分迅速的发展,同时旅游经济和假日经济
11、也成为了人们的热门消费点。但是,我国旅游业的发展力度还不够大,发展水平也偏低。很多旅游者对国内的一些名胜景点甚至都没有听说过,还有一些旅游者对某些旅游景点的服务和设施很不满意。随着人们消费水平的提高旅游行业的发展更加需要快速提高以满足人们的需求。全国各地也把旅游产业作为经济发展的一个重要支柱,以带动别产业的经济的快速发展。如何对本地旅游行业宣传以提高本地旅游业的知名度和如何提高旅游行业的整体服务水平以满足旅游者的需求,对各地的经济发展是至关重要的。在这样的背景下,旅游、互联网、电子商务的迅速融合将成为一种必然的趋势,并且能够创造出很大的价值,将旅游行业与电子商务的结合也是近几年才兴起的,但是发
12、展势头非常强劲。在这个信息时代电子商务交易模式遍及各个行业。网络旅游也将推动IT领域内电子商务和互联网的迅速发展,这也会进一步推动旅游行业的发展。1.2 目前旅游行业存在的问题一方面,很多旅行社在对于信息的整理、分类和保存方面做得还不够好,多数还是采用的传统的纸质书本的方式来保存。对于少量的信息还能应付,但是信息量一旦变得很大以后,不管是对于整理分类还是保存都是很不方便的,而且消耗的人力物力成本也会随之增大,这种人为过程中,也比较容易疏忽、纰漏或者出错。这样的方式对于长期保存数据来说不是一个很好的选择。而且,旅游者获取到这些旅游信息的途径也不是很方便和高效。而借助计算机技术是一个很明智的选择。
13、另一方面,很多旅游类广告千篇一律似的宣传方式,既没有突出景区的特点也没有把握好自身的优势。现如今旅游行业发展火热,各地旅行社的数量与日俱增,加大了旅游行业之间的竞争,但是对于如此众多的旅行社其实际的品质却是参差不齐,旅游者更是无从分别其中的好坏。很多旅行社为提高自身竞争力,推出各种低价旅游团,以此吸引顾客。但是对于某些低价旅游团在实际旅途中,旅行社与旅游地的各种商贩勾结,导游以各种名义向顾客推销旅途中的一些不需要的东西并且强行要求顾客购买。若是有人提出异议,必定会遭到人身攻击,更有甚者不顾游客人身安全将旅客赶下旅游车。这种现象现在层出不穷,已经屡见不鲜了。旅游地周围也被不良商家搞得乌烟瘴气,连
14、最基本的服务问题都难以得到保障。这些事情和现象不仅影响各个旅游景点的声誉还严重阻碍了旅游行业的整体发展,由此也会影响经济的发展。现在很多旅游者会因为上述原因对旅行社失去最基本的信任,转而选择自助式旅游。因此,对各地旅游信息的规整显得尤其重要了。不管是想参团旅游的游客还是准备选择自助式旅游的游客都需要了解旅游目的地及其周围的各种信息,但是仅通过纸质资料获取信息,渠道过于单一,又成了一个新的问题。这些问题产生的主要原因还是由于对各种信息处理的方式不合适。如果这些旅游类信息能够被完善、安全、高效的存储,并且能够方便、快速的被旅游者获取,那么问题就能迎刃而解。现如今,科学技术发达,很多行业都通过计算机
15、和互联网技术将信息存储在虚拟的网络空间中并能高效的对其进行操作。结合现在社会的发展趋势来看,对于旅游行业来说这样不失为一种好方法。1.3 技术背景1.3.1 Mysql数据库概论Mysql是网络上一款比较流行的免费小型数据库软件,其数据库类型为关系型数据库。最初由瑞典的一家公司设计开发,现在也早已被Oracle收购。由于Mysql是一个开源代码的软件,所以Mysql数据库在网络上也非常的流行,互联网上的各种中小型的网站对Mysql的应用也是相当普遍的。因为使用Mysql数据库管理数据,那些常用的功能Mysql都提供,更重要的是使用Mysql数据库管理数据其开发成本几乎可以忽略不计,而且Mysq
16、l相对其他关系型数据库如Oracle、SQLserver,其体积很小,但是速度快,虽然在功能和规模上不如前两者强大,但是对于一般规模较小的中小型网站来说,Mysql提供的功能已经可以轻松满足开发者的要求了,所以Mysql数据库更受中小型网站的青睐。1.3.2 JSP介绍Java server pages简称JSP,它建立在servlet之上。JSP的技术特征主要有:跨平台、分离静态内容和动态内容、可重复使用的组件、预编译、沿用了java servlet的所有功能等等。程序员可以应用JSP高效率的创建WEB应用程序,并且使用JSP技术开发的互联网应用程序具有跨平台、安全性高等优点,可在多种操作系
17、统上运行。2 系统需求分析2.1 项目概述2.1.1 系统目标本系统旨在建设一个信息完善,操作简单,界面美观的旅游网站,主要功能包括如下几项。1. 各种信息的发布,管理员可以在后台发布旅游景点信息供用户浏览,普通用户也可以在用户区发布相关信息并进行交流,不仅可以拓宽用户获取信息的渠道,用户之间的交流也有利于旅客更好的了解旅游景点周边的情况,对自助式旅游是一种很大的帮助。2. 注册与登录,用户可通过网站相关平台进行注册并且登录,如果只是以普通游客的身份进入网站,也能正常浏览网站相关旅游信息,但是网站的某些功能游客是无法正常使用的,比如游客不能使用酒店预订的功能,此功能暂时只对已经注册的用户开放。
18、3. 各类信息浏览,用户无需登录就可以通过本旅游网站浏览各种旅游信息,用户发布的信息,酒店信息等。4. 网上预订酒店,用户通过本旅游网站不仅可以了解到酒店信息,还可以在网上预订自己满意的酒店,游客无需亲自到酒店才能预订,这样一来就减少了游客不必要的麻烦,对于异地旅游者和自助式旅游者来说是很实用的一个功能。5. BBS功能,可以为广大用户提供交流平台,用户可以通过bbs平台分享自己的旅游经验、旅游信息等,还可以互相讨论了解景点的优劣为自助式旅游制定最优旅游方案,以及发起一些组团旅游信息等。6. 用户信息修改,已经注册的用户可以通过网站的相关模块对自己的信息进行修改,及时更新自己的信息,方便用户之
19、间更好的相互了解。用户还可以修改自己的登录密码,加强账号安全性。2.1.2 软件环境对于一个网站系统的实现,只有硬件系统的支持是不够的,还必须要有与系统对应的相关软件配合,系统才能正常运行。因此,本旅游网站还要求需配置如下其他软件。系统开发环境:Windows 7系统开发工具:MyEclipse、Tomcat、Jdk数据库工具:Mysql系统运行环境:Windows XP/7 /8/102.2 系统可行性研究1. 技术可行性本旅游网站主要采用jsp进行前台界面的设计。jsp页面由传统的html代码和嵌入到其中的java代码组成,jsp页面中还包含了各种特殊的jsp元素。当使用jsp技术时,静态
20、内容的部分可以使用xml标记或者html来设计和格式化,动态内容的部分使用jsp标记及javabean或者JavaScript脚本程序来制作。jsp标记和小脚本程序将由服务器端执行,客户端浏览器接收到的是html页面,这个html页面是服务器端将处理结果与静态部分结合过后的形成的新的html页面。数据库的管理采用了mysql数据库,mysql体积小、运行速度快并且健壮、易用,对于一般的网站完全可以采用mysql数据库进行数据库管理。所以,本系统在技术上是可行的。2. 经济可行性本系统主要使用myeclipse开发工具,mysql数据库,都是可以在网络上找到的免费软件,开发成本几乎可以忽略不计。
21、当网站投入使用时,旅游者可以通过本网站轻易获取到相关旅游信息及使用网站其他功能,方便了旅游者自助式旅游出行,因此可吸引大量用户加入本网站,以增加本网站的浏览量和数据流量,所以本旅游网站在经济上是可行的。3. 操作可行性本旅游网站界面简洁,操作方便,也无任何使用限制,使用过程中不需要安装任何其他软件,打开浏览器即可浏览本旅游网站并且可以使用旅游网站相关功能。因此,本旅游网站在操作上是可行的。3 系统概要设计3.1 系统总体结构设计本系统采用mvc模式来搭建整个网站的结构。mvc是model、view、controller的合称,它一种程序设计概念,对于简单程序和复杂程序都能使用mvc模式来开发。
22、采用mvc模式开发的应用程序被分解为三个独立的部分,即:模型、视图、控制器。一个应用程序中被用来完成任务的代码在mvc中即为模型,指的是业务逻辑的代码,这个部分在程序中常常是相对稳定的部分,它会被重复使用。应用程序中与用户进行交互的页面即为视图,这个部分则是经常改变的。若是页面需要更新时业务逻辑代码也必须一起做相应改动,或者是需要在不同的模块中实现相同的功能而多次编写业务逻辑代码,既让应用程序的维护变得十分困难又会降低应用程序开发的整体进度,因此使用mvc模式有很多优点,比如当需求改变的时候对相关程序进行改进的时候会更加容易。mvc模式图如图1所示。图1 mvc模式图3.1.1 系统总体结构图
23、本旅游旅游网站系统主要分为五个大模块及其子模块,主要完成注册、登录、信息浏览、信息发布、酒店预订等功能,具体如图2所示。旅游网站系统后台模块用户模块信息浏览论坛功能发布信息管理论坛信息登录注册修改个人信息旅游信息浏览酒店信息浏览个人信息浏览帖子发布帖子回复酒店模块酒店预订图2 系统功能模块总体结构图3.1.2 系统功能模块设计本旅游网站经过需求分析,将主要功能模块划分为以下几个。1. 用户功能模块用户功能模块实现的主要功能包括:用户的注册与登录,以及用户在登录后可以修改密码和个人的信息等。2. 信息浏览模块信息浏览模块主要实现各类信息的查看,主要包括相关旅游景点信息的查看、酒店信息的查看、论坛
24、信息的查看以及个人信息的查看。3. 后台功能模块本旅游网站管理员的主要功能包括发布有关的旅游信息,发布酒店信息,对论坛信息进行管理,管理员可以删除普通用户发布的帖子,而普通用户只拥有发布帖子和回复帖子的功能。4. 酒店预订模块酒店预订功能模块主要是为了方便用户在浏览相关酒店信息后,可以对满意的酒店进行预订。5. 论坛功能模块此模块用于实现用户之间的交流,用户可以通过该模块发表自己的一些旅游经验和看法,也可以回复和浏览其它用户发表的帖子,能够满足用户与管理员、用户与用户之间的实时互动。3.2 数据库设计3.2.1 数据库设计概述建立数据库应用系统的核心问题是,如何把实体模型和与之相对应的需求转换
25、成数据库模型的一个转换过程。为用户的应用系统提供一个高效数据库系统其实就是数据库设计的主要目标。建立一个良好的数据库,对于数据库及其相关的操作都会有很大的帮助,数据库设计的好在以后能避免很大不必要的麻烦,节省不少资源和精力。所以,设计好数据库对数据库性能和一些用于提高数据库性能的方法都有很大的帮助。数据库设计的关键主要怎样让设计的数据库能合理地存储用户的数据,使用户处理数据变得方便。3.2.2 数据库逻辑结构设计数据库设计的核心其实就是概念结构的设计。数据库的逻辑结构与概念结构是独立的,逻辑结构也与所使用的具体的数据库管理系统是独立的。用户工作环境中所涉及的事务是实体,对实体特征的描述则是属性
26、。数据库结构的设计图如图3所示。图3 数据库结构设计图3.2.3 数据库的物理结构所建数据库的名字为travel,数据结构具体如下。1) 管理员信息表的数据结构列名数据类型是否非空(管理员ID)id int(11)NOT NULL,(管理员名称)usernamevarchar(50)NOT NULL,(管理员密码)userpwdvarchar(20)NOT NULL2) 酒店信息表的数据结构列名数据类型是否非空(酒店ID号)lidint(11) NOT NULL,(酒店名称)t_lvdianNamevarchar(50)NOT NULL,(酒店描述)t_lvdianMsgvarchar(500
27、)NULL,(酒店图片)t_picvarchar(50)NULL,(酒店联系电话)t_phonevarchar(50)NOT NULL,(酒店地址)t_addressvarchar(50)NULL,(酒店正常价格)t_pvarchar(50)NULL,(酒店优惠价格)t_p2char(10)NULL3) 旅游景点信息表的数据结构列名数据类型是否非空(景点ID号)id int(11) NOT NULL,(景点名称)t_placevarchar(50) NULL,(景点描述)t_msgvarchar(500) NULL,(景点图片)t_picvarchar(50) NULL,(景点参考价格)t_p
28、ricevarchar(50) NULL4) 用户信息表的数据结构列名数据类型是否非空(用户ID号)uidint(11)NOT NULL,(用户名称)usernamevarchar(30)NOT NULL,(用户密码)userpwdvarchar(50)NOT NULL,(用户密码提示)vippasswordmsgvarchar(50)NULL,(用户出生日期)vipbirthvarchar(50)NULL,(用户地址)vipaddressvarchar(50) NULL,(用户喜欢的旅游地)viplikeplacevarchar(50) NULL,(用户联系方式)vipphonevarcha
29、r(50) NULL,(用户性别)vipsexvarchar(50) NULL5) 订单信息表的数据结构列名数据类型是否非空(订单ID号)oidint(10)NOT NULL,(用户ID号)uidint(10) NOT NULL,(酒店ID号)lidint(10) NOT NULL6) 发帖记录信息表的数据结构列名数据类型是否非空(帖子ID号)idint(11) NOT NULL,(帖子标题)b_titlevarchar(50) NOT NULL,(帖子内容)b_msgvarchar(50) NOT NULL,(发帖人名称)b_usernamevarchar(30) NOT NULL,(发帖时
30、间)b_timevarchar(50) NULL7) 回复记录信息表的数据结构列名数据类型是否非空(回复信息ID号)idint(11)NOT NULL,(回复人名称)b_usernamevarchar(30)NOT NULL,(回复内容)b_msgvarchar(50)NOT NULL,(回复时间)b_timevarchar(50)NULL,(回复帖子的名称)b_titlevarchar(50) NOT NULL3.2.4 数据库的完整性和安全性数据库的完整性是指数据应该在逻辑上保持一致性、有效性、正确性和相容性,例如利用主键、外键约束等方法。通常会利用数据库管理系统或者是一些应用程序来实习数
31、据库完整性约束。系统中定义了表中各个字段属性及约束条件,有助于实现完整性。数据库的安全性就是指对数据库中数据的各种保护措施,保护数据免受破坏、更改或泄漏。数据库系统中存放着大量的数据,这些数据每天被不同的用户操作使用,这些数据对用户和整个系统来说都是很重要的。所以,对数据的保护就显得十分重要,即为对系统的安全保护措施,安全保护措施可以保护数据库防止各种误操作和恶意操作。在这个系统中,只用管理员才能掌握某些权限。当用户登陆,需要输入用户名及密码,并选择登陆身份,系统判断当前登陆的用户是普通用户还是管理员,同时授予不同的权限,以此防止用户误操作,提高系统的安全性。4 旅游网站详细设计4.1 项目结
32、构项目文件夹目录结构如图4所示。图4 项目文件夹结构4.2 数据库的连接本系统使用的是Mysql数据库,在连接的过程中需要用到JDBC驱动程序,并且需要同时在myeclipse开发工具中做相应配置,下面将具体介绍如何实现数据库的连接。1. 首先在myeclipse中创建数据库连接,同时需要配置mysql数据库的一些相关信息,为连接数据库做准备。具体配置如图5所示。图5 创建数据库连接2. 创建数据库连接类DBHlper。public class DBHelper private static DBHelper db = null;private DBHelper() public static
33、 DBHelper getInstance()if (db=null) db = new DBHelper();return db;public static Connection getConnection() Connection conn = null;try Class.forName(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/travel,root,1234 56);return conn; catch (Exception e) return conn;4.3
34、 功能模块详细设计4.3.1 用户功能模块的设计与实现用户功能模块主要实现的功能包括用户的注册,用户注册之后可以登录,以及用户可以更新个人信息。下面以介绍其中的用户登录功能为例来说明具体的实现过程。用户登录界面如图6所示。图6 用户登录界面当用户输入用户名、密码、验证码并选择身份后,点击登录,系统将表单数据传给处理登录请求的servlet,系统会自动判断用户输入的用户名和密码是否正确,已经身份是否匹配,并反馈给用户相应的信息。下面展示主要的后台代码,此处省略了一些固定定义代码。if (username.trim().equals() | username = ) String userMsg
35、= 用户名不能为空;session.setAttribute(userMsg, userMsg); if (password.trim().equals() | password = ) String pwdMsg = 密码不能为空;session.setAttribute(pwdMsg, pwdMsg);if (numB.trim().equals() | numB = ) String numMsg = 验证码不能为空;session.setAttribute(numMsg, numMsg); else if (!numB.equals(session.getAttribute(check
36、number).toString() String numMsg = 验证码错误;session.setAttribute(numMsg, numMsg);if (username.trim().equals() | username = | password.trim().equals() | password = | numB.trim().equals() | numB = | !numB.equals(session.getAttribute(checknumber).toString()| type.toString().equals() | type = ) response.se
37、ndRedirect(login.jsp); else if (type.equals(管理员) tables = t_admin; else if (type.equals(会员) tables = t_userinfo; String sql = select * from + tables + where username=+ username + and userpwd= + password + ; ResultSet rs = idus.selectSQL(sql);if (rs.next() session.setAttribute(username, username);try
38、 application.setAttribute(userInfo,(String) application.getAttribute(userInfo)+ username + ); else System.out.println(do wasnull.);String loginMsg = 用户名或密码错误;session.setAttribute(loginMsg, loginMsg);response.sendRedirect(login.jsp); catch (SQLException e) String loginMsg = 用户名或密码错误;session.setAttrib
39、ute(loginMsg, loginMsg);response.sendRedirect(login.jsp);4.3.2 信息浏览模块的设计与实现信息浏览模块主要实现的功能包括,旅游信息的浏览,酒店信息的浏览以及论坛信息的浏览。基本步骤主要为系统通过连接数据库从数据的相关表中读取数据然后存入结果集中,在显示到页面上。下面将通过介绍论坛信息的浏览为例,来说明具体的实现过程。论坛信息浏览界面如图7所示。图7 论坛信息浏览界面当用户浏览论坛信息模块时,系统会自动判断当前浏览论坛信息的用户是否为管理员,如果为管理员则系统会自动授予管理员删除权限,即显示删除按钮,如果当前浏览论坛信息的是普通用户,那
40、么系统就只会显示论坛的内容而不会授予普通用户删除权限,防止用户误操作。下面展示后台实现的主要代码,此处省略了HTML界面的代码。删除 %IDUS idus = new IDUS(); ResultSet rs = idus.selectSQL(select * from b_title);trywhile (rs.next() out.println();out.println( +rs.getString(2)+ );out.println( + rs.getString(4) + );out.println( + rs.getString(5) + );if(session.getAttr
41、ibute(type).toString().equals(管理员)%a href=doDel?id=删除%out.println();catch(Exception ex)%4.3.3 论坛模块的设计与实现论坛模块的功能主要有用户发布帖子和用户回复帖子这两个功能。下面将分别介绍用户发布帖子和用户回复帖子两个功能的具体实现过程。1.帖子发布功能介绍无论是用户还是游客都可以浏览论坛页面,并且都能发布帖子。这样可以不登录也能分享自己的一些旅游经验和其他有用的信息。用户发布帖子的界面如图8所示。图8 发帖界面用户通过发帖界面填写帖子的标题和内容,点击发布按钮,系统会自动判断当前登录的用户,同时将所发
42、布的帖子的标题和内容的表单数据以及用户的相关信息传给处理发帖请求的servlet,执行相应的代码,将数据插入到发帖信息表中和回复信息表(实现数据之间的联系)完成帖子发布。下面展示后台代码。public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html);response.setCharacterEncoding(UTF-8);PrintWriter out = res
43、ponse.getWriter();HttpSession session = request.getSession();/获取表单数据String username = (String) session.getAttribute(username);String title = request.getParameter(title);String msg = request.getParameter(msg);String dateTime = request.getParameter(dateTime);String sqlmsg = insert into b_msg (b_username,b_msg,b_time,b_title) values(+username+,+msg+,+dateTime+,+title+); String sqltitle =