基于Java旅游网站设计与实现.docx
《基于Java旅游网站设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Java旅游网站设计与实现.docx(30页珍藏版)》请在冰豆网上搜索。
基于Java旅游网站设计与实现
基于Java旅游网站设计与实现
摘要:
随着经济的发展和人们生活水平的提高,旅游活动已经成为人们生活中重要的组成部分。
旅游可以放松身心和开阔眼界。
游客们能够了解各地的习俗,能学习更多的地方文化等。
本网站将旅游和互联网结合起来,利用HTML技术建设静态旅游网站,使用Java以及Java的SSH框架连接MySQL数据库对旅游网站功能的实现。
关键词:
Java;MySQL数据库;HTML;旅游网站
Abstract:
Withtheeconomicdevelopmentandpeople’slivingstandardshaveimproved,Tourismactivitieshavebecomeanimportantpartofpeople'slives.Tourismcanrelaxthebodyandmindandbroadenthehorizon.Touristscanunderstandthecustomsofallpartsofthecountry,Andthemcanlearnmoreaboutlocalcultureandsoon.ThiswebsitecombinestourismwiththeInternet,usingHTMLtechnologytobuildastatictourismwebsiteandusingJavaandJava'sSSHframeworktoconnectMySQLdatabasetorealizethefunctionoftourismwebsite.
Keywords:
Java;MySQLdatabase;HTML;Touristwebsites
1引言
1.1课题研究背景
旅游,是很多人选择出去游山玩水的不二选择。
互联网不断发展,如今手机、电脑也是逐渐普及,越来越多的人能在网上搜索到想去的地方,各个旅游景点的风景图片。
让人们不用出门更好的了解旅游知识,旅游,更是一种时尚与潮流。
很多老年人,学生会组队一起去旅游,更能让人学会互相帮助团结的力量。
随着中国人均收入水平不断提高,人们的旅游消费支出一直处于增长状态,对旅游内容和产品提出新的要求,更多的满足人们多样化、多层次、多形式的精神文化需求。
旅游不光是为了出去游玩。
也让更多的人们了解中国过去的悠久的历史文化。
1.2研究的目的与意义
由于生活水平的提高,人们都慢慢变得越来越来依赖网络。
用户的选择也随即变得多样化起来,如何开发出一个让用户更好的了解和体验的旅游网站呢?
随着网络的覆盖,我国的网民急剧增加,不同年龄层次的用户需求也各不相同。
想要满足所有人的需求还是有一定困难的,那么,我们最应该将我们的旅游网站的设计成一个简单大方,容易上手的网站,使用户操作起来易于明白。
而不管什么层次的用户,大概都希望在网络上能实现一个与他人交流的功能,因此,我们的旅游网站也考虑到了用户的留言交流功能。
本网站可以提供一个交流平台,还可以通过我们的网站了解旅游网站的更多技巧。
正是用户需要这样的一个网站,促进了旅游业的迅速发展,它可以为用户理想的提供更多景点,可确保用户交流的多样化,便于人多对旅游更多的认知,使生活变得丰富多彩起来。
2可行性分析
旅游网站的设计不仅为用户提供方便,还带来了很大的方便性,人们对旅游的理念也已经发生了很大的变化。
2.1社会可行性
随着社会不断发展,用户们对于旅游的需求越来强烈,如今对于旅游网站还是比较多,使用的人们也是非常的多,所以我想设计一个属于自己管理的旅游网站,应该还是可以吸引到一定的用户量。
另外,现在大部分旅游网站功能强大,因此,我只是想推出一个只属于重庆的旅游网站。
让更多的外地人了解重庆的本土文化特产。
2.2技术可行性
开发主要使用Java语言进行程序的开发,HTML语言作为UI界面的设计,数据库使用MYSQL。
这些开发技术基本已经成熟,而且有一定的基础,使用起来上手比较快,因此是完全可行的。
但是任何系统都是需要实时更新的,不可能一成不变,所以需要程序员对于数据库以及编程方面的技术比较成熟,在后期维护上还是有一定难度。
2.3开发环境
2.3.1Eclipse简介
Eclipse最初是由IBM公司开发的IDE开发环境,是一个开放源代码的、基于java的可扩展开发平台。
Eclipse还包括其他插件开发环境,由于Eclipse中的每样东西都是插件,给用户提供了一致的开发环境。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)
2.3.2HBuilder简介
HBuilder是HTML的一款开发工具,能适用于很多的浏览器。
使用HBuilder写HTML代码非常的方便,利用HTML的CSS、JS样式能很好的写出一个静态的页面。
HBuilder内嵌了jquery、bootstrap等很多的框架,让人使用起来更加的简单。
总之HBuilder配合CSS/JS写HTML代码是非常的方便。
2.3.3JAVA语言的优势与运用
JAVA语言的优势:
(1)Java是纯面向对象编程的语言
(2)平台无关性
(3)Java提供了许多内置的类库,通过这些类库,简化了开发人员的设计工作,同时缩短项目开发的时间。
(4)提供了对Web应用开发的支持,列如,Servlet和JSP可以用来开发Web应用程序
(5)具有较好的安全性和健壮性。
Java语言经常会被用在网咯环境中,为了增强程序的安全性
3开发准备设计
3.1开发技术
3.1.1Bootstrap
Bootstrap是一个用于快速开发Web应用程序和网站的前端框架。
Bootstrap是基于HTML、CSS、JAVASCRIPT的。
Bootstrap的响应式CSS能够自适应于台式机、平板电脑和手机
3.1.2SSH框架
SSH是struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架。
集成SSH框架的系统从职责上分为四层:
表示层、业务逻辑层、数据持久层和域模块层
Struts:
JSP页面的请求会被struts2.xml拦截并,提交到Action方法中。
负责接收ActionServlet的请求,并根据调用模型的业务层方法处理请求,并将结果返回JSP页面显示。
Spring:
spring是一个开源框架。
它用来整合其他的框架。
Spring是使用基本的JavaBean来完成管理的。
Spring提供了面向切面编程的支持(AOP),包含并管理应用对象的配置和生命周期。
Hibernate:
hibernate使用起来非常的方便,需要配置数据库的映射文件,调用hibernate的模板(HibernateTemplate)就可以对数据库进行增删改查,可以减少对SQL语句的编写。
3.1.3NavicatforMySQL数据库
NavicatforMySQL是一套专为MySQL设计的强大数据库管理及开发工具,基于Windows平台并且易于学习。
NavicatforMySQL使用了极好的图形用户界面(GUI),用一种安全、容易的方式使得它快速地创建、组织、存取和共享信息;用户可以控制MySQL数据库以及显示不同的管理资料,支持导入/导出向导,能更加方便的进行档案备份;Navicat支持通过SSH通道、HTTP通道连接到用户的数据库;它的功能也不断的更新,变得越来越强大。
安装和建立连接,比较的简单,基本步骤如下:
(1)在官方网站上下载安装包,解压安装包。
(2)有快速安装和自定义安装,但是两种方式基本没多大差别,选择“快速安装”,只需要选择好文件夹,然后点击安装然后等待安装完成就好。
(3)选择自定义安装相对麻烦一些,选择好“自定义安装”后,选择下一步,然后选定好需要安装的组件,最后点击安装后等待完成。
(4)安装完成之后,可以勾选运行程序,点击完成就可以运行了。
综上,完成上面几个大的安装后,我们的开发环境就基本已经搭建好了,相对使用其它语言的项目开发环境搭建来说,我们使用JAVA语言还是要简单许多,至少在开发环境搭建上来说还是要简洁很多的。
4旅游网站的设计与分析
4.1设计与分析
要想我们的旅游网站能吸引用户,那一定要有独特之处,哪怕是一些很小的细节设计或者是一些独特的想法等,所以在设计上面需要夺下功夫,不管怎样,我们的系统功能要完善,页面要美观,需要具备一下特点:
(1)展示给用户的页面要简洁大方,色彩搭配不可过于鲜艳,让人看起来舒服就好,不必一味追求亮眼。
(2)用户体验方面也需要着重考虑,没有人会愿意使用需要时间等待页面的系统。
还有一点就是操作不能过于复杂,毕竟要考虑到使用者可能会是不同年龄层次,简洁易于操作应该会更受欢迎。
(3)用户之间可以相互关注并且能进行交流,让用户能有更好的交互体验,
(4)后台主要是实现一个管理员对整个系统的一个管理功能,比如:
对用户信息的修改,添加等基本管理功能。
4.2E-R图
E-R图主要是由用户、管理员、主界面它们之的关系三部分构成的一个系统功能试图,主要作用是为了帮助进行需求的分析,指导整个过程中的工作流程,从而理清混乱的关系。
本网站基本的E-R图如图4-1所示:
图4-1网站E-R图
这是整个网站的一个总体规划,其中的小细节会继续进行相关拓展与完善。
4.3数据库设计
本网站主要有6个表。
分别是用户表、管理员表、景点表、留言表、酒店管理表,地点表。
(1)用户表--user
结构下图4.3-1所示:
图4-2用户表
字段主要为:
主键ID、用户名、用户密码、用户手机号。
(2)管理员表--admin
结构下图4.3-2所示:
图4-3管理员表
字段主要为:
主键ID、管理员、管理员密码。
(3)景点表--buy
结构下图4.3-3所示:
图4-4景点表
字段主要为:
主键ID、景区名字、景区的价格、去景区的方式、去景区的时间、去景区的人数、去景区的类型、用户名。
(4)留言表--message
结构下图4.3-4所示:
图4-5留言表
字段主要为:
主键ID、用户名、留言标题、留言内容。
(5)酒店管理表--hotel
结构下图4.3-5所示:
图4-6酒店管理表
字段主要为:
主键ID、酒店名字、酒店类型、酒店价格、入住日期、用户名。
(6)地点表--place
结构下图4.3-6所示:
图4-7地点表
字段主要为:
主键ID、地点名称、地点地址。
5系统的实现
5.1网站首页
图5-1网站首页面
图5-2景点介绍
图5-3热门推荐
5.2用户注册
注册界面当然也需要验证了,首先注册的时候需要输入手机号码获取短信验证码,验证码不能乱填写,注册的用户名和密码都有要求。
不满足是不会通过。
必须全部信息填写无误后才能进行注册。
注册成功后数据将会保存到数据库中。
图5-4注册界面
formaction="register"method="post">
textfieldname="userBean.userName"id="userName"label="用户名"placeholder="请输入您的用户名">
textfield>
passwordname="userBean.password"id="psw01"label="密码"placeholder="请输入您的密码">
password>
passwordid="psw02"label="确认密码"placeholder="请再次确认您的密码">
password>
短信验证码:
输入验证码:
submitid="tijiao"value="注册">
submit>
form>
代码分析:
注册界面的代码布局,使用form表单提交。
Form表单有一个提交的action(提交地址)。
本设计主要是使用java的ssh框架来实现的。
action提交的方法会到struts.xml配置文件,配置文件中会写对应的action方法。
action方法有对应的Action.java类文件。
并且在里面写action对应的方法。
$("#btn").bind("click",function(){
$.ajax({
dataType:
"JSON",
type:
"POST",
url:
"tonumber",
data:
{
ver:
$(".number").val(),
},
});
});
代码分析:
这段代码使用了ajax提交数据,ajax是异步提交数据.所谓异步提交就是不会跳转页面。
提交的格式是“json”格式的。
Json格式也可以是对象,也可以转化成字符串类型。
提交方式是post。
Post提交相对于get提交更加安全。
Data将页面上的值传到服务器中。
(1)当用户把鼠标点到用户名输入框时也就是获取焦点,会给用户提示用户名的注册格式。
注册格式的话是用了正则表达式验证的,并且会写判断语句。
用户是否符合提示的要求。
图5-5输入用户提示信息
(2)当用户点击输入框输入的用户名不符合正则表达式或则不输入用户名时,则会提示“您输入的用户名不符合规范,请再次输入”。
如果一直没输入或输入格式错误的话,则会一直提示着这句话。
图5-6用户不正确
(3)一般一个合格的网站或者是系统,注册是都会让用户输入两次密码。
这并不是麻烦而是为了用户密码的安全性,如果只输一次的话,万一用户在输入的时候不小心输入错了或者输掉了一个数字。
那么登录的时候就登不上了。
主要是为了提高密码的安全性。
让用户更加确认自己的密码是什么。
两次如果不一致也会提示用户“您输入的密码与前一次不同,请再次输入”。
直到输入正确或重新输入。
图5-7二次密码错误
(4)当用户名、密码都输入的格式都输入正确过后。
就会提示“恭喜您,此用户以使用”
图5-8密码验证
privatestaticfinalStringAPP_KEY="ff33db0c8f220944afcef8ea1d86b710";
网易云信分配的账号,请替换你在管理后台应用下申请的Appkey
privatestaticfinalStringAPP_SECRET="8c45c211b195";
网易云信分配的密钥,请替换你在管理后台应用下申请的appSecret
privatestaticfinalStringNONCE="123456";
privatestaticfinalStringTEMPLATEID="3922470";短信模板ID
privateStringMOBILE;手机号码
privatestaticfinalStringCODELEN="6";短信验证码的长度,默认为4,范围在4~10之间
5.3用户登录
(1)用户登录界面就是这个样子了,登录的话只需要输入用户名和密码即可
图5-9用户界面
Useru=userService.getUser(userBean.getUserName(),userBean.getPassword());
Stringusername=userBean.getUserName();
Stringpassword=userBean.getPassword();
if(username.equals("")&&password.equals("")){
JOptionPane.showMessageDialog(newJFrame().getContentPane(),
"亲,用户名和密码必须要填哦","系统信息",JOptionPane.QUESTION_MESSAGE);
returnINPUT;
}elseif(username.equals("")&&!
password.equals("")){
JOptionPane.showMessageDialog(newJFrame().getContentPane(),
"亲,记得输入用户名哦","系统信息",JOptionPane.QUESTION_MESSAGE);
returnINPUT;
}
代码分析:
调用getUser()方法去查询数据库输入的用户和密码是否一致,如果输入错误,则会有相关的提示信息。
“JOptionPane.showMessageDialog(newJFrame().getContentPane(),"亲,用户名和密码必须要填哦","系统信息",JOptionPane.QUESTION_MESSAGE);”这段代码是java生成的一个提示弹框,提示内容自己编辑
(2)当用户什么都不填就点击登录的时候,会给用户一句话的提示“亲,用户名和密码必须要填哦”。
图5-10提示信息
(3)用户也可能填了用户名而没有填写密码的情况,没有输入的会提示用户“亲,记得输入密码哦”这只是为了方便提示用户。
图5-11用户密码提示
(4)用户没有输入用户名的时候也会提示用户“亲,记得输入用户名哦”。
图5-12用户错误提示
(5)当用户把用户名和密码都填写的时候,点击登录的时候就会执行代码,去查询数据库。
用户名和密码是否和数据库一致。
如果不一致,则会提示“用户名或密码错误,请重新输入”。
不给用户提示是用户名还是密码错误的原因是,防止不是本人登录。
猜别人密码的情况。
也算是一种提高用户安全的提示吧。
图5-13用户信息错误
(6)当用户名和密码都输入时,也会根据数据库来查询,用户输入的是否和数据库的用户信息一致,如果一致则会提示“恭喜您,登录成功!
”,点击确定跳转到网站的首页面。
图5-14用户登录成功
5.4管理员登录
当用户的信息需要修改时,可以找管理员。
管理员可以对选中的用户进行,修改、查询信息、删除等。
还可以新添加一个用户。
当然管理员是不可以注册的,因为涉及到用户的信息。
所有管理员直接在后台内部添加到数据库。
进入管理员界面如图5.1.4-1所示:
图5-15管理员界面
(1)当管理员没有输入密码时,会提示管理员“亲,请输入密码哦”
图5-16提示密码
(2)当用户名或者是密码不对时,会提示“用户名或密码错误,请重新输入!
”,直到用户名和密码输入正确才能登录。
图5-17填写错误
(3)当用户名忘记输入的时候,会提示“亲,记得输入用户名哦”。
图5-18提示用户名
(4)当用户名和密码都输入,并且查询过数据库之后。
确认正确就提示“恭喜您,登录成功!
”点击确定进入到用户的信息页面。
图5-19登录成功
(5)当管理员成功登录过后,会显示所有的用户和用户的信息。
这个用户信息表使用了一个jqgrid框架来实现的,jqgrid主要的优势是不用自己写表格。
增删改查以及分页查询的功能都给我们写好了,我们只是需要写代码实现这些功能即可。
url:
'getJqgridUser',
datatype:
"json",
colNames:
['编号','用户名1','密码','电话号码'],
colModel:
{name:
'userId',
index:
'userId',
width:
200,
align:
'center',
stype:
"text",
searchoptions:
{sopt:
["eq","cn"]}
},
.....
editurl:
"editJqgridData",
rowNum:
5,
rowList:
[5,10,20],
sortname:
'userId',
sortorder:
"asc",
mtype:
"post",
caption:
"用户信息表",
jQuery("#list2").jqGrid('navGrid','#pager2',
{edit:
true,add:
true,del:
true},
{closeAfterEdit:
true},
{closeAfterAdd:
true},
{closeAfterDel:
true},
{closeAfterSearch:
true,multipleSearch:
true}
);
代码分析:
这段代码主要是运用到了jgrid框架,会自己给我们生成表格,通过url提交地址,dataType传输请求数据返回的格式。
colNames列的显示字段,colModel设置每一列对应的样式和权限。
rowNum显示默认每页显示多少行数据。
rowList可以选择每页显示的数据,sortname初始化排序的字段,sortorder排序的方式,mtype提交的方式,caption表的名字。
Edit:
true是表示可以对该表进行编辑,但要写对应的方法去实现编辑功能。
Add:
true表示该表也可以进行添加,del:
true表示可以对表进行删除功能。
如果是false则不可以对面进行编辑、添加、删除。
closeAfterEdit:
true是指编辑后关闭弹框。
multipleSearch:
true可以实现多条件查询。
图5-20用户信息
5.5酒店预订
在网站首页会有一个酒店的标签,选择你要预订的酒店。
进入酒店的界面,会显示酒店的信息说明。
选择自己需要订购的信息即可。
预订成功后。
添加到数据库。
可以在订单里面查看预订的酒店。
进入查看酒店页面,显示如下的酒店页面
图5-21酒店首页
图5-22酒店页面
(1)当用户点击立即购买的时候,会弹出一个框。
里面会显示当前酒店的相关信息,点击“订购酒店”会将该酒店的信息添加到“我的订单”里面,到时候可以直接查看订单即可。
图5-23订购信息
重庆威斯汀酒店
豪华型
¥
499
元
立即购买
酒店类型: