基于JavaWeb技术的旅游网站的设计与实现毕业设计(论文) 下载本文

基于JavaWeb技术的旅游网站的设计与实现

论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名(职称): 论文提交日期:

网络工程 工学学士

基于JavaWeb技术的旅游网站的设计与实现

摘 要

由于互联网的快速的发展和使用人数的普遍提高,计算机和互联网在人们生活中的地位已经表现的越来越重要了。将旅游行业与互联网结合在一起已经成为了一种必然的趋势。旅游行业最重要的就是应该要有完善的旅游信息供人们了解各地名胜风景及其周边信息,通过计算机网络技术可以轻松的收集、整理各种旅游信息。相比过去传统的方法,如通过书籍、报刊等获取旅游信息,计算机网络技术大大节省了人们耗费的时间与精力。将计算机网络技术与旅游行业结合起来不仅方便了人们的生活出行,并且有助于加快旅游行业的整体发展。

此文根据旅游行业目前的发展趋势,提出了一种可行的解决办法:采用jsp技术、MVC模式、mysql数据库、jdbc技术等,设计开发了一个现代化的旅游网站并实现对旅游信息的网络化管理,网站功能包括:发表旅游信息、用户登录和注册、用户更改个人信息、查看景点信息、用户交流、酒店预订等功能,论述了设计开发的基本过程,文章共分为前言、旅游网站需求分析、旅游网站系统概要设计、旅游网站详细设计、旅游网站系统测试,其中重点介绍了各功能模块的实现过程。

关键词:旅游网站;Mysql;信息管理;JSP

The Design and Achieve of Tourism Website Based on

JavaWeb Technology

Abstract

With the rapid development of the Internet technology and the popularization of computers,computers and the Internet have become more and more important in people's lives. It has become an inevitable trend to combine the tourism industry with the Internet. 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 methods, such as the use of books, newspapers and other travel information, computer network technology has greatly saved people's 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 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 network 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 this 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 website; Mysql; information control; JSP

目 录

论文总页数:26页

1 前言 ...................................................................... 1 1.1 开发背景 ............................................................... 1 1.2 目前旅游行业存在的问题 ................................................. 1 1.3 技术背景 ............................................................... 2 1.3.1 Mysql数据库概论 ................................................... 2 1.3.2 JSP介绍 ........................................................... 2 2 系统需求分析 ............................................................... 2 2.1 项目概述 ............................................................... 2 2.1.1 系统目标 ........................................................... 2 2.1.2 软件环境 ........................................................... 3 2.2 系统可行性研究 ......................................................... 3 3 系统概要设计 ............................................................... 4 3.1 系统总体结构设计 ....................................................... 4 3.1.1 系统总体结构图 ..................................................... 5 3.1.2 系统功能模块设计 ................................................... 5 3.2 数据库设计 ............................................................. 6 3.2.1 数据库设计概述 ..................................................... 6 3.2.2 数据库逻辑结构设计 ................................................. 6 3.2.3 数据库的物理结构 ................................................... 7 3.2.4 数据库的完整性和安全性 ............................................. 8 4 旅游网站详细设计 ........................................................... 9 4.1 项目结构 ............................................................... 9 4.2 数据库的连接 ........................................................... 9 4.3 功能模块详细设计 ...................................................... 11 4.3.1 用户功能模块的设计与实现 .......................................... 11 4.3.2 信息浏览模块的设计与实现 .......................................... 13 4.3.3 论坛模块的设计与实现 .............................................. 14 4.3.4 管理员功能模块的设计与实现 ........................................ 17 4.3.5 酒店模块的设计与实现 .............................................. 19 5 旅游网站系统测试 .......................................................... 21

5.1 注册、登录测试 ...................................................... 21 5.2 酒店预订测试 ........................................................ 22

5.3 信息发布测试 ........................................................ 22 5.4 信息删除测试 ........................................................ 22 5.5 信息回复测试 ........................................................ 23 结 语.................................................................... 23 参考文献.................................................................... 24 致 谢.................................................................... 25 声 明.................................................................... 26

1 前言

1.1 开发背景

自从我国加快发展的步伐以来,工作之余人们对休闲放松也更加重视起来,因此旅游行业也得到了十分迅速的发展,同时旅游经济和假日经济也成为了人们的热门消费点。但是,我国旅游业的发展力度还不够大,发展水平也偏低。很多旅游者对国内的一些名胜景点甚至都没有听说过,还有一些旅游者对某些旅游景点的服务和设施很不满意。随着人们消费水平的提高旅游行业的发展更加需要快速提高以满足人们的需求。

