JavaWeb实训项目 河南省旅游指南

1 基本信息

1.1 系统名称

河南省旅游指南的设计与实现

1.2 开发运行环境

Window 10 64位

JDK 1.8.0

IDEA 2019版本

MySql 5.1.47

Tomcat 8.5

Maven 3.3.9

1.3 使用的核心技术简介

1.Maven:是一个项目管理工具,它的作用就是管理项目,主要体现在两个方面:“依赖管理”和“一键构建”。

(1)依赖管理:对jar包的管理方式,maven会将所有需要的jar包放在本地仓库,每个项目通过配置文件文件引入自己所需要的

(2)一键构建:一个命令就可以完成一个项目构建过程。而项目构建是指一个项目从源代码完成的那一刻起后面的流程(清理 编译 测试 打包 安装 部署)就称为项目的构建过程

2.JBLJavaToWeb插件:JBLJavaToWeb插件可以将一个普通的Maven项目更改为Java WEB项目

3.MyBatis:是一款优秀的持久层框架,它底层封装的是JDBC。使用Mybatis之后,就不再需要像JDBC那样去写复杂代码来设置参数、处理结果集等。而是采用简单的XML配置 + 接口方法的形式实现对数据库的增删改查操作。

4.反射:是Java中的一个“低层技术”,作用:可以用一个“字符串表示的类名”去加载这个类,并获取这个类的内部信息,从而创建对象,并访问成员的过程。

5.注解:是一种元数据,可以将它理解为注释、解释,它为我们在代码中添加信息提供了一种形式化的方法,使得我们可以对方法、类、参数、包、域以及变量等添加标准(即附上某些信息)。且在以后某个时段通过反射将标注的信息提取出来以供使用。

6.QRious插件:QRious是一款基于HTML5 Canvas的纯JS二维码生成插件。通过它可以快速生成各种二维码。

2.系统需求分析

2.1系统可行性分析

旅游业是一个综合的行业,它把吃、住、行、游、购、娱各个环节联为一体,提供“一条龙”服务,通过产业关联带动、吸纳就业等功能,推动和刺激着经济增长和社会进步,我国旅游业发展的起步较晚,真正的发展应该是在改革开放以后,在这20年里,我国的旅游业得到了长远的发展。无论是入境和出境旅游人数、旅游收入、还是在世界旅游市场中的地位都得到了很大的发展和提高。随着网络的发展,我们除了通过传统的报纸广告方式让公众了解旅游外,现在更多可以通过网络传播最新的旅游资讯。

网络旅游应需求而诞生,旅行社、酒店、景区有了自己的旅游网站宣传平台,网络旅游为大家的旅游出行提供了方便之门。旅行社通过网络满足自己的旅游发布需求:旅游企业概况、联系方式、旅游产品资源等等;网络旅游同时为游客提供多重选择:丰富的旅游资源、图文并茂的旅游产品等等。从网络到旅游为我们实现了一对一的合作模式,游客可以根据网络了解旅行社所提供的资源自助的安排旅游行程,旅游企业也可以直接面对客户提供多方位的服务。

2.2系统需求分析

旅游网站系统是在旅游人数日益增多的情况下应运而生,它是一个关于现代人对旅游要求的提高和信息方便快捷日益加速而提出的一套应于网络的旅游网站系统。

旅游业的支柱地位已初见端倪。可是全民办旅游的气氛还不浓,许多政策和管理措施还不到位,旅游企业体制不完善等弊端的存在使的坚持大旅游、高起点、优布局、功能全、可持续的原则很难实现。于是电子商务旅游在这种情况下被提了出来,它能满足不同游客的不同要求,使的他们在查询和预定旅游线路、酒店预定等方面能方便和快捷。

旅游网站不仅适合小型的旅行社,对于大中型的旅行社一样适宜。本网站系统通过旅客与我们网站的联系人员联系,能很快的得到需要的服务。该系统为游客提供了经典的旅游线路和报价,酒店价格、条件,车次信息和旅游相关查询等。通过使用网页自动检测浏览客户的最新消息,以实现后台数据的自动刷新功能,为旅客们提供更好的服务。

3.系统功能设计

3.1系统总体设计

本系统有如下功能组成:

用户注册:用户通过填写用户名、密码和其他基本信息来注册一个账号;

用户登录和退出:用户登录分为账号密码登录和短信验证码登录,通过遍历数据库进行登录,如果没有跳转注册页面;退出就是将账号退出,返回主页面;

个人信息:可以查询和修改账号的基本信息;

地址管理:对用户的地址信息进行添加和删除;

旅游方案:将旅游的规划和路线显示;

购物车:显示用户想要购买的商品以及进行商品的添加和删除;

订单支付:提供支付渠道,同时将方案和规划添加到订单信息。

3.2系统模块详细设计

3.2.1 用户注册功能模块

用户注册时我们先对用户名、电话号码和密码是否填写进行验证,首先为账号文本框绑定一个失去焦点事件处理程序来验证用户名是否填写,并在span中输出一些提示信息,紧接着定义一个正则来验证用户名格式是否合法,最后通过使用Ajax验证用户名是否在服务器端存在。

然后验证手机发送的验证码,为发送手机验证码超级链接绑定click事件,先验证验证码是否填写,接着定义一个正则来验证用户名格式是否合法,最后提交到服务器进行验证。

3.2.2 用户登录和退出功能模块

