首页 > 其他分享 >基于SSM框架的航班购票系统运行教程

基于SSM框架的航班购票系统运行教程

时间:2023-10-22 22:33:07浏览次数:42  
标签:web 教程 java Tomcat -- 数据库 购票 SSM flyTicket

@

目录

1、前期必备

1.1、所需软件版本说明

为避免出现其它问题,建议软件版本跟作者保持一致

软件 版本 说明
Eclipse 2018-09 开发工具版本无特殊要求
Tomcat 9.0 推荐使用Tomcat9.0
Jdk 1.8 推荐使用JDK1.8
MySQL 5.7.26 强烈推荐使用MySQL5.7.x,使用高版本(如:MySQL8.0.x )会导致数据库连接失败
Maven 3.6.3 无特殊版本要求
Redis 64.3.0.503 无特殊版本要求

1.2、下载源码

获取源码:微信搜索公众号【IT学长】,回复“机票管理系统”

本系统开发设计文档:《基于web的机票管理系统设计与实现(一)》

本系统开发设计文档:《基于web的机票管理系统设计与实现(二)》

1.3、下载开发工具

作者用目前非常流行的 Eclipse 开发工具做演示,大家可直接在百度搜索关键词下载。

1.4、下载Tomcat

这一步也是非常简单啦,作者使用Tomcat9.0版本,建议跟作者保持一致。在百度搜索 Tomcat9.0,下载后解压到某个盘符下即可(记住解压路径,后面要用)

1.5、下载JDK并配置环境变量

很重要,作者使用JDK1.8版本,也是建议初学者使用作者的版本(其它版本后面配置可能会出问题)。JDK下载和环境变量配置在百度搜索关键词有很多教程,这里不再重复。

1.6、安装数据库和数据库管理工具

目前作者所有毕设源码数据库都用 MySQL5.7版本,强烈建议初学者跟作者保持一致,避免出现其它错误,待运行成功后再根据需要调整数据库版本。

MySQL5.7安装教程请看作者另一篇文章:《MySQL绿色版安装与卸载教程》

数据库管理工具作者用 Navicat,并没有版本要求,自己在百度搜索,傻瓜式安装即可,也可以用其他数据库管理工具。

1.7、安装配置Maven

基于Web的机票管理系统用到项目管理工具Maven来统一Jar包管理,关于Maven的下载安装和配置教程请阅读作者的另一篇文章:《Maven安装与配置教程》,教程中对每个步骤的描述都很详细,大家根据文章操作就可以了。

1.8、下载安装Redis

本项目中使用Redis来缓存登录人的相关信息,Redis下载安装非常简单,这里不再说明,大家去百度搜索关键词Redis下载安装教程的话有很多案例,按照教程一步步操作即可。

做完以上工作后,项目所需的基础软件就准备完成了。

2、将SQL文件导入到数据库

2.1、新建MySQL连接

1、打开安装好的Navicat(数据库管理工具)--》连接 --》MySQL

image

2、输入相关信息

  • 连接名:自定义(随便起)
  • 主机:使用默认localhost或127.0.0.1
  • 端口:使用默认3306
  • 用户名:填写自己数据库的用户名
  • 密码:填写自己数据库的密码

注意:使用了上面作者提供的数据库安装方式的,密码默认为空!

image

3、输入以上信息后,先点击“连接测试”看看信息是否正确,正确后点击“确定”即可。

2.2、新建数据库并导入SQL

1、test 右击-->新建数据库

数据库名:查看“基于Web的机票预订系统”源码包,用记事本工具打开ticket.sql文件

下载好的源码包解压后:

image

image

字符集:utf8
排序规则:utf8_general_ci

image

2、双击新建的数据库-->待数据库名由灰变亮后-->右击数据库名-->运行SQL文件-->选择文件ticket.sql -->点击开始-->关闭

注意:SQL文件在下载好的源码包中

image

image

3、刷新数据库表后即可看到导入的文件了

image

完成以上步骤后,sql文件已成功导入到数据库中了。

3、Eclipse配置Maven环境

1、打开Eclipse开发工具-->Window-->Preferences

image

2、进行如下配置:

  1. 搜索框内输入:Maven
  2. 点击:User Settings
  3. 选择Maven的setting.xml文件
  4. 检查本地仓库地址是否正确

image

4、用Eclipse导入并运行程序

4.1、Eclipse导入项目

1、打开之前安装好的eclipse开发工具,file --> import -->Maven -->Existing Maven Projects-->Next

注:这里一定要选择Maven

image

2、选择下载好的flyTicket-parent,点击Finish即可

image

image

3、导入后,如下图所示

点击Finish导入项目时在开发工具右下角有进度条提示,此处可能时间较长,请耐心等待。待进度条加载完成后项目结构如下图:

