旅游网毕业设计毕业论文
分类: Java MySQL 专栏: java Mysql 标签: 旅游-毕业设计(论文)
2023-01-02 16:17:05 681浏览
xx届毕业(设计)论文
题 目 学生档案管理系统的设计与实现
专业班级 xx信息与计算科学2班
学 号 xxx
学生姓名 xxx
指导教师 xxx
指导教师职称 副 教 授
学院名称 理 学 院
完成日期: 20xx年 6 月 5 日
西安旅游网的设计与实现
Information Hiding
based on Word Documents
学生姓名xx
指导教师 xx
随着国民生活水平的提高,人们不再满足于日常的物质生活,越来越的人开始追求精神上的享受,比如说出国游,国内游了。每年的黄金假期,不管是十一国庆节,还是五一小长假,越来越多的国人开始收拾行囊,踏上出门游山玩水的旅行。
随着互联网时代的到来,手机电脑已经普及,越来越多的人选择通过电子产品来作为旅游目的地的参考。西安旅游网就是通过线上网站与线下服务相结合的运营模式来实现旅游活动的。
本系统采用B/S模式,基于SSH开发完成。包含了景区介绍,西安人文介绍,酒店查询,旅游路线规划等多种形式,来满足用户需求。
本篇论文分为六章,主要讲述了系统开发的背景和意义,以及前景。从系统最初的构思到设计,再到开发的详细描述。在数据库设计、项目架构和模块功能的设计与实现中全面的介绍了该项目。最后对这次的开发进行了总结和致谢。
TOC \o "1-2" \h \z \u HYPERLINK \l "_Toc232510129" 摘 要 II
HYPERLINK \l "_Toc232510130" Abstract III
HYPERLINK \l "_Toc232510131" 目 录 IV
HYPERLINK \l "_Toc232510132" 文献综述 1
HYPERLINK \l "_Toc232510133" 前 言 2
HYPERLINK \l "_Toc232510134" 第一章 引言 3
HYPERLINK \l "_Toc232510135" 1.1 背景 3
HYPERLINK \l "_Toc232510136" 1.2 意义 3
HYPERLINK \l "_Toc232510137" 1.3 现状与发展 4
HYPERLINK \l "_Toc232510138" 第二章 系统总体设计 6
HYPERLINK \l "_Toc232510139" 2.1 系统的开发环境 6
HYPERLINK \l "_Toc232510140" 2.2 系统开发的内容 6
HYPERLINK \l "_Toc232510141" 2.3 系统总流程 7
HYPERLINK \l "_Toc232510142" 第三章 数据库设计 8
HYPERLINK \l "_Toc232510143" 3.1 实体关系图 8
HYPERLINK \l "_Toc232510144" 3.2 数据字典 9
HYPERLINK \l "_Toc232510145" 3.3 Word文档格式解析 11
HYPERLINK \l "_Toc232510142" 第四章 搭建框架 8
HYPERLINK \l "_Toc232510143" 3.1 集成maven 8
HYPERLINK \l "_Toc232510144" 3.2 项目结构 9
3.3测试
HYPERLINK \l "_Toc232510146" 第五章 功能设计与实现 16
HYPERLINK \l "_Toc232510147" 4.1 系统设置 16
HYPERLINK \l "_Toc232510148" 4.2 学院管理 16
HYPERLINK \l "_Toc232510148" 4.3 学生信息和档案管理 16
HYPERLINK \l "_Toc232510148" 4.4 个人设置 16
HYPERLINK \l "_Toc232510150" 第六章 全文总结 23
HYPERLINK \l "_Toc232510151" 参考文献 24
HYPERLINK \l "_Toc232510152" 致 谢 25
古城西安旅游管理系统是真正为用户考虑的网络平台,以满足客户实际需要而设计的。本系统参照真实的旅游网站所做,再结合本地旅游需求,这样可以更直接体现本网站的特点和价值所在。该系统利用ssh框架,可以通过前台的操作界面进行网站的访问和浏览,而后台是对数据表的操作对前台相关数据的管理,对数据库进行数据的更新和修改等操作。该系统包括如下五个主要模块:主界面模块设计,用户注册模块,旅游景点模块,酒店预订模块,后台管理模块等各个模块主要功能如下:
(1)主界模块设计:首页效果、首页西安人文、首页酒店信息、首页景点信息、自驾游路线。在线留言、用户注册、首页后台登录。
(2)用户注册模块:用户注册完成后,经过管理员的审核以后方能成功登录。用户注册成功以后,可以进行预订管理,个人信息管理以及旅游路线管理等功能。
(3)旅游景点模块:用户快速便捷的搜索到自己想要的旅游景点信息。景点信息展示、景点名称查询、旅游景点效果图,该部分风景的查询与显示。
(4)酒店预定模块:客户登录,可以进行具体资料查看操作。酒店详细信息、酒店预订、酒店预订成功、酒店预订成功列表所示,可以清晰的展现出酒店订购模块的具体操作和运行效果。
(5)后台管理设计:管理员登录后,可以实施各种操作。实现对网站基本信息的管理。
前 言
本文提出了基于SSH的西安旅游网站的设计和实现方法,具体介绍了该系统从构思到设计再到开发的一系列步骤。
第一章主要介绍了在基于SSH的西安旅游网站的分析和研究的背景、意义及发展前景方向。
第二章简要介绍了系统的总体设计。
第三章详细介绍了数据库的设计和实现。
第四章提出了框架的搭建和项目分层思想。
第五章详细的介绍了模块功能的设计与实现。
第六章对对本次项目的总结和收获。
本文的完成得到了XXXX教授的帮助和指导,在此向他表示衷心的感谢。
XXXX
2019-6-5 于xxxxx学院
1.1 背景
现代社会已经步入了信息社会的世界。随着互联网的广泛应用,计算机技术、计算机网络技术、数据库技术、管理技术的发展,对信息的处理和利用已经深入到各行各业,已经深入到人类生活中的各个方面。旅游是人们丰富多彩生活的重要组成部分之一,旅游业已经成为当今世界上发展势头最强劲的产业之一,它是集吃、住、行、游、购、娱六大要素于一身的综合性产业。随着旅游业的不断发展,各个地方的旅游竞争也越来越激烈,为了吸引游客,越来越多的地方注重发展本地的旅游网路平台,通过互联网这个开放的窗口展示着自己独特的魅力。
西安古称长安,是中华民族历史文化的重要发祥地,也是人类文明发达最早的地区之一,西安有着3100多年的建城史和1100多年的国都史,是中国建都最早、朝代最多、历时最长的古都,也是世界著名的历史文化名城和国际旅游城市,更应让大家有所了解。
本着这样的目的,结合本地旅游资源的实际情况和旅游发展的实际需求,开发了一个旅游管理系统,以此希望促进本地旅游业的发展。本系统将要依循面向对象软件开发过程,设计出客户端基于WEB浏览器,完成页面设计、服务器端请求的处理以及对数据库的同步更新。该系统可以实现游客分类查询西安风景、路线信息、路线预定,。系统管理员查询、修改、删除和添加交通、线路、风景和产品信息。系统工作稳定、操作简单、维护方便。
一、带动当地经济的发展。人多财聚,一个地方想要快速发展经济,单单靠本地人口是远远不够的。流动的人口会产生流动的资金链,外地人的到来会带动本地经济的发展,而旅游项目就做到这一点。开发旅游资源和发展旅游产业,有助于促进产业结构的优化调整。旅游业作为第三产业的先导产业,将大大带动第三产业的发展,进而调整第一、第二、第三产业的比例构成。而旅游活动的开展能带来外来经济注入,有利于增加政府税收,进而增强经济实力。此外,由于旅游产业的关联度比较大、链条比较长,故旅游业的发展可带动和促进许多相关行业的发展。旅游活动的开展可增加就业机会,大量吸纳社会闲散劳动力。比如:因为很多的外地人来此旅游,可以带动旅游景点的收益,酒店和饭馆的生意也因为外来旅游者而红红火火,酒店招工、饭店招人等等,间接的解决了本地人的一部分就业问题,因为旅游业而滋生的其他行业也不用多说了,像超市、服装、特产等等,旅游业为政府增加了税收,这样政府就会有更多的资金和资源去开发和完善本地的设施和福利,造福于当地的老百姓和城市的发展。
二、社会文化影响。如果旅游单单是看看风景看看建筑那就太肤浅了,旅游活动本身是一种具有不同文化传统的人群之间相互接触的活动,西安有着3100多年的建城史和1100多年的国都史,是中国建都最早、朝代最多、历时最长的古都,也是世界著名的历史文化名城和国际旅游城市,西安旅游,不仅仅是看看古老的建筑和优美的风景,了解西安历史的发展和人文情怀,才能更好地理解西安的魅力,丰富旅游者的大脑和涵养。旅游资源的开发乃至旅游活动的开展必对社会文化产生一定的影响,在中国上下五千年的文化和历史中,西安像一颗璀璨的明珠熠熠生辉。因此,旅游资源的开发不仅有利于传统文化的保护,形成独特的文化特色,树立独特的文化形象,而且有利于丰富文化内涵,培育文化,树立良好的主体形象。再就是现代旅游活动的开展,已逐渐成为科学技术传播和交流的重要手段之一,如商务旅游、会议旅游等活动,可以使科技交流的广度和深度不断加大。
三、旅游対环境的影响。随着大规模的旅游活动的开展,旅游对环境必将产生深刻的变化。具体说来,一是历史建筑和文化遗址将得到修缮和保护,这些历史文化遗产将随着旅游活动的开展又获得了新生,政府可以用一部分旅游而来的税收,用来修葺和保护当地的旅游建筑和文物、文化等,保持西安的古老传承,维护西安独有的魅力与特色。二是城市环境将得到改善。旅游活动的开展使得环境卫生得以重视和维持。西安为了更好地展现城市的没理形象,对于城市的管理会更加严格,为方便旅游活动的开展,基础设施和服务设施将不断增加,居民生活环境也将得以改善,对生态环境的保护和改善起到积极作用。
我国旅游业的发展因为历史、战争等原因起步比较晚,但是旅游业的发展非常迅速。新中国成立前,我国的经济很萧条,国民生活也普遍在温饱的阶段,旅游业发展基本处于停滞状态,旅游产业尚没有形成。自改革开放以来,随着我国经济持续快速发展和居民收入水平较快提高,我国旅游人数和旅游收入持续快速增长,旅游产业成为增长最快的居民消费领域之一。国家旅游局《中国旅游业统计公报》数据显示,从2006年至2015年的十年间,国内旅游收入总体呈现稳步增长态势, 收入从2006年的6,229.70亿元上升到2015年的34,195.10亿元,年复合增长率达到19.00%。
城镇居民依然是国内旅游收入的主要来源,城镇居民与农村居民人均花费差距缩小。2006年-2015年的十年间,城镇居民旅游收入与农村居民旅游收入基本保持在8: 2比例左右,城镇居民旅游依然是国内旅游收入的主要来源。从人均旅游花费看,近十年来旅游人均花费保持快速增长,其中城镇居民旅游人均花费从2006年的766.40元上升至2015年的985.50元,增幅29.00%;农村居民旅游人均花费从2006年221.90元增长至2015年554.20元,增幅149.75%,农村居民旅游人均花费增长速度远超过城镇居民的增长速度, 与城镇居民旅游人均花费的差距正在缩小。随着农村居民收入的不断提高,农民对旅游的消费需求也不断增强,未来农村居民旅游人均花费将进一步增长,对旅游业的贡献将不断增加。
全国旅游实际完成投资继续保持高速增长。2016年全国旅游业实际完成投资12997亿元,同比增长29%,比第三产业和固定资产投资增速分别高18个百分点和21个百分点,较房地产投资增速高22个百分点。在我国经济下行压力加大的情况下,全国旅游投资继续保持逆势上扬的态势,成为社会投资热点和最具潜力的投资领域, 旅游政策红利正在加快释放,旅游业在经济发展和劳动力就业方面的战略性地位日益凸显,中国旅游业迎来新一轮发展黄金期。
旅游行业整体稳步增长。2017年我国旅游市场整体继续保持良好的增长态势。全国旅游收入自2012年以来一直保持着15%左右的高增长水平,全国旅游人次与全国旅游收入的变化趋势基本一致,近四年来增速稳定在10%左右。数据前瞻产业研究院发布的《旅游行业市场前瞻与投资战略规划分析报告》数据显示,2012-2016年中国旅游市场规模不断扩大,旅游总收入从2012年的2.59万亿元增长至2016年的4.69万亿元,年均复合增长率为16%,增长十分迅速。2012-2016年期间中国旅游市场增速都在10%,其中2014年增速更是高达26.4%,为近五年来增速最快纪录。到2017年全年旅游收入到达5.32万亿元,预计到2018年将继续保持繁荣增长,2018年旅游收入将有望突破6万亿元。中国未来的旅游市场发展值得期待。
在线旅游市场规模接近6,000亿,渗透率不断提高。前瞻产业研究院数据显示,2016年中国在线旅游市场交易规模达5,903.6亿元,增长率为33.3%,线上渗透率为12.0%,较去年相比提升1.3%。尽管当前在线旅游行业进入稳定发展阶段,行业增长速度开始放慢,但在线旅游行业整体增长速度仍高于中国旅游业总收入增长速度,线上渗透率将保持增长。
随着互联网的发展,在线旅游行业的竞争日益激烈。比如:携程旅行网、途牛旅游网、去哪儿网等,这是时代的产物、也是大趋势。开发西安旅游网,实现线上与线下旅游的结合,适应时代潮流,同时,也提高了工作效率。
操作系统:Windows7;
编程语言:Java;
运行环境:Jdk1.7,Jre;
开发工具:Ecplise;
框架:Struts2、Hibernate、Spring;
服务器:Tomcat1.7;
数据库:Mysql5.7,Navicat for mysql(数据库图形化客户端);
前端技术:Jquery,Bootstrap插件,Jsp,CSS,JS,HTML5,Ajax,Jquery UI。
Java是一门面向对象编程语言,具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
JDK(Java Development Kit)称为Java开发包或Java开发工具,JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。
JRE是支持Java程序运行的标准环境 。JRE是个运行环境,JDK是个开发环境。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台,它附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。用来编写Java程序,方便高效。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
后台数据存储利用Mysql5.7来实现,MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL应用非常广泛。
前端技术主要是用jsp动态页面来显示数据,利用Bootstrap,Css技术渲染页面,利用html5的新特性验证和提交表单, Jquery和Js来实现页面点击等动态效果技术数据格式验证,jaxa实现前后端的数据交互,异步刷新。Jquery UI主要用于管理员后台的框架和数据展示。
本系统是基于SSH框架的线下与线下相结合的西安旅游网站,从西安著名景点,附近酒店,旅游路线和西安人文等方面来介绍这个历史悠久的文明古都,希望远方的朋友更好的了解西安,热爱西安,吃好玩好学好,是我们的服务宗旨。主要实现用户注册/登陆、数据修改、数据查询、删除等功能。
(1)网站前台的设计与实现:主要是对数据的展示和查询,包括景点展示、景区图片浏览、酒店展示、路线规划、自由行、西安人文介绍、用户游记查看、留言等。
(2)普通用户的个人中心模块:只是针对个人数据的展示和处理,包含普通用户的注册、登录、个人信息编辑、修改密码、酒店入住信息、旅游路线报名、收藏、游记管理。
(3)管理员后台功能的设计与实现:用于整个系统的数据处理,包含景区、景点、图片的管理、旅游路线管理、酒店信息管理、人文介绍等,需要展示在前台的数据,均可以通过后台管理员的操作进行不同的展示。
2.3 系统总流程
第三章 数据库设计
N N
1
N
3.2数据字典
3.2.1用户表user
用户表主要是记录注册本网站的用户信息,用户id是唯一标识,手机号作为用户的登陆账号、登陆密码、角色(1代表超级管理员2代表普通用户)、用户邮箱(用于给用户发送网站内容邮件等)、用户真实名字、性别、出生日期等基本信息记录。
字段 | 类型 | 长度 | 描述 | |
id | int | 11 | 主键,自增长 | |
mobile | varchar | 12 | 电话 | |
pwd | varchar | 255 | 密码 | |
role | int | 11 | 角色1管理员2普通用户 | |
varchar | 30 | 邮箱 | ||
realName | varchar | 20 | 姓名 | |
sex | int | 11 | 性别1男2女 | |
birth | date | 0 | 生日 |
3.2.2风景表scenery
风景表主要是用来记录风景信息的,包括风景唯一标识ID,子查询secID(当该字段为空,该记录保存的是景区信息,当该字段不为空,则表示对应景区一下的景点信息)、景点名称、地址、经纬度、景区logo图片(用于首页景区列表的显示)、景点描述、该景点对应的外连接、级别、联系电话、开发时间、结束时间、简介、标签等。
字段 | 类型 | 长度 | 描述 | |
Id | int | 11 | 主键,自增长 | |
sceID | int | 11 | 风景id | |
realName | text | 0 | 风景名城 | |
address | varchar | 255 | 景点地址 | |
longitude | decimal | 10 | 经度 | |
latitude | decimal | 10 | 纬度 | |
logo | varchar | 1024 | 图片路径 | |
introduction | longtext | 0 | 景点描述 | |
url | varchar | 255 | 对应的外联 | |
grade | int | 11 | 景区级别,星级 | |
telphone | varchar | 12 | 联系电话 | |
startTime | varchar | 255 | 开放时间 | |
endTime | varchar | 0 | 结束时间 | |
summary | longtext | 255 | 简介 | |
tags | varchar | 255 | 标签 |
3.2.3风景图片表images
该表主要记录景区的图片信息,因为用户主要通过网站来了解一个景区的情况,而图片比文字更生动形象,一个景区往往不止包含一张图片,所以需要用专门的一张表来维护景区的图片信息管理,该表数据主要在景区详情页面展示。Images表包含了唯一标识ID、风景id(根据该字段可以查询出对应的景点信息)、图片描述、图片存储路径、图片名称。
字段 | 类型 | 长度 | 描述 | |
id | Int | 11 | 主键,自增长 | |
sceId | Int | 11 | 风景id | |
description | varchar | 1024 | 图片描述 | |
url | varchar | 1024 | 图片路径 | |
name | varchar | 255 | 图片名称 |
3.2.4酒店表hotel
该表主要记录酒店信息,包含唯一标识ID、酒店logo图片(用于首页的酒店列表展示和酒店的列表展示)、酒店名称、酒店地址、经纬度、级别、酒店详情图片路径、酒店联系电话、酒店介绍。
字段 | 类型 | 长度 | 描述 | |
Id | int | 11 | 主键,自增长 | |
logo | int | 1024 | 酒店logo图片 | |
realName | varchar | 255 | 酒店名字 | |
address | varchar | 255 | 酒店地址 | |
longitude | varchar | 10 | 经度 | |
latitude | decimal | 10 | 纬度 | |
grade | decimal | 11 | 级别 | |
picture | text | 0 | 酒店图片 | |
telphone | varchar | 12 | 酒店电话 | |
introduction | longtext | 0 | 酒店介绍 |
3.2.5酒店房型表roomstyle
该表主要是记录对应酒店的房间信息。因为一个酒店有多个房间信息,所以此表与上一个表hotel存在一对多的映射关系。该表包含了唯一标识ID、房间名称、床型(包含单床、双人床、大床)、最多入住人数、早餐类型(自费、免费)、宽带类型(wifi、有线)、手否可以取消预订(0不可以1可以)、价格、包含房间的个数、房间图片、房间具体情况介绍、房间面积。
字段 | 类型 | 长度 | 描述 | |
Id | int | 11 | 主键,自增长 | |
hotID | int | 11 | 酒店id | |
realName | varchar | 20 | 标题 | |
bedStyle | int | 11 | 床型 | |
limitPerson | int | 11 | 可入住人数 | |
breakfast | int | 11 | 早餐类型 | |
broadband | int | 11 | 宽带类型 | |
cancel | int | 11 | 是否取消 | |
price | float | 8 | 价格 | |
number | int | 11 | 房间个数 | |
picture | varchar | 200 | 房型图片 | |
introduce | text | 0 | 介绍 | |
area | float | 0 | 房屋面积 |
3.2.6 预定房间roombook
该主要记录了用户预订房间的信息。包含了唯一标识ID、用户id(根据该字段可以查询出是哪个用户预定了该房间)、房间ID(根据该字段可以查询出用户预订的是那个房间,属于多对多映射关系)、创建记录的时间、入住房间的时间、退房的时间、房间名称、酒店联系电话、用户邮箱、价格、预订人的联系电话。
字段 | 类型 | 长度 | 描述 | |
Id | int | 11 | 主键,自增长 | |
useid | int | 11 | 预定人id | |
rooID | int | 11 | 房型id | |
creatDate | date | 0 | 创建时间 | |
enterDate | date | 0 | 入住时间 | |
leaveDate | date | 0 | 退房时间 | |
realName | varchar | 20 | 房间名称 | |
roomNum | int | 11 | 房间数量 | |
telphone | varchar | 12 | 酒店联系电话 | |
varchar | 30 | 邮箱 | ||
money | float | 0 | 价格 | |
peopleNum | int | 11 | 预订人电话 |
3.2.7风景酒店关联表scenery_hotel
该表主要记录了景区附近的酒店信息,是一个景区和酒店的中间表,多对多的映射关系。包含了唯一标识ID、酒店ID(根据该字段可以查询富景酒店信息)、风景ID(根据该字段可以查询出对应的景区信息)。
字段 | 类型 | 长度 | 描述 | |
Id | int | 11 | 主键,自增长 | |
hotel_id | int | 11 | 酒店id | |
scenery_id | int | 11 | 风景id |
3.2.8友情链接表 friendlink
该表主要来记录与本网站合作的其他平台信息,给他提供一个外联,起到相互引流的作用。可以根据好友级别来进行排序,将重点合作对象展示在前面。
该表包含了唯一标识ID、外链、logo图片、简介、链接名称、好友级别(根据该字段进行排序)。
字段 | 类型 | 长度 | 描述 | |
Id | int | 11 | 主键,自增长 | |
url | varchar | 255 | 网址 | |
logo | varchar | 255 | Logo图片路径 | |
summary | varchar | 255 | 简介 | |
grade | int | 11 | 好友级别 | |
realName | varchar | 255 | 链接名称 |
3.2.9西安人文表news
该表主要从吃、穿、住、行、建筑风格、风俗等等各方面来介绍美丽西安。用户可以通过西安人文来更好的了解西安。该表包含了唯一标识ID、标题、子标题、作者、简介、内容、发布时间、点击量、手否热点(1是0否)。
字段 | 类型 | 长度 | 描述 | |
id | int | 11 | 主键,自增长 | |
title | varchar | 50 | 标题 | |
subTitle | varchar | 50 | 子标题 | |
author | varchar | 20 | 作者 | |
summary | varchar | 255 | 简介 | |
content | text | 0 | 内容 | |
publicTime | date | 0 | 发布时间 | |
click | varchar | varchar | 点击量 | |
hot | varchar | varchar | 1热点0非热点 |
3.2.10旅游路线表route
该表主要是记录旅游路线的。包含了唯一标识ID、旅游路线名称、图片路径、开始时间、结束时间、旅游路线类型(1自由行0组团旅游)、价格、说明、报名人数、旅游内容、是否热门(1是0否)、简介、创建时间。
字段 | 类型 | 长度 | 描述 | |
id | int | 11 | 主键,自增长 | |
realName | varchar | 20 | 旅游路线名称 | |
logo | varchar | 1024 | 图片路径 | |
startDate | date | 0 | 开始时间 | |
endDate | date | 0 | 结束时间 | |
routeType | int | 11 | 1自由行0组团旅游 | |
money | float | 8 | 价格 | |
description | text | 0 | 说明 | |
numPeople | int | 11 | 报名人数 | |
content | text | 0 | 内容 | |
hot | bit | 0 | 是否热门 | |
summary | text | 1 | 简介 | |
regDate | date | 0 | 创建时间 |
3.2.11旅游路线报名routebook
该表主要记录的路线的报名者的信息,与旅游路线表是多对一的映射关系。包含了唯一标识ID、路线ID(根据该ID可以查询出用户报名的旅游路线的信息)、报名人数、报名者的联系方式、价格。
字段 | 类型 | 长度 | 描述 | |
id | int | 11 | 主键,自增长 | |
rouID | int | 11 | 路线id | |
useid | int | 11 | 报名用户ID | |
leaveTel | varchar | 12 | 电话 | |
peopleNum | int | 11 | 报名人数 | |
leaveName | varchar | 12 | 报名人姓名 | |
totalPrice | float | 8 | 价格 |
3.2.11旅游游记表travels
该表主要是记录旅游的游记内容的,为用户提供了一个可以发表旅游感想的平台。同时也可以方便其他的准备来西安旅游的用户查看,作为一个旅游的参考。该表包含了唯一标识ID、用户ID(根据该字段可以查询发表旅游游记的用户的信息)、游记的标题、游记的内容、游记的发布时间、点击量。
字段 | 类型 | 长度 | 描述 | |
id | Int | 11 | 主键,自增长 | |
useid | Int | 11 | 用户id | |
title | varchar | 50 | 标题 | |
content | Text | 0 | 内容 | |
publicTime | Data | 0 | 发布时间 | |
click | int | 11 | 点击量 |
3.2.12用户建议表message
表主要是用来记录用户的留言、以及用户对网站的建议等,这样可以更好地促进网站的修改和用户体验的提高。该表主要记录了唯一标识ID、用户ID(根据该字段可以查询出留言的用户信息)、管理员ID(根据该字段可以查询出处理该留言的管理员信息)、留言内容、处理留言的状态(1已处理0没有处理)、创建该记录的时间也就是留言时间。
字段 | 类型 | 长度 | 描述 | |
id | Int | 11 | 主键,自增长 | |
userId | Int | 11 | 用户id | |
adminId | Int | 11 | 处理管理员id | |
content | text | 0 | 内容 | |
stats | Int | 11 | 0未处理1已回答 | |
createDate | date | 0 | 创建时间 |
3.2.13路线收藏表collect
该表主要记录了用户对旅游路线的收藏信息,只要用户登录自己的账号,就可以在自己的个人中心后台看到自己曾经的收藏信息,方便用户查看。该表包含了唯一标识ID、用户ID(根据该字段可以查询出该用户信息)、路线ID(根据该字段可以查询出收藏的路线信息)、创建该记录时间也就是收藏时间。
字段 | 类型 | 长度 | 描述 | |
Id | int | 11 | 主键,自增长 | |
useid | int | 11 | 用户id | |
rouID | int | 11 | 路线id | |
creatDate | date | 0 | 创建时间 |
搭建项目
4.1搭建框架
4.1.1导入框架需要的jar。
其中包括常用的jar,比如el表达式的ognl.jar、json.jar(主要是将数据转化成json,做为ajax的接口使用)、文件上传的commons-fileupload-1.3.1.jar、Java和新标签库jstl-1.2.jar、数据库连接池c3p0-0.9.12.jar、数据库连接包mysql-connector-java-5.1.30.jar、ueditor编辑器jar包等等。还包括sturus2的一些jar包,hibernate的jar包和spring的jar包,具体如下图所示:
4.1.2配置文件web.xml。
在xml里配置了struts2的过滤器和spring监听器,如下图所示:
struts2的过滤器主要是用来做客户端的请求拦截处理。spring监听器是框架的启动入口,在web容器启动时自动装配spring applicationContextLoader.xml的配置信息,因为它实现了SrevletContextLinstener这个接口,在web.xml中配置这个监听器,启动容器时,就会默认执行他的实现方法,整个配置的加载过程由ContextLoader来完成。
4.4.3 数据库配置jdbc.properties
这里配置了数据库的连接信息,以及数据库连接池的初始化信息。使用数据库连接池也是考虑了对数据库的读写消耗,当用户访问量过高,数据库的承载压力会变大,这样就影响的数据库的读写速度,从而延长了前台页面的加载时间,甚至会无法加载数据。这样超级影响用户体验。
数据库连接是一种关键的有限的昂贵的资源,对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。
注意:该项目和数据库编码均使用的UTF-8编码,在连接数据时最好声明数据库的编码,以防数据读写乱码。
4.1.4配置struts.xml
配置登陆拦截器和异常处理,主要是针对程序的404、500以及其他的异常跳出友好提示界面,增加用户体验感。
项目前台action配置
项目后台action配置
这里的action配置主要是使用了通配符来进行配置的。Struts2根据浏览器发过的请求连接名称进行格式匹配,从而找到对应的action类和方法,进去不同的业务逻辑处理,再根据返回的字符串匹配result里的页面,这样用户需要看到的信息就会展示在前台了。使用通配符可以减少代码量,灵活方便,大大的提高了开发效率,减少出错概率。
4.4.5配置hibernate.cfg.xml
这里配置方言、是否打印sql语句,是否格式化sql语句和自动更新数据库表结构。在Hibernate底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持使用标准SQL语句,但所有数据库都对标准SQL进行了一些扩展,所以在语法细节上存在一些差异,因此Hibernate需要根据数据库来识别这些差异。假如系统需要数据库的变换时,那么用hibernate的话就只需要改一改配置文件(修改连接字符串、驱动类、方言等),而用传统的jdbc时,那么sql语言可能就要有很多改动。格式化打印出来的sql语句其实是为了方便在开发的过程中可以在控制台查看到对数据库的操作信息,方便调试和快速定位解决开发过程中遇到的问题。如下图所示:
4.1.6配置applicationContext.xml
配置数据源
Spring就相当于一个管家,它提供了管理数据库的入口。这样可以提高开发效率,在开发的过程中,不是由开发人员一个一个的单独配置,而是由spring统一管理。web容器启动时会加载application.xml,从而加载jdbc.properties和hibernate.cfg.xml,进而连接数据库和设置数据库连接池。
配置事务以及hibernate
事务是用来确保数据的完整性和一致性的。事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。假如网站突然出现故障,那么正在进行交易的所有数据都会通过事务而回到原始状态。这里是由spring来管理事务的,此处主要使用了通配符,可以对以上进行配置过的方法进行事务回滚,比如:以save开头的保存数据的方法,以update开头的修改数据的方法等等。
4.2构造项目分层结构
此项目采用了MVC的分层设计模式,MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码。
cn.travel.action和front.action以及cn.travel.servlet是controller控制层,处理前端端提交过来的post和get请求;cn. travel.dao处理数据的增删改查;cn.model实体封装;cn.travel.service业务接口层,cn.travel.serviceimpl业务实现层;cn.travel.interceptor登录拦截器;cn.travel.untils工具包,比如日期、数据格式验证转换等;resources存放配置文件。
项目页面的存放目录如下:
页面主要存放到webRoot下,front主要是存放网站的前端页面和静态资源文件,WEB_INF/back存放的是管理员后台页面,WEB_INF是被保护的文件夹,他里面的页面不可以被直接访问,因此,存放后台的页面比较安全,但是像一些css、js、图片等静态资源就必须放到webRoot下的back文件夹里了。upload文件夹是用来存放用户和管理员上传的图片。index.jsp是网站的入口也就是首页,login.jsp是用户的登录页面。
4.3测试数据
发布至tomcat并且启动
访问项目,选中index.jsp右键Run as server,访问页面如下图所示:
功能设计与实现
主要包括首页,旅游景点,旅游路线,酒店,自由行,游记,留言,登录,注册这些功能。可供用户根据自己的需求进行景点筛选,或者寻找属于自己的旅游路线。包括酒店查询,筛选,预订等。
5.1.1必玩景点
西安是一个历史悠久的古城,有很多的名胜古迹,最著名的有秦始皇兵马勇、大唐芙蓉园、大雁塔等等。用户可以根据自己的需要来筛选自己的想游玩的地方,或者根据最近的热门搜索做参考。为了节约游客的时间和旅游成本,旅游景点是根据地理位置来进行划分的,比如东线包括兵马俑、秦始皇陵、华清池、华山;西线包括赵公明财神文化景区、楼观台国家森林公园、茂陵博物馆、杨贵妃墓、法门寺院、法门寺博物馆和合十舍利塔、太白山、昭陵博物馆、乾陵、永泰公主墓、章怀墓、懿德墓。北线包括壶口瀑布、黄帝陵、王家坪、枣园、延安;南线包括:终南山、翠华山等。还包括市内游。游客也可以根据自己的时间长短,选择不同的路线和几日游套餐,内容多种多样,配有专车接送。
图5-1-1:必玩景点
景点详情包括该景点的基本信息,比如地址、级别、景区介绍、价格、发车信息、注意事项、旅游团信息、附近的酒店信息等。
图5-1-2:景点详情图片浏览
图5-1-2:景点信息
图5-1-3:景点详细信息
图5-1-3:附近酒店信息
5.1.2酒店
主要展示酒店信息,包括酒店名称、地址、级别等。入驻本网站的酒店层次多种,类型多样,用户可以根据自己的需求选择不同的房型,比如公寓型、单间、床铺、套房等等,价位合理。
图5-1-3:酒店信息
图5-1-3:酒店详情1
图5-1-3:酒店详情2
不但如此,还可以查看房间信息,以及酒店提供的其他服务,比如:热水,网络、开业时间、家具、床被,空调、早餐等,网站可以展示酒店各种图片信息,比如:室内图、公共区域图、房间图等等,让用户能更具体的了解酒店信息以及住宿环境。解决了用户出行的住宿问题。可以进行网站预约房间,提前安排自己的旅游行程以及住宿问题。
同时用户也可以多家酒店经行对比,无论是地址位置还是价格,均可以根据喜好选择属于自己的合适的房间。
5.1.3旅游路线
用户可以根据自己的需要来报名进行旅游。
图5-1-3旅游路线展示
图5-1-3旅游路线详情
5.1.4自由行、游记和留言
图5-1-3自由行
图5-1-3游记
图5-1-3留言
5.2用户个人中心设计与实现
个人中心主要是针对普通用户的后台数据管理,包含登录、注册、个人基本信息编辑、密码修改、酒店预订和入住情况、预定路线、收藏、发表游记等功能。
5.2.1用户的注册和登录
图5-1-1用户注册
图5-1-1用户登录
5.2.2个人信息编辑和密码修改
图5-1-1用户信息修改
图5-1-1用户密码修改
5.2.3我的酒店管理
图5-1-1用户入住酒店
图5-1-1用户未入住的酒店信息
5.2.4预定路线
图5-1-1预订旅游路线
5.2.5收藏
图5-1-1我的收藏列表
5.2.6游记
图5-1-1我的游记
图5-1-1发布游记
此处主要是用了ueditor编辑器来实现的,因为游记不仅仅是文字组成的,他还包括图片,准确的来说是图文混版,普通的textarea文本框已经不能满足这个需求了,所以采用了超文本框编辑器UEditor,它是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量、可定制、用户体验优秀等特点。开源基于BSD协议,所有源代码在协议允许范围内可自由修改和使用。百度UEditor的推出,可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间,有效降低了开发成本。
5.3管理员后台设计与实现
管理员后台使用jquery ui框架实现,jQuery UI 是以 jQuery 为基础的开源 JavaScript 网页用户界面代码库。包含底层用户交互、动画、特效和可更换主题的可视控件。可以直接用它来构建具有很好交互性的web应用程序。此项目中主要用到了datagrid表格控件,它其实是使用了ajax来实现数据的获取,根据他的需要传入固定参数,比如:URL请求路径、queryParams查询参数。然后将返回的字段绑定到对应的表格的列,还可以进行分页功能,既方便使用,又可以开发快速。如下图所示:
运行效果图:
管理员后台主要包括基本管理、风景管理、旅游路线、路线规划、酒店管理、资讯管理。管理员通过该后台对网站的信息展示和用户进行管理,实现网站与线下旅游相结合,方便用户规划自己的旅游假期和酒店预订。
图5-3-1:管理员登录
图5-3-2:后台管理
5.3.1基本管理
基本管理包括用户列表,用户留言和友情链接功能。用户列表主要是对本网站的注册用户进行展示展示,编辑,添加,删除等操作。
图5-1-1:用户管理
用户留言主要是对用户的一些疑惑或者建议进行答疑解惑,类似于客服功能,后台管理员回复后会在用户的留言页面进行显示。
图5-1-2:用户留言
图5-1-2:管理员进行回复
友情连接列表就是针对合作的其他旅游公司或者机构进行一个外联的引流和宣传,起到对方相互引流的合作。包括添加、编辑、删除、上传logo的功能。在首页的下方展示。
图5-1-2:友情链接列表
图5-1-3:编辑外联信息
风景管理包括景区列表、景点列表、风景图片这三个模块。风景列表主要是针对抱团旅游的用户,推出的名胜古迹一日游,或者几日游,内容丰富多彩,可供游客自由选择适合自己的旅游套餐。
风景管理主要包括对旅游套餐的添加、编辑,删除,还包括景点附近的酒店信息的添加,编辑和删除。其中采用了第三方百度地图API来实现对景区地址的标记。百度的超文本编辑器插件来实现对景区的详细介绍,可以同时输入文字、图片、段落、表格等各种复杂的文字格式,这样既方便又灵活,可以更加清楚地展示对景区的详细说明。
图5-2-1:风景管理列表
图5-2-2:景区地图标记
·图5-2-3:景区超文本编辑框
图5-2-4:景区附近酒店列表
此处采用弹框的形式添加富景酒店信息,方便管理员操作。如下图所示:
图5-2-5:景区附近酒店列表
景点列表是构成景区列表的小单元,是通过景区列表的自查询来实现的,他主要针是某一景区的具体景点进行添加,编辑和删除等操作。
图5-2-6:景点列表
景点编辑或者添加的时候,需要选择对应的的景区数据,如下图:
图5-2-6:景点编辑
风景图片就是对景区和景点的图片进行管理,因为用户在报名之前,大多数都是通过浏览网站景区的图片来进行赛选和参考的。所以,需要将景区图片功能独立出来进行管理。
图5-2-6:景取图片管理
图5-2-7:某一景区图片浏览
5.3.3旅游路线管理
旅游路线管理包括路线列表和路线报名两个模块。旅游路线主要是有管理员发起的个人组织旅游活动,全部自费,时间自定,有意向者可以通过网站发起报名。
图5-3-1:旅游路线管理
图5-3-2:旅游路线报名
5.3.4路线规划
图5-4-1:路线规划
图5-4-2:路线规划途径地
图5-4-3:用户收藏路线列表
5.3.5酒店管理
酒店管理包含对酒店信息的录入,编辑和修改,然后通过酒店添加房间信息。还包含对预约用户的数据处理。
图5-5-1:酒店管理
图5-5-2:酒店信息编辑
图5-5-3:房间信息管理
图5-5-4:房间预定管理
5.3.6资讯管理
主要包含西安人文介绍和游记管理。
图5-6-1:西安人文管理
图5-6-2:游记管理
5.3.7个人设置
包含修改密码和退出。
图5-6-2:修改密码
经过这个学期认真的学习、设计和开发,基于ssh的旅游系统已经开发完成。该系统实现了对旅游景区,路线,景点的录入和编辑展示等功能。对西安酒店的信息管理以及房间预定等。
刚开始确定好大概方向,先是粗线条的勾勒出大致的模块,比如需要收集景点、路线的资料,然后细化功能,具体到数据库的设计。我并不是一下子就把数据库所需要的字段设计好的,而是多次参考其他的网站,分析他们的网站数据来确定自己的数据库表结构。
设计好数据库后,开始着手搭建框架。以前我没有自己单独搭建过框架,这次对于我来讲,也是一个不小的挑战,我在网上查找各种各样的资料,包括书籍,视频,博客,技术论坛等,来学习这方便的知识。我发现学会运用网络资源也是非常重要的,网上信息繁杂,对于我而言,我需要的是入门资料,越简单越好。当然,光是看别人怎么做没有用,还是的自己动手。由浅入深、由简单到复杂,在我整合这三大框架的时候还是出现了问题,在这里我要感谢我身边的同学和老师,及时给与我帮助。
接下来就是开发功能,我之前的前端基础也是比较薄弱,通过这次的开发与学习,我又学习到了新的前端框架JQUERY UI,所谓事半功倍,学会运用一个好的框架,不仅提高了开发效率,也美化了页面。其实,在这个过程,需要掌握一个好的学习方法和学习的效率,毕竟开发时间有限,如果我还像以前上课那样,一节一节的看,那么我的把大部分时间花到怎么学习这个框架上,而不是快速的将他运用到项目里,在开发的过程中去熟练的使用它。
所谓付出总有回报,从最开始的一个想法,付出汗水和努力,终于单独完成了这次的开发。虽然我表现的还不够优秀,网站做个也有不足之处,但是我会继续学习来弥补我的不足之处,俗话说,三人行必有我师焉,时刻保持空杯的心态去学习,才会提高。
通过这几个月的设计与开发,我学到了很多东西。以前课堂上讲的知识都是零星的散开的知识点,通过这个项目,我已经把之前的知识点都串联起来了。脑袋里有了更清晰的认识和感悟。
从一开始的懵懂无措,到最后的收获满满,我很开心,也很欣慰。这在期间,除了技术上了提高,更让我意识到个人的成长才是最关键的。我以前遇到事情老是慌慌张张,手足无措,承受能力太弱,然后自我否定自己的能力,不自信。在这期间,我很感谢同学对我的鼓励,让我立刻调整好心态,充满力量,继续前行。
做项目的过程是痛苦的,毕竟会遇到各种各样的问题。如果是简单的问题到也还好,我可以很快解决,如果稍微复杂一点,我就没有头绪了,有时候一个问题浪费一天的时间也没有解决,想着剩下的日子越来越少,心理自然焦躁不安,无法静下心来继续开发,在这期间,我要感谢我的指导老师xxx,给于我的帮助和关心,他总是不厌其烦的给我讲解,直到我理解为止。谢谢我的导师,衷心的感谢。
以前,我写的都是小项目,代码量也不多,出现问题也能立马找到原因。随着项目功能的完成,代码量越来越大,一旦出现问题就很难去快速的定位了,这个非常浪费时间,也消耗我的心态。在室友的帮助下,我学会了debug的模式去调试代码,真是快速简单。学会运用工具也是非常重要的。在这里我要感谢我的室友,谢谢你,谢谢你这四年的陪伴!
时间总是那么快,在这里,我不得不即将结束我这次的演讲。感谢我的母校,感谢我的老师和同学!
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
展开评论