全国各地也把旅游产业作为经济发展的一个重要支柱,以带动别产业的经济的快速发展。如何对本地旅游行业宣传以提高本地旅游业的知名度和如何提高旅游行业的整体服务水平以满足旅游者的需求,对各地的经济发展是至关重要的。在这样的背景下,旅游、互联网、电子商务的迅速融合将成为一种必然的趋势,并且能够创造出很大的价值,将旅游行业与电子商务的结合也是近几年才兴起的,但是发展势头非常强劲。在这个信息时代电子商务交易模式遍及各个行业。网络旅游也将推动IT领域内电子商务和互联网的迅速发展,这也会进一步推动旅游行业的发展。

1.2 目前旅游行业存在的问题

一方面,很多旅行社在对于信息的整理、分类和保存方面做得还不够好,多数还是采用的传统的纸质书本的方式来保存。对于少量的信息还能应付,但是信息量一旦变得很大以后,不管是对于整理分类还是保存都是很不方便的,而且消耗的人力物力成本也会随之增大,这种人为过程中,也比较容易疏忽、纰漏或者出错。这样的方式对于长期保存数据来说不是一个很好的选择。而且,旅游者获取到这些旅游信息的途径也不是很方便和高效。而借助计算机技术是一个很明智的选择。

另一方面,很多旅游类广告千篇一律似的宣传方式,既没有突出景区的特点也没有把握好自身的优势。现如今旅游行业发展火热,各地旅行社的数量与日俱增,加大了旅游行业之间的竞争,但是对于如此众多的旅行社其实际的品质却是参差不齐,旅游者更是无从分别其中的好坏。很多旅行社为提高自身竞争力,推出各种低价旅游团,以此吸引顾客。但是对于某些低价旅游团在实际旅途中,旅行社与旅游地的各种商贩勾结,导游以各种名义向顾客推销旅途中的一些不需要的东西并且强行要求顾客购买。若是有人提出异议,必定会遭到人身攻击,更有甚者不顾游客人身安全将旅客赶下旅游车。这种现象现在层出不穷,已经屡见不鲜了。旅游地周围也被不良商家搞得乌烟瘴气,连最基本的服务问题都难以得到保障。这些事情和现象不仅影响各个旅游景点的声誉还严重阻碍了旅游行业的整

第 1 页 共 26 页

体发展,由此也会影响经济的发展。现在很多旅游者会因为上述原因对旅行社失去最基本的信任,转而选择自助式旅游。因此,对各地旅游信息的规整显得尤其重要了。不管是想参团旅游的游客还是准备选择自助式旅游的游客都需要了解旅游目的地及其周围的各种信息,但是仅通过纸质资料获取信息,渠道过于单一,又成了一个新的问题。这些问题产生的主要原因还是由于对各种信息处理的方式不合适。如果这些旅游类信息能够被完善、安全、高效的存储,并且能够方便、快速的被旅游者获取,那么问题就能迎刃而解。现如今,科学技术发达,很多行业都通过计算机和互联网技术将信息存储在虚拟的网络空间中并能高效的对其进行操作。结合现在社会的发展趋势来看,对于旅游行业来说这样不失为一种好方法。

1.3 技术背景

1.3.1 Mysql数据库概论

Mysql是网络上一款比较流行的免费小型数据库软件,其数据库类型为关系型数据库。最初由瑞典的一家公司设计开发,现在也早已被Oracle收购。由于Mysql是一个开源代码的软件,所以Mysql数据库在网络上也非常的流行,互联网上的各种中小型的网站对Mysql的应用也是相当普遍的。因为使用Mysql数据库管理数据,那些常用的功能Mysql都提供,更重要的是使用Mysql数据库管理数据其开发成本几乎可以忽略不计,而且Mysql相对其他关系型数据库如Oracle、SQLserver,其体积很小,但是速度快,虽然在功能和规模上不如前两者强大,但是对于一般规模较小的中小型网站来说,Mysql提供的功能已经可以轻松满足开发者的要求了,所以Mysql数据库更受中小型网站的青睐。

1.3.2 JSP介绍

Java server pages简称JSP,它建立在servlet之上。JSP的技术特征主要有:跨平台、分离静态内容和动态内容、可重复使用的组件、预编译、沿用了java servlet的所有功能等等。程序员可以应用JSP高效率的创建WEB应用程序,并且使用JSP技术开发的互联网应用程序具有跨平台、安全性高等优点,可在多种操作系统上运行。

2 系统需求分析

2.1 项目概述