image

image

4.2、检查Maven配置是否正常

观察Maven本地仓库,查看项目依赖下载是否正常,即检查本地仓库路径下是否有类似下图中的文件夹生成。

image

如果没有上图中的文件夹生成的话需要检查Maven配置是否正确、刷新项目

Window-->Preferences-->Maven-->User Settings

image

鼠标放到项目名称右击-->Maven-->Update Project

image

4.3、检查并修改JDK版本

注意:以下项目都要修改JDK版本

  • flyTicket-dao
  • flyTicket-manage-service
  • flyTicket-manage-web
  • flyTicket-pojo
  • flyTicket-portal-service
  • flyTicket-portal-web

1、项目名称右击-->Build Path-->Configure Build Path

image

2、点击JRE System Library-->Edit-->Installed JRE-->Add

image

4.4、检查并修改Tomcat端口

此步很重要。本项目包括用户所使用的前台(flyTicket-portal-web)和管理员所使用的后台(flyTicket-manage-web)两个服务,因此也需要两个Tomcat服务器(端口不一样)。

1、将上述1.4步骤中下载好的Tomcat复制一份并重命名(重命名是为了方便区分端口),如下图:

image

2、修改apache-tomcat-9.0.30(8080)文件夹下conf/server.xml文件并保存

注意:需要修改下图中的两处

image

image

3、修改apache-tomcat-9.0.30(8081)文件夹下conf/server.xml文件并保存

注意:需要修改下图中的两处

image

image

4.5、配置Server运行环境

同步骤4.4,需要配置前台(flyTicket-portal-web)和后台(flyTicket-manage-web)两个运行环境

1、Window-->Preferences

image

2、搜索框输入server-->点击 Runtime Environments-->点击Add-->选择 Apache Tomcat v9.0-->点击 Next

image

3、重命名Name为Apache Tomcat v9.0(8080)-->点击Browse-->选择8080端口的Tomcat

注意:选择端口为8080的Tomcat

image

4、重复2-3步骤

注意:重命名Name为Apache Tomcat v9.0(8081)

注意:选择端口为8081的Tomcat

image

5、8080和8081端口的运行环境配置完成后如下图所示:

image

4.6、配置Server Runtime

通过步骤4.5配置好运行环境后,需要将两个运行环境分别添加到前台项目(flyTicket-portal-web)和后台项目(flyTicket-manage-web)中。

1、将8081环境添加到前台系统中

前台项目(flyTicket-portal-web)右击-->Build Path-->Configure Build Path-->Libraries-->Add Library-->Server Runtime-->Next-->Apache Tomcat v9.0(8081)-->Finish-->Apply and Close

image

image

配置完后如下图所示:

image

2、将8080环境添加到后台系统中

后台项目(flyTicket-manage-web)右击-->Build Path-->Configure Build Path-->Libraries-->Add Library-->Server Runtime-->Next-->Apache Tomcat v9.0(8080)-->Finish-->Apply and Close

image

image

配置完后如下图所示:

image

4.7、修改数据库相关配置

修改前台(flyTicket-portal-web)和后台(flyTicket-manage-web)数据库配置,具体操作步骤如下:

1、修改前台(flyTicket-portal-web)数据库配置

image

image

2、修改后台(flyTicket-manage-web)数据库配置

image

image

4.8、给前台项目(flyTicket-portal-web)配置沙箱支付

前台项目(flyTicket-portal-web)中用到了支付宝沙箱支付环境,需要修改flyTicket-portal-web/src/main/java/com/alipay/config/AlipayConfig.java,关于沙箱环境的介绍和详细配置步骤请阅读《支付宝支付--沙箱支付教程+案例 | PC端网站支付(超级详细)》

image

4.9、运行前台(flyTicket-portal-web)项目

注意:运行前记得开启Redis,不然在用户登录时会报错java.net.SocketTimeoutException: connect timed out

1、Servers-->New-->Server

image

2、点击Tomcat v9.0 Server-->重命名Server Name为
Apache Tomcat v9.0(8081) at local-->选择8081端口的运行环境-->Next

image

3、将flyTicket-portal-web从左边加到右边-->点击Finish

image

4、Apache Tomcat v9.0(8081) at localhost右击-->Start

image

image

5、打开浏览器输入http://localhost:8081/flyTicket-portal-web/

image

前台(flyTicket-portal-web)登录界面:

image

前台普通用户名密码如下图:

image

成功登录后:

image

4.10、运行后台(flyTicket-manage-web)项目

注意:运行前记得开启Redis,不然在用户登录时会报错java.net.SocketTimeoutException: connect timed out

1、Servers-->New-->Server

image

2、点击Tomcat v9.0 Server-->重命名Server Name为
Apache Tomcat v9.0(8080) at local-->选择8080端口的运行环境-->Next

