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进行加密处理等等。

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

JavaWeb实训项目 河南省旅游指南相关推荐

  1. JavaWeb实训项目:基于SSM框架的CRM客户关系管理系统(文章最后有源码)

    JavaWeb实训项目:基于SSM框架的CRM客户关系管理系统(附部分源码) 一.项目背景 项目演示 二.项目介绍 三.涉及技术 总结 源码地址 一.项目背景 "世上本来没有CRM,大家的生 ...

  2. javaWeb实训项目总结

    先总结一个人完成前后端交互上的总结: 前后端需要分开写,定好前端传到后端的请求内容,url以及参数的名称,避免后台获取不到值,在写完一个功能模块的时候不用急着和前端进行数据调试,可以自己再网页输入请求 ...

  3. java-web实训项目:simonshop(3)Servlet层

    控制层 在src里创建net.hw.shop.servlet包,在里面创建各种控制处理类. 1.登录处理类Loginservlet 修改登录页面信息 运行一下首页 运行Tomcat到网页输入login ...

  4. java 实训项目_实训方案(JavaWeb项目实训)-

    实训方案(JavaWeb项目实训)- 2012-2013学年第一学期 <Java Web项目开发实训>课程实施方案 课程名称(英文):Training of Java Web Projec ...

  5. java web开发实训心得,【JavaWeb实训心得体会材料】

    JavaWeb实训心得体会材料 <JavaWeb实训心得体会材料.doc>由会员分享,可免费在线阅读全文,更多与<JavaWeb实训心得体会材料>相关文档资源请在帮帮文库(ww ...

  6. [JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)词云的生成( kumo库)

    目录 一.本次实验分析过程 二.Jee连接MySQL数据库 三.异步传值及界面设计 四.jsoup爬虫爬取新闻网页 五.新闻词云的生成( kumo库) 六.存入数据库 快速链接:[JavaWeb项目实 ...

  7. 实训项目2Linux基本命令,实训项目2 Linux文件系统管理

    实训项目2 Linux文件系统管理 发布时间:2011-06-24 15:51:10来源:红联作者:397778823 一. 实训目的: 1. 掌握磁盘分区的方法: 2. 掌握文件系统的建立.挂装.解 ...

  8. python实训项目-黑马程序员上海校区Python21期Django项目实训

    黑马程序员上海中心 月薪一万只是起点 关注 晚上十点,一名名Python学生正在酣畅淋漓地撸代码,手指不间断地敲击着键盘,发出机械而清脆的声音. 各个小组在经过为期4天的django项目小组开发,终于 ...

  9. 安卓实训项目:基于储存卡音乐播放器实训报告5.0

    安卓实训项目:基于储存卡音乐播放器实训报告5.0 (一)功能要求 在基于存储卡音乐播放器V0.4基础上,作如下修改: 1.创建应用程序常量接口保存广播频道常量 2.在音乐播放器应用程序类里添加两个属性 ...

最新文章

  1. 华盛顿多家博物馆因美政府停摆“闭门谢客”
  2. Linux系统下 Apache+PHP 环境安装搭建
  3. 7天备战蓝桥杯之第一天
  4. [Java][JavaScript]字符串数组与字符串之间的互转(join/split)(转)
  5. Tomcat免安装版的环境变量配置以及Eclipse下的Tomcat配置和测试
  6. 大数据新手之路四:联合使用Flume和Kafka
  7. 史上最全近百条Oracle DBA日常维护SQL脚本指令
  8. 【Java程序设计】输入输出
  9. linux 两台linux服务器想共享一个磁盘分区
  10. ps还原上一步快捷键_ps怎么返回上一步?PS返回上一步快捷键
  11. 火线安全:Log4j2 史诗级漏洞波及全球6万+开源软件
  12. linux vi如何输入井号,Linux Vi命令用法详解
  13. 黑鲨能换鸿蒙系统吗,黑鲨告诉你重装系统对电脑的好坏处
  14. linux开热点软件,Debian开WI-FI热点
  15. android中检测网速,Android 流量与网速监测(悬浮窗) 源码
  16. 自动阅读教程--五条app
  17. java.lang.arrayindexoutofboundsexception: Index 13 out of bounds for length 13
  18. 【转载】一个程序猿必须会玩的游戏
  19. linux redis自启动
  20. 免费刷会员和六钻工具?小心通过QQ传播的灰鸽子Backdoor.Win32.Gpigeon.gem

热门文章

  1. android 压缩json数据处理,android接口中json数据的传输中使用gzip压缩
  2. VC++实现浏览器自动填表
  3. 前端转战JAVA——0928
  4. C语言实现矩阵求逆(四阶)
  5. python植物大战僵尸代码例_用Python实现植物大战僵尸游戏,很酷
  6. 霍尼韦尔与浙江石化扩大合作,助力中国最大石化项目进一步建设
  7. 小米java内部面试题_小米社招面试经验java,面试题整理(一面二面)
  8. win10系统下制作win10x64pe教程
  9. lora 网关 linux,基于Semtech SX127X之LoRaWAN 单通道网关方案
  10. 异或(exclusive OR)