2.1.1 系统目标

本系统旨在建设一个信息完善,操作简单,界面美观的旅游网站,主要功能包括如下几项。

1.各种信息的发布,管理员可以在后台发布旅游景点信息供用户浏览,普通用户也可以在用户区发布相关信息并进行交流,不仅可以拓宽用户获取信息的渠

第 2 页 共 26 页

道,用户之间的交流也有利于旅客更好的了解旅游景点周边的情况,对自助式旅游是一种很大的帮助。

2.注册与登录,用户可通过网站相关平台进行注册并且登录,如果只是以普通游客的身份进入网站,也能正常浏览网站相关旅游信息,但是网站的某些功能游客是无法正常使用的,比如游客不能使用酒店预订的功能,此功能暂时只对已经注册的用户开放。

3.各类信息浏览,用户无需登录就可以通过本旅游网站浏览各种旅游信息,用户发布的信息,酒店信息等。

4.网上预订酒店,用户通过本旅游网站不仅可以了解到酒店信息,还可以在网上预订自己满意的酒店,游客无需亲自到酒店才能预订,这样一来就减少了游客不必要的麻烦,对于异地旅游者和自助式旅游者来说是很实用的一个功能。

5.BBS功能,可以为广大用户提供交流平台,用户可以通过bbs平台分享自己的旅游经验、旅游信息等,还可以互相讨论了解景点的优劣为自助式旅游制定最优旅游方案,以及发起一些组团旅游信息等。

6.用户信息修改,已经注册的用户可以通过网站的相关模块对自己的信息进行修改,及时更新自己的信息,方便用户之间更好的相互了解。用户还可以修改自己的登录密码,加强账号安全性。

2.1.2 软件环境

对于一个网站系统的实现,只有硬件系统的支持是不够的,还必须要有与系统对应的相关软件配合,系统才能正常运行。因此,本旅游网站还要求需配置如下其他软件。

系统开发环境:Windows 7

系统开发工具:MyEclipse、Tomcat、Jdk 数据库工具:Mysql

系统运行环境:Windows XP/7 /8/10

2.2 系统可行性研究

1.技术可行性

本旅游网站主要采用jsp进行前台界面的设计。jsp页面由传统的html代码和嵌入到其中的java代码组成,jsp页面中还包含了各种特殊的jsp元素。当使用jsp技术时,静态内容的部分可以使用xml标记或者html来设计和格式化,动态内容的部分使用jsp标记及javabean或者JavaScript脚本程序来制作。jsp标记和小脚本程序将由服务器端执行,客户端浏览器接收到的是html页面,这个html页面是服务器端将处理结果与静态部分结合过后的形成的新的html页面。数据库的管理采用了mysql数据库,mysql体积小、运行速度快并且健壮、易用,对

第 3 页 共 26 页

于一般的网站完全可以采用mysql数据库进行数据库管理。所以,本系统在技术上是可行的。

2.经济可行性

本系统主要使用myeclipse开发工具,mysql数据库,都是可以在网络上找到的免费软件,开发成本几乎可以忽略不计。当网站投入使用时,旅游者可以通过本网站轻易获取到相关旅游信息及使用网站其他功能,方便了旅游者自助式旅游出行,因此可吸引大量用户加入本网站,以增加本网站的浏览量和数据流量,所以本旅游网站在经济上是可行的。

3.操作可行性

本旅游网站界面简洁,操作方便,也无任何使用限制,使用过程中不需要安装任何其他软件,打开浏览器即可浏览本旅游网站并且可以使用旅游网站相关功能。因此,本旅游网站在操作上是可行的。

3 系统概要设计

3.1 系统总体结构设计

本系统采用mvc模式来搭建整个网站的结构。mvc是model、view、controller的合称,它一种程序设计概念,对于简单程序和复杂程序都能使用mvc模式来开发。采用mvc模式开发的应用程序被分解为三个独立的部分,即:模型、视图、控制器。一个应用程序中被用来完成任务的代码在mvc中即为模型,指的是业务逻辑的代码,这个部分在程序中常常是相对稳定的部分,它会被重复使用。应用程序中与用户进行交互的页面即为视图,这个部分则是经常改变的。若是页面需要更新时业务逻辑代码也必须一起做相应改动,或者是需要在不同的模块中实现相同的功能而多次编写业务逻辑代码,既让应用程序的维护变得十分困难又会降低应用程序开发的整体进度,因此使用mvc模式有很多优点,比如当需求改变的时候对相关程序进行改进的时候会更加容易。mvc模式图如图1所示。