image

3、将flyTicket-manage-web从左边加到右边-->点击Finish

image

4、Apache Tomcat v9.0(8080) at localhost右击-->Start

image

image

5、打开浏览器输入http://localhost:8080/flyTicket-manage-web/

image

后台管理员用户名密码如下图:

image

成功登录后:

image

5、常见问题及解决方式

5.1、项目导入后中文乱码问题

项目导入后出现中文乱码问题,如下图所示:

image

解决方法:改变整个Eclipse工作空间的编码格式

在Window--》Preferences--》General--》Workspace下,面板Text file encoding 选择UTF-8格式(或者从GBK改成 UTF-8)

image

image

改变Eclipse工作空间的编码格式后:

image

5.2、导入后项目名称前出现红叉叉

导入后项目名称前有可能出现红叉叉,这时候不要着急运行项目(运行会报错),根据以下步骤解决。

特别说明:如果只是在项目名称上有红叉叉,具体的文件上没有红叉叉时不影响项目运行(不用搭理)

1、鼠标放到项目名称上右击 --》Build Path -->Configure Build Path

image

2、点击 Libraries -->检查报错项

image

上图中,我们看到 JRE System Library[Java](unbound)报错,这是因为未找到 JDK,鼠标放到报错项上 --》点击右侧的Edit按钮 --》选择安装好的JDK(JRE)环境就好了

未选择JDK(JRE)之前如下图:

image

选择JDK(JRE)之后如下图:

image

注意:主要检查如下两项,报错时通常出现:XXXunbound

  • Apache Tomcat v9.0[Apache Tomcat v9.0](unbound)
  • JRE System Library[jdk](unbound)

若出现以上报错时,直接复制“Apache Tomcat v9.0[Apache Tomcat v9.0](unbound)”去百度。

同样的方式复制“JRE System Library[jdk](unbound)”去百度

5.3、Eclipse中Tomcat的add and remove找不到项目

1、右键项目--->Propertis

image

2、Project Facets--->将Dynamic Web Module打勾

image

也可以搜索关键词“Eclipse中Tomcat的add and remove找不到项目”去百度寻求解决方法。

5.4、项目运行时报错:配置应用程序监听器[org.springframework.web.context.ContextLoaderListener]错误

image

1、报错原因

该项目下所引用的 jar 包没有同步到 lib 目录下

2、解决办法

选择所运行的项目>右击Build Path>Configure build path>Deployment Assembly>add>选择Java Build Path Entries>选择Maven Dependencies

image

image

5.5、Redis报错java.net.SocketTimeoutException: connect timed out

六月 11, 2022 11:32:23 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [SpringMVC] in context with path [/flyTicket-manage-web] threw exception [Request processing failed; nested exception is org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool] with root cause
java.net.SocketTimeoutException: connect timed out
	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at redis.clients.jedis.Connection.connect(Connection.java:158)
	at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:82)
	at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1641)
	at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:85)
	at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:861)
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)

1、报错原因

出现java.net.SocketTimeoutException: connect timed out时说明Redis连接失败

2、解决办法

检查Redis是否成功开启

5.6、运行项目时HTTP状态码出现 404、500

HTTP状态码 404: 官方解释是服务器找不到请求的网页。本项目中出现404时首先检查访问地址是否正确,其次检查服务是否正常启动(Tomcat)。

HTTP状态码 500: 官方解释是服务器内部错误,服务器遇到错误,无法完成请求。本项目中出现500时表明前端请求已经到达后端服务器,只是在逻辑处理中遇到错误,具体错误原因需要我们查看Eclipse控制台(Console)。特别注意:在本项目中输入用户名和密码后点击登录时出现500状态码,一般是数据库连接失败,MySQL数据库版本高于5.7时会出现上述情况(建议使用MySQL5.7.x)。

5.7、支付时出现org.apache.jasper.JasperException: 在 [46] 行处理 [/pay/alipay.trade.page.pay.jsp] 时发生异常

付款时报错org.apache.jasper.JasperException: 在 [46] 行处理 [/pay/alipay.trade.page.pay.jsp] 时发生异常是由于没有正确配置或未配置支付宝沙箱环境,配置教程请看《支付宝支付--沙箱支付教程+案例 | PC端网站支付(超级详细)》

image

5.8、后台管理端新建广告后前台首页轮播图无法正常显示

我们在后台管理端新建广告信息后,前台首页轮播图无法正常显示,如下图:

image

1、原因分析

这是由于后台管理端上传广告图片时将图片保存到了本地(默认C:\flyTicket),导致前台轮播图img标签无法正常加载图片路径导致的。

2、解决办法