用户登录和退出功能与前面的用户注册大同小异,首先将登陆用户与未登录用户的区分显示,然后为文本框绑定一个失去焦点事件处理程序来验证是否填写,并在span中输出一些提示信息,紧接着定义一个正则来验证格式是否合法,最后通过使用Ajax验证是否在服务器端存在。当进行短信验证码登录时,验证手机发送验证码的时候,先为发送手机验证码超级链接绑定click事件,先验证验证码是否填写,接着定义一个正则来验证格式是否合法,最后提交到服务器进行验证。

3.2.3 个人信息功能模块

用户通过登录上去后,点击右上角的个人中心就可以进到个人中心里面去,在个人中心里可以进行头像的更换、昵称的修改以及其他信息的更新操作,然后该功能会将用户更新后的数据回显出来并提交到数据库里面。

3.2.4 地址管理功能模块

用户通过登录上去后,点击右上角的个人中心进入到个人中心里面,点击左下方的地址管理,然后可以任意添加自己的用户地址,将常用地址设为默认地址,如果发现某个地址信息内容出现错误,也可以对地址进行更改操作,当觉得哪些地址不想要了点击删除即可。

3.2.5 旅游方案功能模块

用户登录上去后,可以根据自己的喜好选择景点路线,也可以直接在搜索框里面搜索,系统会根据用户的浏览量来为用户推荐最适合的旅游套餐,并将旅游的规划和路线显示出来。

3.2.6 购物车功能模块

用户在挑选出自己喜欢的旅游方案后可以点击查看详情,然后再次浏览详细信息后确定好数量可以选择加入购物车,成功加入购物车后在右上方点击购物车可以查看用户添加进去的方案,确定无误后点击支付提交订单。

3.2.7 订单支付功能模块

用户确定无误后点击支付提交订单后,系统通过Qrious插件生成支付二维码,用户通过扫一扫生成的二维码完成订单的支付。

3.3数据库设计(使用E-R图或者三线表)

以下是系统数据库的设计结构,其中包括订单表、订单项表、用户表、线路表、线路图册表、导航分类表和店铺商家表。

(一)数据库结构图如下:


(二)E-R图设计如下:

4.系统整体及功能模块展示与实现

项目主页面展示:

用户注册功能模块:

用户注册时先对用户名、电话号码和密码是否填写进行验证,并在span中输出一些提示信息,紧接着验证用户名格式是否合法,然后通过使用Ajax验证用户名是否在服务器端存在,最后验证手机发送的验证码,为发送手机验证码超级链接绑定click事件,先验证验证码是否填写,接着定义一个正则来验证用户名格式是否合法,最后提交到服务器进行验证。

用户登录和退出功能模块:

首先将登陆用户与未登录用户的区分显示,然后来验证是否填写,并在span中输出一些提示信息,紧接着定义一个正则来验证格式是否合法,最后通过使用Ajax验证是否在服务器端存在。

当进行短信验证码登录时,验证手机发送验证码的时候,先为发送手机验证码超级链接绑定click事件,先验证验证码是否填写,接着定义一个正则来验证格式是否合法,最后提交到服务器进行验证。

个人信息功能模块:

用户通过登录上去后,点击右上角的个人中心就可以进到个人中心里面去,在个人中心里可以进行头像的更换、昵称的修改以及其他信息的更新操作,然后该功能会将用户更新后的数据回显出来并提交到数据库里面。

地址管理功能模块:

用户通过登录上去后,点击右上角的个人中心进入到个人中心里面,点击左下方的地址管理,然后可以任意添加自己的用户地址,将常用地址设为默认地址,如果发现某个地址信息内容出现错误,也可以对地址进行更改操作,当觉得哪些地址不想要了点击删除即可。

旅游方案功能模块:

用户登录上去后,可以根据自己的喜好选择景点路线,也可以直接在搜索框里面搜索,系统会根据用户的浏览量来为用户推荐最适合的旅游套餐,并将旅游的规划和路线显示出来。

购物车功能模块:

用户在挑选出自己喜欢的旅游方案后可以点击查看详情,然后再次浏览详细信息后确定好数量可以选择加入购物车,成功加入购物车后在右上方点击购物车可以查看用户添加进去的方案,确定无误后点击支付提交订单。

订单支付功能模块:

用户确定无误后点击支付提交订单后,系统通过Qrious插件生成支付二维码,用户通过扫一扫生成的二维码完成订单的支付。

5.总结体会

在这期间,我学会了IDEA中Tomcat的配置、Maven的配置与使用、IDEA中MySQL的配置等等,也掌握了如何在IDEA中创建数据库和表,使用IDEA向数据库里面插入数据,在IDEA中使用SQL语句导入数据,在Java里面创建Servlet后的重要三步:第一步先添加一个注解@WebServlet(“/映射路径”);第二步让servlet继承HttpServlet;第三步重写Service()方法。

随后又学到了如何为文本框绑定一个失去焦点事件处理程序并验证所输入的内容是否合法,通过jsp来验证输入的信息是否符合要求,以及如何使用第三方工具类和客户端如何向服务器端返回值等等。另外老师还向我们介绍了用户对象的封装以及密码在录入数据库的时候使用MD5Util进行加密处理等等。

实训刚开始是非常难的,期间遇到了许许多多的问题与错误,但只要相信自己,一直跟着老师的节奏坚持走下去,就一定可以学会学好。通过这次实训的学习,真真正正的让我学到了好多书上没有的内容,老师的耐心讲解和同学们的互帮互助使我受益匪浅,而这次实训也会成为我积累的经验,使得我以后的工作可以顺利进行,并进一步提高自己的学习能力和代码能力。
注:由于源码量过多,需要的朋友可在资源中下载,也可私信我拿取! 

猜你喜欢

转载自blog.csdn.net/qq_64314976/article/details/128694000
今日推荐