图1 mvc模式图

第 4 页 共 26 页

3.1.1 系统总体结构图

本旅游旅游网站系统主要分为五个大模块及其子模块,主要完成注册、登录、信息浏览、信息发布、酒店预订等功能,具体如图2所示。

旅游网站系统 后台模块 用户模块 信息浏览 论坛功能 酒店模块 发布 信息 管理论坛信息 登录注册 修改个人信息 旅游信息浏览 酒店信息浏览 个人信息浏览 帖子发布 帖子回复 酒店预订 图2 系统功能模块总体结构图

3.1.2 系统功能模块设计

本旅游网站经过需求分析,将主要功能模块划分为以下几个。 1.用户功能模块

用户功能模块实现的主要功能包括:用户的注册与登录,以及用户在登录后可以修改密码和个人的信息等。

2.信息浏览模块

信息浏览模块主要实现各类信息的查看,主要包括相关旅游景点信息的查看、酒店信息的查看、论坛信息的查看以及个人信息的查看。

3.后台功能模块

本旅游网站管理员的主要功能包括发布有关的旅游信息,发布酒店信息,对论坛信息进行管理,管理员可以删除普通用户发布的帖子,而普通用户只拥有发

第 5 页 共 26 页

布帖子和回复帖子的功能。

4.酒店预订模块

酒店预订功能模块主要是为了方便用户在浏览相关酒店信息后,可以对满意的酒店进行预订。

5.论坛功能模块

此模块用于实现用户之间的交流,用户可以通过该模块发表自己的一些旅游经验和看法,也可以回复和浏览其它用户发表的帖子,能够满足用户与管理员、用户与用户之间的实时互动。

3.2 数据库设计

3.2.1 数据库设计概述

建立数据库应用系统的核心问题是,如何把实体模型和与之相对应的需求转换成数据库模型的一个转换过程。为用户的应用系统提供一个高效数据库系统其实就是数据库设计的主要目标。建立一个良好的数据库,对于数据库及其相关的操作都会有很大的帮助,数据库设计的好在以后能避免很大不必要的麻烦,节省不少资源和精力。所以,设计好数据库对数据库性能和一些用于提高数据库性能的方法都有很大的帮助。数据库设计的关键主要怎样让设计的数据库能合理地存储用户的数据,使用户处理数据变得方便。

3.2.2 数据库逻辑结构设计

数据库设计的核心其实就是概念结构的设计。数据库的逻辑结构与概念结构是独立的,逻辑结构也与所使用的具体的数据库管理系统是独立的。用户工作环境中所涉及的事务是实体,对实体特征的描述则是属性。数据库结构的设计图如图3所示。

图3 数据库结构设计图

第 6 页 共 26 页

3.2.3 数据库的物理结构

所建数据库的名字为travel,数据结构具体如下。 1)管理员信息表的数据结构

列名

数据类型 int(11)

是否非空 NOT NULL, NOT NULL, NOT NULL

(管理员ID)id

(管理员名称)username (管理员密码)userpwd

2)酒店信息表的数据结构

列名

varchar(50) varchar(20)

数据类型 int(11)

是否非空 NOT NULL, NOT NULL, NULL, NULL, NOT NULL, NULL, NULL, NULL

(酒店ID号)lid

(酒店名称)t_lvdianName (酒店描述)t_lvdianMsg (酒店图片)t_pic

(酒店联系电话)t_phone (酒店地址)t_address (酒店正常价格)t_p (酒店优惠价格)t_p2

3)旅游景点信息表的数据结构

列名

varchar(50) varchar(500) varchar(50) varchar(50) varchar(50) varchar(50) char(10)

数据类型 是否非空 NOT NULL, NULL, NULL, NULL, NULL

(景点ID号) id int(11) varchar(50) varchar(500) varchar(50) varchar(50)

(景点名称)t_place (景点描述)t_msg (景点图片)t_pic

(景点参考价格)t_price 4)用户信息表的数据结构

列名

数据类型 int(11)

是否非空 NOT NULL, NOT NULL, NOT NULL, NULL, NULL,

(用户ID号)uid

(用户名称)username (用户密码)userpwd

varchar(30) varchar(50) varchar(50) varchar(50)

(用户密码提示)vippasswordmsg (用户出生日期)vipbirth

第 7 页 共 26 页

(用户地址)vipaddress

varchar(50) varchar(50) varchar(50) varchar(50)

NULL, NULL, NULL, NULL

(用户喜欢的旅游地)viplikeplace (用户联系方式)vipphone (用户性别)vipsex

5)订单信息表的数据结构

