【每晚玩转一套ssm项目】jsp智能停车场管理系统
【每晚玩转一套ssm项目】jsp智能停车场管理系统
一、前言
本文章教程手把手带你玩转ssm项目,曾经博主也是小白经过数个日夜终于将ssm玩透彻了。现在博主免费推出了【每晚玩转一套ssm项目】这一系列专栏,带你手把手上手ssm。请大家关注并监督我每晚更新哦~这个过程我也会从新人的角度总结出易错点并写道文章的最后。博主也是一枚在校大学生,现在带学弟学们入门ssm项目。在此之前你需要一定的计算机操作基础,现在我将带你,不需要写一行代码,从0到1搭建一个项目。
二、项目概览
三、使用的工具及运行环境
所谓工欲善其事必先利其器,首先你需要准备如下的工具。
IntelliJ IDEA 202.2.2,avicat Premium 15、开发者工具、HBuilderX、vscode等
开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:avicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven..9
接着准备运行环境
我开发使用的电脑是笔记本,如下是我的配置哦~
这是我的java版本,建议搭建使用jdk8.0
mysql使用5.7x版本。到这里恭喜你运行环境就全部搭建完毕了。接下来可以畅快的开始跑jsp项目了
四、详细搭建步骤
导入数据库
首先导入数据库db.sql
右键数据库点击运行
好家伙,导入数据库报错了,,如下图所示。
错误代码
代码语言:txt复制[SQL] Query jspmn576i start
[ERR] 1046 - o database selected
[ERR] -- MySQL dump 10.1 Distrib 5.7.1, for Linux (x86_64)
--
-- Host: localhost Database: jspmn576i
-- ------------------------------------------------------
-- Server version 5.7.1
/*!40101 SET @OLD_CHARACTER_SET_CLIET=@@CHARACTER_SET_CLIET */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATIO_COECTIO=@@COLLATIO_COECTIO */;
/*!40101 SET AMES utf8 */;
/*!4010 SET @OLD_TIME_ZOE=@@TIME_ZOE */;
/*!4010 SET TIME_ZOE='+00:00' */;
/*!40014 SET @OLD_UIQUE_CHECKS=@@UIQUE_CHECKS, UIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIG_KEY_CHECKS=@@FOREIG_KEY_CHECKS, FOREIG_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='O_AUTO_VALUE_O_ZERO' */;
/*!40111 SET @OLD_SQL_OTES=@@SQL_OTES, SQL_OTES=0 */;
--
-- Table structure for table `chat`
--
DROP TABLE IF EXISTS `chat`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `chat` (
`id` bigint(20) OT ULL AUTO_ICREMET COMMET '主键',
`addtime` timestamp OT ULL DEFAULT CURRET_TIMESTAMP COMMET '创建时间',
`userid` bigint(20) OT ULL COMMET '用户id',
`adminid` bigint(20) DEFAULT ULL COMMET '管理员id',
`ask` longtext COMMET '提问',
`reply` longtext COMMET '回复',
`isreply` int(11) DEFAULT ULL COMMET '是否回复',
PRIMARY KEY (`id`)
) EGIE=InnoDB AUTO_ICREMET=16156876540 DEFAULT CHARSET=utf8 COMMET='';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `chat`
--
LOCK TABLES `chat` WRITE;
/*!40000 ALTER TABLE `chat` DISABLE KEYS */;
ISERT ITO `chat` VALUES (61,'2021-0-14 01:00:27',1,1,'提问1','回复1',1),(62,'2021-0-14 01:00:27',2,2,'提问2','回复2',2),(6,'2021-0-14 01:00:27',,,'提问','回复',),(64,'2021-0-14 01:00:27',4,4,'提问4','回复4',4),(65,'2021-0-14 01:00:27',5,5,'提问5','回复5',5),(66,'2021-0-14 01:00:27',6,6,'提问6','回复6',6),(1615684887226,'2021-0-14 01:21:26',11,ULL,'1',ULL,1),(161568765429,'2021-0-14 02:02:44',1615687168826,ULL,'请问有地面停车场吗\r\n','没有\r\n',0);
/*!40000 ALTER TABLE `chat` EABLE KEYS */;
ULOCK TABLES;
--
-- Table structure for table `cheweituizu`
--
DROP TABLE IF EXISTS `cheweituizu`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `cheweituizu` (
`id` bigint(20) OT ULL AUTO_ICREMET COMMET '主键',
`addtime` timestamp OT ULL DEFAULT CURRET_TIMESTAMP COMMET '创建时间',
`zuyongbianhao` varchar(200) DEFAULT ULL COMMET '租用编号',
`cheweiquyu` varchar(200) DEFAULT ULL COMMET '车位区域',
`cheweihao` varchar(200) DEFAULT ULL COMMET '车位号',
`cheweiweizhi` varchar(200) DEFAULT ULL COMMET '车位位置',
`tingfangshijia` int(11) DEFAULT ULL COMMET '停放时价',
`jinchangshijian` varchar(200) DEFAULT ULL COMMET '进场时间',
`likaishijian` datetime DEFAULT ULL COMMET '离开时间',
`tingfangshizhang` int(11) DEFAULT ULL COMMET '停放时长',
`zuyongjine` varchar(200) DEFAULT ULL COMMET '租用金额',
`yonghuming` varchar(200) DEFAULT ULL COMMET '用户名',
`chepaihao` varchar(200) DEFAULT ULL COMMET '车牌号',
`sfsh` varchar(200) DEFAULT '否' COMMET '是否审核',
`shhf` longtext COMMET '审核回复',
`ispay` varchar(200) DEFAULT '未支付' COMMET '是否支付',
PRIMARY KEY (`id`)
) EGIE=InnoDB AUTO_ICREMET=1615687461717 DEFAULT CHARSET=utf8 COMMET='车位退租';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `cheweituizu`
--
LOCK TABLES `cheweituizu` WRITE;
/*!40000 ALTER TABLE `cheweituizu` DISABLE KEYS */;
ISERT ITO `cheweituizu` VALUES (41,'2021-0-14 01:00:27','租用编号1','车位区域1','车位号1','车位位置1',1,'进场时间1','2021-0-14 09:00:27',1,'租用金额1','用户名1','车牌号1','是','','未支付'),(42,'2021-0-14 01:00:27','租用编号2','车位区域2','车位号2','车位位置2',2,'进场时间2','2021-0-14 09:00:27',2,'租用金额2','用户名2','车牌号2','是','','未支付'),(4,'2021-0-14 01:00:27','租用编号','车位区域','车位号','车位位置',,'进场时间','2021-0-14 09:00:27',,'租用金额','用户名','车牌号','是','','未支付'),(44,'2021-0-14 01:00:27','租用编号4','车位区域4','车位号4','车位位置4',4,'进场时间4','2021-0-14 09:00:27',4,'租用金额4','用户名4','车牌号4','是','','未支付'),(45,'2021-0-14 01:00:27','租用编号5','车位区域5',
[SQL] Finished with error
不慌,分析以下原因。。手动先创建数据库。。
通过分析sql文件,我们可以看到数据库名称
代码语言:txt复制-- MySQL dump 10.1 Distrib 5.7.1, for Linux (x86_64)
--
-- Host: localhost Database: jspmn576i
-- ------------------------------------------------------
-- Server version 5.7.1
/*!40101 SET @OLD_CHARACTER_SET_CLIET=@@CHARACTER_SET_CLIET */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATIO_COECTIO=@@COLLATIO_COECTIO */;
/*!40101 SET AMES utf8 */;
/*!4010 SET @OLD_TIME_ZOE=@@TIME_ZOE */;
/*!4010 SET TIME_ZOE='+00:00' */;
/*!40014 SET @OLD_UIQUE_CHECKS=@@UIQUE_CHECKS, UIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIG_KEY_CHECKS=@@FOREIG_KEY_CHECKS, FOREIG_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='O_AUTO_VALUE_O_ZERO' */;
/*!40111 SET @OLD_SQL_OTES=@@SQL_OTES, SQL_OTES=0 */;
新建数据库
执行sql脚本
出现以上信息,,说明数据库导入成功。
代码语言:txt复制[SQL] Query jspmn576i start
[SQL] Finished successfully
到这里说明数据库导入成功了。
idea导入项目
启动!qidon!!
点击open打开项目
选择项目
点ok,,点第一个。
等待加载依赖jar包。
项目导入完毕,,我们会发现猫死了。。。
导入tomcat小猫咪【重点】
点击Edit Configurati...
切换为我们电脑自带的tomcat小猫
切换完毕之后就看到小猫,,复活啦,,此时就能编译运行项目了
tomcat 启动!!!!!!!!!!
数据库配置与我的保持一致。。
代码语言:txt复制validationQuery=SELECT 1
jdbc_url=jdbc:mysql://127.0.0.1:06/jspmn576i?useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false
jdbc_username=root
jdbc_password=12456
#jdbc_url=jdbc:sqlserver://127.0.0.1:14;Databaseame=jspmn576i
#jdbc_username=sa
#jdbc_password=12456
编译运行项目
点击小三角运行项目,,然后点击锤子。。。可以看见正在构建项目
还需要配置
Project Default settings for all modules. Configure these parameters for each module on the ame: jspmn576i SDK:
1 java version "1.0.2"
显示以下s开的信息说明成功运行。
2025-01-15 18:22:10 -6044 [RMI TCP Connection(2)-127.0.0.1] DEBUG - Servlet 'SpringMVC' configured successfully
[2025-01-15 06:22:10,441] Artifact jspmn576i:war: Artifact is deployed successfully
[2025-01-15 06:22:10,442] Artifact jspmn576i:war: Deploy took 12,406 milliseconds
2025-01-15 18:22:12 -7885 [http-nio-8080-exec-1] DEBUG - DispatcherServlet with name 'SpringMVC' processing GET request for [/jspmn576i/resources/fonts/themify.woff]
2025-01-15 18:22:12 -7889 [http-nio-8080-exec-1] DEBUG - Looking up handler method for path /resources/fonts/themify.woff
2025-01-15 18:22:12 -790 [http-nio-8080-exec-1] DEBUG - Did not find handler method for [/resources/fonts/themify.woff]
2025-01-15 18:22:12 -790 [http-nio-8080-exec-1] DEBUG - Matching patterns for request [/resources/fonts/themify.woff] are [/resources/**]
2025-01-15 18:22:12 -7904 [http-nio-8080-exec-1] DEBUG - URI Template variables for request [/resources/fonts/themify.woff] are {}
2025-01-15 18:22:12 -7906 [http-nio-8080-exec-1] DEBUG - Mapping [/resources/fonts/themify.woff] to HandlerExecutionChain with handler [ResourceHttpRequestHandler [locati=[ServletContext resource [/resources/]], resolvers=[org.springframework.web.servlet.resource.PathResourceResolver@1d5b24]]] and 1 interceptor
2025-01-15 18:22:12 -7907 [http-nio-8080-exec-1] DEBUG - Last-Modified value for [/jspmn576i/resources/fonts/themify.woff] is: -1
2025-01-15 18:22:12 -7915 [http-nio-8080-exec-1] DEBUG - Skip CORS processing: respe already contains "Access-Control-Allow-Origin" header
2025-01-15 18:22:12 -798 [http-nio-8080-exec-1] DEBUG - ull ModelAndView returned to DispatcherServlet with name 'SpringMVC': assuming HandlerAdapter completed request handling
2025-01-15 18:22:12 -799 [http-nio-8080-exec-1] DEBUG - Successfully completed request
2025-01-15 18:22:12 -7940 [http-nio-8080-exec-1] DEBUG - Returning cached instance of singleton bean 'sqlSessionFactory'
2025-01-15 18:22:12 -8120 [http-nio-8080-exec-] DEBUG - DispatcherServlet with name 'SpringMVC' processing GET request for [/jspmn576i/resources/images/fav.png]
2025-01-15 18:22:12 -8120 [http-nio-8080-exec-] DEBUG - Looking up handler method for path /resources/images/fav.png
2025-01-15 18:22:12 -8125 [http-nio-8080-exec-] DEBUG - Did not find handler method for [/resources/images/fav.png]
2025-01-15 18:22:12 -8125 [http-nio-8080-exec-] DEBUG - Matching patterns for request [/resources/images/fav.png] are [/resources/**]
2025-01-15 18:22:12 -8125 [http-nio-8080-exec-] DEBUG - URI Template variables for request [/resources/images/fav.png] are {}
2025-01-15 18:22:12 -8125 [http-nio-8080-exec-] DEBUG - Mapping [/resources/images/fav.png] to HandlerExecutionChain with handler [ResourceHttpRequestHandler [locati=[ServletContext resource [/resources/]], resolvers=[org.springframework.web.servlet.resource.PathResourceResolver@1d5b24]]] and 1 interceptor
2025-01-15 18:22:12 -8125 [http-nio-8080-exec-] DEBUG - Last-Modified value for [/jspmn576i/resources/images/fav.png] is: -1
2025-01-15 18:22:12 -8128 [http-nio-8080-exec-] DEBUG - ull ModelAndView returned to DispatcherServlet with name 'SpringMVC': assuming HandlerAdapter completed request handling
2025-01-15 18:22:12 -8129 [http-nio-8080-exec-] DEBUG - Successfully completed request
访问网站后台
浏览器打开
代码语言:txt复制后台路径地址:localhost:8080/项目名称/jsp/login.jsp
前台路径地址:localhost:8080/项目名称/front/index.jsp (无前台不需要输入)
管理员账号:abo
管理员密码:abo
可以直接复制我的这个网址:
代码语言:txt复制http://localhost:8080/jspmn576i/front/ 首页
http://localhost:8080/jspmn576i/jsp/login.jsp 后台管理系统
五、代码功能片段讲解
首先,@IgnoreAuth
注解表示该接口不需要进行权限验证或身份认证,允许匿名访问。接着,@RequestMapping(value = "/login")
定义了一个处理用户登录请求的方法。方法的参数包括username
(用户名)、password
(密码)、captcha
(验证码)以及HttpServletRequest request
(HTTP请求对象)。captcha
用于防止恶意登录攻击,而request
通常用来获取用户的IP等信息。方法体内,首先通过yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", username))
查询数据库,检查是否存在该用户名对应的用户。如果没有到用户或者密码与数据库中的密码不匹配,接口会返回一个错误提示“账号或密码不正确”。若用户名和密码验证通过,接下来调用tokenService.generateToken(user.getId(), username, "yonghu", "用户")
生成一个Token。这个Token包含了用户的ID、用户名、用户类型等信息,是后续请求中进行身份验证的凭证。最后,接口通过().put("token", token)
返回一个成功的响应,并将生成的Token包含在返回数据中,前端可以利用这个Token在之后的请求中进行身份验证。如果登录失败,则通过("账号或密码不正确")
返回错误信息。这个接口主要用于用户登录验证,并通过Token机制保障系统的安全性和用户身份的有效性。
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", username));
if(user==null || !user.getMima().equals(password)) {
return ("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(), username,"yonghu", "用户" );
return ().put("token", token);
}
注册实现通过@IgnoreAuth
注解标识该接口不需要身份认证,允许匿名访问。@RequestMapping("/register")
将该方法映射到注册请求的URL。当用户发送注册请求时,会通过@RequestBody YonghuEntity yonghu
接收请求体中的用户信息,封装成YonghuEntity
对象。接着,系统会检查数据库中是否已经存在相同用户名的用户,通过yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", yonghu.getYonghuming()))
查询数据库中的用户。如果到相同用户名的用户,接口返回错误信息"注册用户已存在"。如果用户名没有重复,生成一个新的用户ID(通过new Date().getTime()
获取当前时间戳)并设置到yonghu
对象中。然后,调用yonghuService.insert(yonghu)
将新用户的信息插入数据库,完成用户注册。最后,返回一个成功的响应()
,表示注册成功。
/**
* 注册
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody YonghuEntity yonghu){
//ValidatorUtils.validateEntity(yonghu);
YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", yonghu.getYonghuming()));
if(user!=null) {
return ("注册用户已存在");
}
Long uId = new Date().getTime();
yonghu.setId(uId);
yonghuService.insert(yonghu);
return ();
}
<script>
标签引入了jQuery
库,文件路径是通过${pageContext.}
动态获取的,这样可以确保在不同环境下正确加载文件。<!--[if lt IE 9]>
和<![endif]-->
语法,添加了对IE6-8版本浏览器的HTML5元素支持的条件注释,确保较老版本的Internet Explorer能够正常渲染页面。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>登陆</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<script type="text/javascript"
src="${pageContext.}/resources/assets2/js/js"></script>
<!-- <link rel="stylesheet" href="${pageContext.}/resources/assets2/css/"> -->
<link rel="stylesheet"
href="${pageContext.}/resources/assets2/css/loader-">
<link rel="stylesheet"
href="${pageContext.}/resources/assets2/css/">
<link rel="stylesheet"
href="${pageContext.}/resources/assets2/css/">
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src=".js"></script>
<![endif]-->
<!-- Fav and touch ic -->
<link rel="shortcut icon"
href="${pageContext.}/resources/assets2/ico/minus.png">
</head>
在部署项目的过程中按照我的步骤来配置,并不会出错。我已经帮大家踩坑了。
大家放心按照教程操作~~~有需求咱评论区见。
各位社区同学可以按照我的教程来进行操作,,遇到问题请留言哦~~~
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
留言与评论(共有 18 条评论) |
本站网友 海红 | 4分钟前 发表 |
'' | |
本站网友 胃肠外科 | 5分钟前 发表 |
27' | |
本站网友 brighten | 20分钟前 发表 |
1 | |
本站网友 长春市房地产信息网 | 2分钟前 发表 |
此时就能编译运行项目了tomcat 启动!!!!!!!!!!数据库配置与我的保持一致 | |
本站网友 断奶注意事项 | 0秒前 发表 |
[SQL] Finished with error 不慌 | |
本站网友 企鹅医生 | 8分钟前 发表 |
HBuilderX | |
本站网友 厄贝沙坦片 | 17分钟前 发表 |
1 | |
本站网友 犬瘟热怎么治 | 4分钟前 发表 |
1 | |
本站网友 男人结扎 | 3分钟前 发表 |
-1 2025-01-15 18 | |
本站网友 与其临渊羡鱼 | 3分钟前 发表 |
SQL_OTES=0 */; -- -- Table structure for table `chat` -- DROP TABLE IF EXISTS `chat`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `chat` ( `id` bigint(20) OT ULL AUTO_ICREMET COMMET '主键' | |
本站网友 取消 | 25分钟前 发表 |
`cheweiweizhi` varchar(200) DEFAULT ULL COMMET '车位位置' | |
本站网友 李小明 | 5分钟前 发表 |
'车位号' | |
本站网友 交行信用卡分期 | 9分钟前 发表 |
02 | |
本站网友 李冠仪 | 3分钟前 发表 |
6 | |
本站网友 月子吃什么 | 12分钟前 发表 |
'车牌号4' | |
本站网友 城市花园婚纱摄影 | 6分钟前 发表 |
我们可以看到数据库名称代码语言:txt复制-- MySQL dump 10.1 Distrib 5.7.1 | |
本站网友 一起向前走 | 27分钟前 发表 |
'是' |