配置tomcat项目虚拟路径

  • 虚拟路径 /contentpic
  • 真实路径 C:\flyTicket

双击打开 Apache Tomcat v9.0(8081) at local

image

点击Modules-->点击AddExternal Web Module-->填写真实路径和虚拟路径-->点击OK-->保存-->关闭Apache Tomcat v9.0(8081) at local-->重启服务

image

6、获取源代码

以上就是本期的所有内容,感谢你的阅读。获取本系统源码请在公众号【IT学长】,回复关键词“基于web的机票管理系统”或者“机票管理系统”自行下载。关键词一定要输完整、输对哦!!

标签:web,教程,java,Tomcat,--,数据库,购票,SSM,flyTicket
From: https://www.cnblogs.com/ITXueZhang/p/17781305.html

相关文章

  • OMNeT++安装教程,OMNeT++/SUMO/Veins/INET安装包下载以及它们的联合仿真配置
    一、版本匹配以及下载地址Omnetpp5.6.2,Sumo1.17.0/1.13.0,Veins5.0,以及Inet4.2.5的百度云下载地址:(如果需要其他版本,请在下面提供的官网地址下载。)链接:https://pan.baidu.com/s/1iPuCyYYqnm1R73rdUovn2A?pwd=x29y提取码:x29y操作系统:Windows10OMNeT++:Omnetpp5.6.2  下载地址......
  • Navicat 15 最新po jie版下载_永久激活注册码(附图文安装教程)
    分享一波Navicat15的最新pojie版安装包和注册机,可以永久激活哟奉上Navicat15激活成功的画面:前言Navicat是一款强大的数据库管理和设计工具,支持Win、macOS和linux。直观的GUI让用户简单地管理MySQL、MariaDB、MongoDB、SQLServer、SQLite、Oracle和PostgreSQL的数......
  • Pycharm 2023.2 最新po jie版安装教程(附激活码,亲测有效)
    申明:本教程Pycharmpojie补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版!前言笔者分享一种比较靠谱的Pycharm pojie方案:激活脚本+激活码(全自动模式),即本文教程所写,这种方法适合最新的几个版本,具体步骤跟着本文教程一步......
  • 无涯教程-Clojure - 环境设置
    使用Clojure作为编程语言有多种方法。我们将研究两种使用Clojure编程的方法。Leiningen     - 使用Leiningen创建,构建和自动化Clojure项目的重要工具。EclipsePlugin - 使用CounterClockwise的插件,可用于Eclipse在EclipseIDE中进行Clojure开发。Leininge......
  • Typora po jie 教程(亲测有效)
    测试了网上的Typora的pojie教程,实测下面一种非常靠谱的方法:使用 winmm.dll 补丁,即本文教程写的,按下面步骤来,一分钟搞定Typorapojie,超级简单。友情提示:Typora最新的1.3.8版本用第一种方式也可以pojie成功。无图无真相,下面是我pojie成功截图:Typora是一款由AbnerLee开......
  • python系列教程216——何时使用列表解析
    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值......
  • 无涯教程-Clojure - 简介
    Clojure(/ˈkloʊʒər/)是Lisp编程语言在Java平台上的现代、动态及函数式方言。与其他Lisp一样,Clojure视代码为数据且拥有一套Lisp宏系统。其开发过程目前由社区驱动,其作者里奇·希基(RichHickey)则以终身仁慈独裁者(BDFL)的身份进行监督。Clojure提倡不可变性(immutability......
  • 无涯教程-AWK - 位操作函数
    AWK具有以下内置位处理函数-and与运算执行按位与运算。[Learnfk]$awk'BEGIN{num1=10num2=6printf"(%dAND%d)=%d\n",num1,num2,and(num1,num2)}'在执行此代码时,您将获得以下输出-(10AND6)=2compl补码运算它执行按位补码运算。[Learnfk]$awk'BE......
  • ArcGIS 10.5「地图信息编辑和开发软件」中文汉化版下载附教程
    arcgis10.5汉化版是一款功能非常强大的地理信息系统软件,这款软件可以同时支持2D和3D两种不同的方式来浏览整个世界的数据,而且arcgis10.5免费版还能够适用于对地理位置、信息的编辑和管理等众多操作,通过这款软件我们就可以快速处理许多有关于地理信息的内容。软件地址:看置顶贴arcgis......
  • Adobe InCopy CC2021 for Mac「Ic 支持M1芯片」汉化版下载附教程
    AdobeInCopy2021是一款由adobe公司最近推出的一款专业功能强大的编写和复印编辑软件,它主要是为开发者和专业的编辑提供的,通过它可以很容易地帮助用户创建一个独立的文档,然后你就可以根据自己的需要自由地设计文本样式,跟踪更改并对文档进行简单的布局修改,并且设计人员可以将共享......