列名

数据类型 int(10) int(10) int(10)

是否非空 NOT NULL, NOT NULL, NOT NULL

(订单ID号)oid (用户ID号)uid (酒店ID号)lid

6)发帖记录信息表的数据结构

列名

数据类型

是否非空 NOT NULL, NOT NULL, NOT NULL, NOT NULL, NULL

(帖子ID号)id

int(11) varchar(50) varchar(50) varchar(30) varchar(50)

(帖子标题)b_title (帖子内容)b_msg (发帖时间)b_time

(发帖人名称)b_username

7)回复记录信息表的数据结构

列名

数据类型 int(11)

是否非空 NOT NULL, NOT NULL, NOT NULL, NULL,

(回复信息ID号)id (回复内容)b_msg (回复时间)b_time

(回复人名称)b_username varchar(30) varchar(50) varchar(50)

(回复帖子的名称)b_title varchar(50) NOT NULL

3.2.4 数据库的完整性和安全性

数据库的完整性是指数据应该在逻辑上保持一致性、有效性、正确性和相容性,例如利用主键、外键约束等方法。通常会利用数据库管理系统或者是一些应用程序来实习数据库完整性约束。系统中定义了表中各个字段属性及约束条件,有助于实现完整性。

数据库的安全性就是指对数据库中数据的各种保护措施,保护数据免受破坏、更改或泄漏。数据库系统中存放着大量的数据,这些数据每天被不同的用户操作使用,这些数据对用户和整个系统来说都是很重要的。所以,对数据的保护

第 8 页 共 26 页

就显得十分重要,即为对系统的安全保护措施,安全保护措施可以保护数据库防止各种误操作和恶意操作。在这个系统中,只用管理员才能掌握某些权限。当用户登陆,需要输入用户名及密码,并选择登陆身份,系统判断当前登陆的用户是普通用户还是管理员,同时授予不同的权限,以此防止用户误操作,提高系统的安全性。

4 旅游网站详细设计

4.1 项目结构

项目文件夹目录结构如图4所示。

图4 项目文件夹结构

4.2 数据库的连接

本系统使用的是Mysql数据库,在连接的过程中需要用到JDBC驱动程序,并且需要同时在myeclipse开发工具中做相应配置,下面将具体介绍如何实现数据库的连接。

1.首先在myeclipse中创建数据库连接,同时需要配置mysql数据库的一些相关信息,为连接数据库做准备。具体配置如图5所示。

第 9 页 共 26 页

图5 创建数据库连接

2.创建数据库连接类DBHlper。

