基于javaweb的停车库管理系统(java+jsp+jquery+servlet+mysql)

news2024/11/17 6:48:17

基于javaweb的停车库管理系统(java+jsp+jquery+servlet+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

20220819205914

20220819205915

20220819205916

20220819205917

20220819205918

20220819205919

基于javaweb+mysql的停车库管理系统(java+JSP+jquery+servlet+Mysql)

项目介绍

一款由jsp+servlet+mysql实现的小区物业停车管理系统,系统基本实现了小区停车的常用功能:用户角色管理、车位管理、IC卡管理、固定车主停车管理、临时车停车管理等。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;  5.数据库:MySql 5.7版本; 6.是否Maven项目:是;

技术栈

  1. 后端:Servlet 2. 前端:JSP+CSS+JavaScript+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,前台地址:http://localhost:8080/Parking  管理员账号/密码:admin/admin

车辆管理控制层:

@Controller

public class CarController {

@Autowired

@Qualifier(“pmsService”)

private PmsService pmsService;

@RequestMapping(value= {“/carMg”})

public String carMg(@ModelAttribute(“car”) Car car) {

return “manager/carMg”;

@RequestMapping(value=“/manager/car-list”)

public void selectRepair(

HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{

request.setCharacterEncoding(“UTF-8”);

String key = request.getParameter(“key”);

String pageNoStr = request.getParameter(“pageNo”);

String rowMaxStr = request.getParameter(“rowMax”);

int pageNo = Integer.valueOf(pageNoStr);

int rowMax = Integer.valueOf(rowMaxStr);

Car car = new Car();

car.setUserId(key);

PageVO page = pmsService.listCar(car, pageNo, rowMax);

response.reset();

response.setContentType(“text/plain;charset=UTF-8”);

response.getWriter().print(JSON.toJSONString(page));

response.flushBuffer();

@RequestMapping(value=“/manager/addCar”)

public void addCar(@ModelAttribute(“car”) Car car){

pmsService.addCar(car);

System.out.println(“add car :”+ car.getCarNum());

car = null;

@RequestMapping(value=“/manager/updateCar”)

public void updateCar(@ModelAttribute(“car”) Car car){

pmsService.modifyCar(car);

System.out.println(“modify Car :”+ car.getCarNum());

@RequestMapping(value=“/manager/deleteCar”)

public void deleteCar(@RequestBody Car car, HttpServletResponse response){

String carNum = car.getCarNum();

pmsService.removeCarById(carNum);

System.out.println(“delete Car :”+ carNum);

@RequestMapping(value=“/manager/loadEditCar”)

@ResponseBody

public Object loadEditCar(@RequestParam(value=“carNum”,required=false) String carNum){

Car car = new Car();

car = pmsService.findCarById(carNum);

System.out.println(“load Car :”+ carNum);

return car;

用户管理控制器:

/**

  • 用户管理控制器

*/

@RestController

@RequestMapping(“user”)

public class UserController {

@Autowired

private UserService userService;

/*

  • 加载用户列表返回DataGridView

*/

@RequestMapping(“loadAllUser”)

public DataGridView loadAllmeenu(UserVo userVo) {

return this.userService.queryAllUser(userVo);

/*

  • 注册用户–查询用户名是否存在

*/

@RequestMapping(“queryLoginName”)

public ResultObj queryLoginName(UserVo userVo) {

Integer count = this.userService.queryLoginName(userVo.getLoginname());

if (count != 0) {

return ResultObj.USER_EXIST;

return null;

/*

  • 注册用户

*/

@RequestMapping(“signup”)

public ResultObj signup(UserVo userVo) {

try {

String code = WebUtils.getHttpSession().getAttribute(“code”).toString();

if (userVo.getCode().toLowerCase().equals(code)) {

this.userService.signUpUser(userVo);

return ResultObj.SIGNUP_SUCCESS;

} else {

return ResultObj.USER_SIGNUP_CODE_ERROR_MSG;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.SIGNUP_ERROR;

/*

  • 添加用户

*/

@RequestMapping(“addUser”)

public ResultObj addUser(UserVo userVo) {

try {

this.userService.addUser(userVo);

return ResultObj.ADD_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.ADD_ERROR;

/*

  • 修改用户

*/

@RequestMapping(“updateUser”)

public ResultObj updateUser(UserVo userVo) {

try {

this.userService.updateUser(userVo);

return ResultObj.UPDATE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.UPDATE_ERROR;

/*

  • 删除用户

*/

@RequestMapping(“deleteUser”)

public ResultObj deleteUser(UserVo userVo) {

System.out.println(userVo);

System.out.println(userVo.getUserid());

try {

this.userService.deleteUser(userVo.getUserid());

return ResultObj.DELETE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DELETE_ERROR;

/*

  • 批量删除用户

*/

@RequestMapping(“deleteBatchUser”)

public ResultObj deleteBatchUser(UserVo userVo) {

try {

this.userService.deleteBatchUser(userVo.getIds());

return ResultObj.DELETE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DELETE_ERROR;

/*

  • 重置用户密码

*/

@RequestMapping(“resetUserPwd”)

public ResultObj resetUserPwd(UserVo userVo) {

try {

this.userService.resetUserPwd(userVo.getUserid());

return ResultObj.RESET_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.RESET_ERROR;

/*

  • 加载用户管理分配的分配角色的数据

*/

@RequestMapping(“initUserRole”)

public DataGridView initUserRole(UserVo userVo) {

return this.userService.queryUserRole(userVo.getUserid());

/*

  • 保存用户和角色的关系

*/

@RequestMapping(“saveUserRole”)

public ResultObj saveUserRole(UserVo userVo) {

try {

this.userService.saveUserRole(userVo);

return ResultObj.DISPATCH_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DISPATCH_ERROR;

/*

  • 修改个人信息

*/

@RequestMapping(“updateUserInfo”)

public ResultObj updateUserInfo(UserVo userVo) {

try {

String headimg = userVo.getHeadimg();

if (headimg.endsWith(SysConstast.FILE_UPLOAD_TEMP)) {

String filePath = AppFileUtils.updateFileName(headimg, SysConstast.FILE_UPLOAD_TEMP);

userVo.setHeadimg(filePath);

// 把原来的删除

User user = this.userService.queryUserInfo(userVo.getUserid());

AppFileUtils.removeFileByPath(user.getHeadimg());

this.userService.updateUserInfo(userVo);

return ResultObj.UPDATE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.UPDATE_ERROR;

/*

  • 查询个人信息

*/

@RequestMapping(“queryUserInfo”)

public User queryUserInfo() {

User user = (User) WebUtils.getHttpSession().getAttribute(“user”);

user = this.userService.queryUserInfo(user.getUserid());

return user;

/*

  • 查询密码

*/

@RequestMapping(“queryPwd”)

public ResultObj queryPwd(UserVo userVo) {

User user = (User) WebUtils.getHttpSession().getAttribute(“user”);

user = this.userService.queryUserInfo(user.getUserid());

// 生成密文

String pwd = DigestUtils.md5DigestAsHex(userVo.getPwd().getBytes());

userVo.setPwd(pwd);

if (userVo.getPwd().equals(user.getPwd())) {

return ResultObj.PWD_SUCCESS;

} else {

return ResultObj.PWD_ERROR;

/*

  • 更改密码之查询密码

*/

@RequestMapping(“updatePwd”)

public ResultObj updatePwd(UserVo userVo) {

try {

User user = (User) WebUtils.getHttpSession().getAttribute(“user”);

// 生成密文

String pwd = DigestUtils.md5DigestAsHex(userVo.getPwd().getBytes());

userVo.setUserid(user.getUserid());

userVo.setPwd(pwd);

// 修改密码

this.userService.updateUser(userVo);

return ResultObj.UPDATE_SUCCESS;

} catch (Exception e) {

return ResultObj.UPDATE_ERROR;

车辆修理管理控制层:

@Controller

public class RepairController {

@Autowired

@Qualifier(“pmsService”)

private PmsService pmsService;

@RequestMapping(value= {“/repairMg”})

public String repairMg(@ModelAttribute(“repair”) Repair repair) {

return “manager/repairMg”;

@RequestMapping(value=“/manager/repair-list”)

public void selectRepair(

HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{

request.setCharacterEncoding(“UTF-8”);

String key = request.getParameter(“key”);

String pageNoStr = request.getParameter(“pageNo”);

String rowMaxStr = request.getParameter(“rowMax”);

String repairState1 = request.getParameter(“repairState”);

int pageNo = Integer.valueOf(pageNoStr);

int rowMax = Integer.valueOf(rowMaxStr);

int repairState = Integer.valueOf(repairState1);

Repair repair = new Repair();

repair.setUserId(key);

repair.setRepairState(repairState);

PageVO page = pmsService.listRepair(repair, pageNo, rowMax);

response.reset();

response.setContentType(“text/plain;charset=UTF-8”);

response.getWriter().print(JSON.toJSONString(page));

response.flushBuffer();

@RequestMapping(value=“/manager/updateRepair”)

public void updateRepair(@ModelAttribute(“repair”) Repair repair){

repair.setRepairState(repair.getTypeId());

pmsService.modifyRepair(repair);

System.out.println(“modify Repair :”+ repair.getRepairId());

@RequestMapping(value=“/manager/deleteRepair”)

public void deleteRepair(@RequestBody Repair repair, HttpServletResponse response){

int repairId = repair.getRepairId();

pmsService.removeRepair(repairId);

System.out.println(“delete Repair :”+ repairId);

@RequestMapping(value=“/manager/loadEditRepair”)

@ResponseBody

public Object loadEditRepair(@RequestParam(value=“repairId”,required=false) String repairId){

int repairId1 = Integer.valueOf(repairId);

Repair repair = new Repair();

repair = pmsService.findRepair(repairId1);

System.out.println(“load Repair :”+ repairId);

return repair;

@RequestMapping(value=“repair”)

public String repair(Model model) {

return “user/repair”;

@RequestMapping(value=“user/repair-list”)

public void selectAdvice(HttpServletRequest request, HttpServletResponse response, HttpSession session)

throws ServletException, IOException {

request.setCharacterEncoding(“UTF-8”);

User user = (User) session.getAttribute(“user”);

String pageNoStr = request.getParameter(“pageNo”);

String rowMaxStr = request.getParameter(“rowMax”);

String repairState = request.getParameter(“repairState”);

String beginDate = request.getParameter(“beginDate”);

String endDate = request.getParameter(“endDate”);

System.out.println(beginDate);

System.out.println(endDate);

int pageNo = Integer.valueOf(pageNoStr);

int rowMax = Integer.valueOf(rowMaxStr);

int reState = Integer.valueOf(repairState);

Repair repair =new Repair();

repair.setUserId(user.getUserId());

repair.setRepairState(reState);

PageVO page = pmsService.listRepair(repair, pageNo, rowMax);

response.reset();

response.setContentType(“text/plain;charset=UTF-8”);

response.getWriter().print(JSON.toJSONString(page));

response.flushBuffer();

@RequestMapping(value=“/user/addRepair”)

public void addRepair(HttpServletRequest request, HttpServletResponse response, HttpSession session,

@ModelAttribute(“repair”) Repair repair) throws ServletException, IOException{

request.setCharacterEncoding(“UTF-8”);

String buildingNum = request.getParameter(“buildingNum”);

String roomNum = request.getParameter(“roomNum”);

Date date = (Date) new Timestamp(System.currentTimeMillis());

User user = (User) session.getAttribute(“user”);

String userId = user.getUserId();

int bdNum = Integer.valueOf(buildingNum);

int rmNum = Integer.valueOf(roomNum);

repair.setUserId(userId);

repair.setRepairDate(date);

repair.setBuildingNum(bdNum);

repair.setRoomNum(rmNum);

repair.setRepairState(0);

pmsService.addRepair(repair);

@RequestMapping(value=“/user/loadRepair”)

@ResponseBody

public Object loadAdvice(@RequestParam(value=“repairId”,required=false) String repairId){

int id = Integer.valueOf(repairId);

Repair repair = new Repair();

repair = pmsService.selectRepairByIdUser(id);

return repair;


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

补环境:vm2 transformer.js 源码分析

在补环境框架的文件夹里执行 vm2 文件能成功得到结果,但是将合并了环境和原 js 文件后的代码内容单独提取出来通过 vm2 调用却报错提示 SyntaxError: Use of internal vm2 state variable: 通过 transformer.js 源码,分析 VM2_INTERNAL_STATE…

【韩顺平老师讲MySQL】函数和多表查询

文章目录P33.数学函数P34.日期函数P37.加密函数P38.流程控制函数P39.查询增强P40.分页查询P41.分组查询P42.多子句查询P43.多表查询笛卡尔积(重难点)P44.多表查询P45.自连接P46.多行子查询P33.数学函数 # 绝对值 SELECT ABS(-12) FROM DUAL;# 十进制转为二进制 SELECT BIN(10) …

【offer拿到手软系列】面试小贴士

​ 学习好一门语言贵在坚持——初识JavaScript🏹💁‍♂️! 首先: 博主是👦一个帅气的boy,你可以叫我山鱼君 🖱 ⌨个人主页:山鱼菌的个人主页 💖💖如果对你有帮…

vmlogin多登防关联浏览器中配置Geolocation定位插件的使用教程

Geolocation 接口是一个用来获取设备地理位置的可编程的对象,它可以让Web内容访问到设备的地理位置,这将允许Web应用基于用户的地理位置提供定制的信息。说实话:其实Geolocation 就是用来获取到当前设备的经纬度(位置)…

Zookeeper ---- Zookeeper集群操作

Zookeeper ---- Zookeeper集群操作1. 集群操作1. 集群规划2. 选举机制(面试重点)3. ZK集群启动停止脚本2. 客户端命令操作1. 命令行语法2. znode节点数据信息3. 节点类型(持久/短暂/有序号/无序号)4. 监听器原理5. 节点删除与查看…

2022年NPDP新版教材知识集锦--【第三章节】(1)

【新产品开发概论】 产品创新是“风险与回报”的过程 随着新产品的累积成本增加,产品的不确定性降低。成功率在很大程度上取决于企业采用的新产品开发实践和流程的质量。 【决策基本框架】 ⚫识别问题或机会 ⚫收集信息(信息来源:内部、外部、内外部…

iOS开发之Undefined symbol:_OBJC_CLASS_$_****

更新了Xcode14.0.1以后,项目突然曝出了此问题Undefined symbol:_OBJC_CLASS_$_****,因此记录一下,解决此问题的步骤: 第一步:首先在Build Phases中找到 Compile Sources,查看是否有对应的***.m文件&#x…

查找算法【二叉查找树】 - 二叉查找树的插入

查找算法【二叉查找树】 - 二叉查找树的插入 因为二叉查找树的中序遍历存在有序性,所以首先要查找待插入关键字的插入位置,当查找不成功时,再将待插入关键字作为新的叶子节点成为最后一个查找节点的左孩子或右孩子。 【算法步骤】 ① 若二…

vim编辑器使用和vim一键配置

1.vim的三种模式 开始之前,先简单说,vim并不是只有这三种模式。总的来说vim大概有12种模式,不同的版本可能也有一些具体的区别。今天我们先介绍三种常用的模式。 先用一张图来大概介绍三种模式之间的转换 命令模式(Normal mod…

强化学习算法实践(一)——策略梯度算法

文章目录Reference1. REINFORCE1.1 Basic1.2 Code2. Improvement Tips2.1 Assign Suitable Credit2.2 Add a Baseline2.3 Advantage Function3. Actor-Critic(A2C)3.1 Basic3.2 Code策略梯度是一种基于策略的算法,相比于DQN一类的基于价值的算法,它会直接…

C语言分支与循环--循环篇(图片,动画演示),彻底搞定C语言循环

前言 👻作者:龟龟不断向前 👻简介:宁愿做一只不停跑的慢乌龟,也不想当一只三分钟热度的兔子。 👻专栏:C初阶知识点 👻工具分享: 刷题: 牛客网 leetcode笔记软…

jupyter怎么换环境?

1.为什么要换环境而不用使用默认环境? 在这之前我只知道,要pip安装很多环境包,来在程序中调用使用,但是在不同的项目中,环境总是相互矛盾,总会出现诸多版本问题。所以需要每个项目对应一个环境。conda默认…

2022第二届中国高校大数据竞赛A题(实时更新)

题目 制造业是国民经济的主体,近十年来,嫦娥探月、祝融探火、北斗组网,一大批重大标志性创新成果引领中国制造业不断攀上新高度。作为制造业的核心,机械设备在工业生产的各个环节都扮演着不可或缺的重要角色。但是,在…

【FTP工具】FileZila安装以及使用详解

一、FTP概念 安装FTP主要是为了传输文件,FTP是持久的,只有一次认证过程,传输多个文件都是使用同一个连接。因为FTP就是为远程文件交互而设计的,有些时候只是为了单纯做一个文件传输,往往搭建FTP服务更省时和节约成本。…

【每日刷题】之【Z字形变换】

✨✨hello,愿意点进来的小伙伴们,你们好呐! 🐻🐻系列专栏:【力扣刷题篇】 🐲🐲本篇内容: 每日刷题 🐯🐯作者简介:一名现大二的三非编程小白&#…

BI设计上篇 - 像设计师一样思考

形式服从功能。这句产品设计的箴言也适用于数据可视化。就数据可视化的形式和功能而言,我们首先考虑的是我们希望受众能用数据做什么(功能),然后才是用可视化(形式)来简化这个过程。在本文中,我…

总结flutter玩转之-安卓view 承载flutter 的页面

1.假设你已经熟悉flutter 开发熟悉dart 语言 android 原生开发技能 一、在安卓原生项目添加代码 1.创建示例布局 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"…

【Linux修炼】6.gcc/g++及Makefile【工具篇】

每一个不曾起舞的日子&#xff0c;都是对生命的辜负。 Linux-gcc/g及Makefile本节目标程序的翻译过程1.程序的翻译过程2. 理解选项的含义3. 动态链接和静态链接Linux项目自动化构建工具-make/Makefile1. 背景2. “见见猪跑”3. makefile原理及语法3.1 Makefile原理3.2 Makefile…

pytorch初学笔记(二):TensorBoard之add_scale()的使用

目录 一、SummaryWriter类的介绍 1. 定义 2. SummaryWriter初始化 2.1 初始化 2.2 帮助文档给出的使用范例 2.3 常用方法 二、add_scale()方法介绍 1. 常用参数介绍 2. 绘制图形 2.1 安装tensorboard 2.2 对应代码 2.3 打开tensorboard窗口 2.3 注意事项 三、a…

kubernetes学习笔记

参考 Cloudman 老师的《每天5分钟玩转Kubernetes》&#xff0c;记录如何使用 Kubernetes &#xff0c;由于版本变化&#xff0c;一些命令也有相应的变化&#xff0c;本文对应 Kubernetes 1.25.3 5. 运行应用 010.123 用 Deployment 运行应用 原文使用kubectl run命令&#x…