public class DBHelper { private static DBHelper db = null; private DBHelper() { } public static DBHelper getInstance(){ if (db==null) { db = new DBHelper(); } return db; } public static Connection getConnection() {

第 10 页 共 26 页

Connection conn = null; try { Class.forName(\ conn=DriverManager.getConnection(\ 56\ return conn; } catch (Exception e) { return conn; } } }

4.3 功能模块详细设计

4.3.1 用户功能模块的设计与实现

用户功能模块主要实现的功能包括用户的注册,用户注册之后可以登录,以及用户可以更新个人信息。下面以介绍其中的用户登录功能为例来说明具体的实现过程。用户登录界面如图6所示。

图6 用户登录界面

当用户输入用户名、密码、验证码并选择身份后,点击登录,系统将表单数

第 11 页 共 26 页

据传给处理登录请求的servlet,系统会自动判断用户输入的用户名和密码是否正确,已经身份是否匹配,并反馈给用户相应的信息。下面展示主要的后台代码,此处省略了一些固定定义代码。

if (username.trim().equals(\ String userMsg = \用户名不能为空\ session.setAttribute(\ }

if (password.trim().equals(\ String pwdMsg = \密码不能为空\ session.setAttribute(\}

if (numB.trim().equals(\ String numMsg = \验证码不能为空\ session.setAttribute(\

} else if (!numB.equals(session.getAttribute(\ String numMsg = \验证码错误\ session.setAttribute(\}

if (username.trim().equals(\ || password.trim().equals(\ || numB.trim().equals(\ || !numB.equals(session.getAttribute(\ || type.toString().equals(\response.sendRedirect(\} else { if (type.equals(\管理员\ tables = \ } else if (type.equals(\会员\ tables = \ } String sql = \ + username + \ ResultSet rs = idus.selectSQL(sql); if (rs.next()) { session.setAttribute(\ try { application.setAttribute(\ (String) application.getAttribute(\ } } else {

第 12 页 共 26 页

}

System.out.println(\ String loginMsg = \用户名或密码错误\ session.setAttribute(\ response.sendRedirect(\ }

} catch (SQLException e) { String loginMsg = \用户名或密码错误\ session.setAttribute(\ response.sendRedirect(\}

4.3.2 信息浏览模块的设计与实现

信息浏览模块主要实现的功能包括,旅游信息的浏览,酒店信息的浏览以及论坛信息的浏览。基本步骤主要为系统通过连接数据库从数据的相关表中读取数据然后存入结果集中,在显示到页面上。下面将通过介绍论坛信息的浏览为例,来说明具体的实现过程。论坛信息浏览界面如图7所示。

图7 论坛信息浏览界面

当用户浏览论坛信息模块时,系统会自动判断当前浏览论坛信息的用户是否

为管理员,如果为管理员则系统会自动授予管理员删除权限,即显示删除按钮,如果当前浏览论坛信息的是普通用户,那么系统就只会显示论坛的内容而不会授予普通用户删除权限,防止用户误操作。下面展示后台实现的主要代码,此处省略了HTML界面的代码。

<%

try{

if(session.getAttribute(\管理员\ %>

第 13 页 共 26 页

<% } }catch(Exception e){ session.setAttribute(\ } %> <% IDUS idus = new IDUS(); ResultSet rs = idus.selectSQL(\ try{ while (rs.next()) { out.println(\ out.println(\ +rs.getString(2)+ \ out.println(\ out.println(\ if(session.getAttribute(\管理员\ %> <% } out.println(\ } }catch(Exception ex){ } %>

4.3.3 论坛模块的设计与实现

论坛模块的功能主要有用户发布帖子和用户回复帖子这两个功能。下面将分别介绍用户发布帖子和用户回复帖子两个功能的具体实现过程。

1.帖子发布功能介绍

无论是用户还是游客都可以浏览论坛页面,并且都能发布帖子。这样可以不登录也能分享自己的一些旅游经验和其他有用的信息。用户发布帖子的界面如图8所示。

第 14 页 共 26 页

图8 发帖界面

用户通过发帖界面填写帖子的标题和内容,点击发布按钮,系统会自动判断当前登录的用户,同时将所发布的帖子的标题和内容的表单数据以及用户的相关信息传给处理发帖请求的servlet,执行相应的代码,将数据插入到发帖信息表中和回复信息表(实现数据之间的联系)完成帖子发布。下面展示后台代码。

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ response.setCharacterEncoding(\ PrintWriter out = response.getWriter(); HttpSession session = request.getSession(); //获取表单数据 String username = (String) session.getAttribute(\ String title = request.getParameter(\ String msg = request.getParameter(\ String dateTime = request.getParameter(\ String sqlmsg = \ values('\ String sqltitle = \ values('\ IDUS idus = new IDUS(); IDUS ids = new IDUS(); int i = idus.insertSql(sqlmsg); int j = ids.insertSql(sqltitle);

第 15 页 共 26 页

}

}

if(i>0&&j>0){ out.print(\发表成功!');\ response.sendRedirect(\}

out.flush(); out.close();

2.帖子回复功能介绍

用户不仅能发布帖子,浏览别人的帖子,还可以进行回复,发表自己的看法

或者意见,更方便了用户之间的交流。用户回复界面如图9所示。

图9 用户回复界面

用户在回复界面可以看到主贴信息和回复信息,同时也可以回复帖子,用户填写好回复信息后点击提交按钮,系统会自动获取其他相关信息,如回复时间,回复人,回复的哪一个帖子等这些信息同回复的内容一起传给处理回复请求的servlet,执行相应的操作完成回复的功能。下面给出后台代码。

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ response.setCharacterEncoding(\ PrintWriter out = response.getWriter(); HttpSession session = request.getSession();

第 16 页 共 26 页

String username = (String) session.getAttribute(\ String msg = request.getParameter(\ String id = request.getParameter(\ String titlename = request.getParameter(\ String dateTime = request.getParameter(\ IDUS idus = new IDUS(); String sql = \ + \ + \ if (idus.insertSql(sql) > 0) { System.out.println(\ response.sendRedirect(\ } else { out.print(\发表失败');\ response.sendRedirect(\ } out.flush(); out.close(); } }

4.3.4 管理员功能模块的设计与实现

网站的各类信息主要由系统管理员来管理,管理员的主要功能包括发布旅游信息,发布酒店信息和管理论坛信息。下面以介绍管理论坛信息为例,管理员可以像普通用户一样发布和回复帖子,除此之外管理员还可以删除用户和管理员自己发布的帖子。下面介绍此功能的实现过程。帖子删除界面如图10所示。

图10 帖子删除界面

可以从图10中看到,与普通用户的浏览界面相比,所有帖子右侧都有删除这一选项。当进入论坛页面时,系统自动判断当请登录的用户是否是管理员,上图是以管理员身份进入论坛时的页面。管理员点击删除时,系统将要删除的帖子的ID号传给处理删除请求的servlet,执行删除操作时系统会同时将要删除的帖子中的回复信息一起删除掉。下面给出相应的后头代码。

第 17 页 共 26 页

判断用户身份,同时授予删除权限。

<% try{ if(session.getAttribute(\管理员\ %> <% } }catch(Exception e){ session.setAttribute(\ } %> <% IDUS idus = new IDUS(); ResultSet rs = idus.selectSQL(\ try{ while (rs.next()) { out.println(\ out.println(\ +rs.getString(2)+ \ out.println(\ out.println(\ if(session.getAttribute(\管理员\ %> <% } out.println(\ } }catch(Exception ex){ } %>

实现删除功能。

public class doDel extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)

第 18 页 共 26 页

}

throws ServletException, IOException { doPost(request, response); }

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ PrintWriter out = response.getWriter(); IDUS id1 = new IDUS(); IDUS id2 = new IDUS(); IDUS id3 = new IDUS(); String b_title =\ String id = request.getParameter(\ String sql1 = \ String sql2 = \ ResultSet rs = id1.selectSQL(sql2); id2.insertSql(sql1); //删除表b_title中的信息 try { while(rs.next()){ try { b_title = rs.getString(1); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } String sql3 = \ id3.insertSql(sql3); //删除表b_msg(回复表)中的信息 response.sendRedirect(\ out.flush(); out.close(); }

4.3.5 酒店模块的设计与实现

酒店模块实现酒店预订的功能,用户不仅可以浏览酒店信息还可以对满意的

第 19 页 共 26 页

酒店进行预订。下面介绍酒店预订功能的具体实现。酒店预订界面如图11所示。

图11 酒店预订界面

当用户浏览酒店信息页面时可以看到预订按钮,用户点击预订,系统自动将当前的酒店的ID以及当前登录用户的ID传给处理订单的servlet,执行预订的操作。下面展示后台代码。

public class doorder extends HttpServlet{

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ response.setCharacterEncoding(\ PrintWriter out = response.getWriter(); HttpSession session = request.getSession(); String lid =request.getParameter(\ String uid = request.getParameter(\ String sql = \

第 20 页 共 26 页

5 旅游网站系统测试

5.1 注册、登录测试

首先测试的是注册功能,用户需要按要求正确填写相关信息,如果填写不对,或者是不填写,则系统会根据具体的情况给出错误提示,所有通过页面进行注册的用户都是普通用户。具体测试情况如表1所示。

表1 注册测试用例 输入 输出 用户名 小红 密码 123 密码确认 密码提示 123 电话 111 性别 两次密码不女 一致 用户名不能 123 123 123 111 女 为空 密码不能为小红 123 123 111 女 空 密码提示不小红 123 123 111 女 能为空 电话不能为小红 123 123 123 女 空 性别不能为小红 123 123 123 111 空 }

}

IDUS idus = new IDUS();

int i = idus.insertSql(sql); if(i>0){ out.print(\酒店预订成功!');\ response.sendRedirect(\}

out.flush(); out.close();

当用户登录时,不仅需要输入正确的用户名和密码,还要选择对应的身份,目前数据库中已有的管理员的用户名为blue,密码为123,当输入的用户名和密码以及身份信息都正确时,会以管理员的身份进入系统。普通用户登录的具体操作与管理员类似。具体测试情况如表2所示。

第 21 页 共 26 页

表2 登录测试用例(#表示随机数字)

输入 用户名 密码 123 验证码 #### 身份 管理员 输入 密码不能为空请输blue blue blue blue blue blue 123 123 123 111 123 #### 1111 #### #### #### 管理员 入 管理员 管理员 会员 管理员 验证码不能为空 验证码错误 登录失败 密码错误 身份不能为空 输出 用户名不能为空请5.2 酒店预订测试

当用户进入系统时 可以浏览各种信息界面,但是以游客的身份进入酒店页面就不能使用酒店预订的功能,只有在用户登录之后才能使用这个功能,具体测试情况如表3所示。

表3 酒店预订测试

步骤 1.不登录 2.进入酒店信息页面 3.点击预订 预订出错,请登录 结果 5.3 信息发布测试

无论是游客还是会员都能使用帖子发布这个功能,当用户进入发帖界面进行帖子发布时,标题和内容都必须填写,否则不能发布帖子。具体测试情况如表4所示。

表4 信息发布测试用例 输入 输出 标题 自驾游 自助式旅游 内容 杭州三日游... 自助式旅游与... 标题不能为空 内容不能为空 发布成功 5.4 信息删除测试

在本系统中,当以管理员的身份进入系统时,才有删除帖子的权限,如果不是以管理员的身份进入帖子浏览界面,则不会显示删除按钮。具体测试情况如表5所示。

第 22 页 共 26 页

表5 信息删除测试

步骤 1.以管理员身份登录系统 2.进入论坛主页 3.点击删除 删除成功 结果 5.5 信息回复测试

用户可以查看帖子的内容并对其进行回复,在进行帖子回复时,必须要填写回复的内容,否则无法回复,系统会反馈给用户错误提示信息,具体测试情况如表6所示。

表6信息回复测试用例 输入 输出 回复内容 回复内容不能为空

结 语

本人通过长时间的努力与付出,最后终于按时完成了基于JavaWeb技术的旅游网站的设计与实现,也按时完成了论文的写作。在实现旅游网站的过程中,本人遇到了很多问题,通过请教别人和查阅相关资料,最后克服了困难解决了问题,顺利完成了毕业设计。并且在这个过程中,学会了怎样面对困难,如何解决问题,达到了锻炼的目的。同时,知识面也得到了拓展,对软件开发的认识和理解也得到了进一步的加深。

在完成旅游网站之前,本人对旅游网站系统的认识都停留在表面比较浅显,虽然平时也会编写一些面向对象的小程序,单还是缺乏实战经验。经过此次毕业设计的锻炼,了解到很多有用的知识和经验。开始着手毕业设计时,对旅游网站系统的工实现原理,工作过程和开发的基本框架,没有一个清晰的概念和思路。根据指导老师的推荐,查阅了一些相关书籍和资料,比如《jsp程序设计教程》、《java面向对象编程》、《oracle实用教程》等。

在设计的过程中,通过实践操作,进一步了解了jsp网络编程、mvc设计模式的、mysql数据库相关知识、对各种开发工具的配置和操作也熟练了。更正了以前对网站的错误认识。懂得了网站维护对于网站的开发与设计为什么是至关重要的,也了解到数据库和网页直接的数据传递关系。

目前为止,旅游网站系统已经基本完成了,但还是存在缺点和不足,达不到企业的要求水平,旅游网站系统总体还有待完善和提高。

第 23 页 共 26 页

参考文献

[1] 郭珍,王国辉.jsp程序设计教程[M].北京:人民邮电出版社,2012 [2] 方睿等编著.数据库原理及应用[M].北京:机械工业出版社,2010 [3] 孙卫琴.java面向对象编程[M].北京:电子工业出版社,2006 [4] 贾素玲,王强.HTML网页设计[M].北京:清华大学出版社,2007 [5] 薛华成.管理信息系统[J].北京:清华大学出版社,2001 [6] 萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,1997 [7] 郑阿奇主编.Oracle实用教程[M].北京:电子工业出版社,2011

第 24 页 共 26 页

致 谢

首先,我要感谢我的指导老师傻逼老师,本文是在他一点都不指导下经过了多次修改完成的。其次,我还要感谢大学四年来的所有任课老师和所有同学,他们在我大学期间对我的影响和帮助是很大的。最后,我向成都信息工程大学和信息安全工程学院的全体老师表示由衷的感谢。

作者简介:

姓名: 出生日期: E-mail:

第 25 页 共 26 页

性别: 民族:

声 明

本论文的工作是 2015年12月至2016年05月在成都信息工程大学信息安全工程学院完成的。文中除了特别加以标注地方外,不包含他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程大学或其他教学机构的学位或证书而使用过的材料。

关于学位论文使用权和研究成果知识产权的说明:

本人完全了解成都信息工程大学有关保管使用学位论文的规定,其中包括: (1)学校有权保管并向有关部门递交学位论文的原件与复印件。 (2)学校可以采用影印、缩印或其他复制方式保存学位论文。 (3)学校可以学术交流为目的复制、赠送和交换学位论文。 (4)学校可允许学位论文被查阅或借阅。

(5)学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。

除非另有科研合同和其他法律文书的制约,本论文的科研成果属于成都信息 工程大学。 特此声明!

作者签名:

2016年 06 月 15 日

第 26 页 共 26 页