Java项目:JSP停车场管理系统

作者主页:夜未央5788

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

一款由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

运行截图

 

 

 

 

 

 

 

 

 

相关代码 

CardHandle

			package ServletHandle;

			import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

			import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.text.SimpleDateFormat;
import java.util.*;

			public class CardHandle extends HttpServlet {

			HttpServletRequest request;
			HttpServletResponse response;
			DAL.Card card=new DAL.Card();
	
			//通过表单get方式传值 将进入doGet函数(method="get")
			public void doGet(HttpServletRequest request, HttpServletResponse response)
					throws ServletException, IOException {
					this.response=response;
					this.request=request;
					int handleType=Integer.parseInt(request.getParameter("type").toString());
					switch (handleType) {
					case 1://类型1代表删除表中的数据
						deleteEntity();
						break;
					case 4://类型4代表获取表中信息
						getEntity();
						break;
					case 5://类型5代表根据查询条件获取表中信息
						getEntityByWhere();
						break;
					default:
						break;
					}
			}
	
			//通过表单post方式传值 将进入doPost函数(method="post")
			public void doPost(HttpServletRequest request, HttpServletResponse response)
					throws ServletException, IOException {
					this.request=request;
					this.response=response;
					int handleType=Integer.parseInt(request.getParameter("type").toString());//将前台页面传过来的type类型转化成整型
					switch (handleType) {
					case 2://类型2代表更新表中的数据
						updateEntity();
						break;
					case 3://类型3代表向表中添加数据
						insertEntity();
						break;
					default:
						break;
					}
			}

			//删除数据操作
			private void deleteEntity() throws IOException
			{
				String card_id=request.getParameter("card_id");//获取前台通过get方式传过来的JId
				card.deleteEntity(card_id);//执行删除操作
				response.sendRedirect("/Parking/CardHandle?type=4");//删除成功后跳转至管理页面
			}

			//更新数据操作
			private void updateEntity() throws UnsupportedEncodingException
			{
				String card_id=new String(request.getParameter("card_id").getBytes("ISO8859_1"),"UTF-8");
				String seat_id=new String(request.getParameter("seat_id").getBytes("ISO8859_1"),"UTF-8");
				String user_name=new String(request.getParameter("user_name").getBytes("ISO8859_1"),"UTF-8");
				String user_gender=new String(request.getParameter("user_gender").getBytes("ISO8859_1"),"UTF-8");
				String user_addr=new String(request.getParameter("user_addr").getBytes("ISO8859_1"),"UTF-8");
				String car_num=new String(request.getParameter("car_num").getBytes("ISO8859_1"),"UTF-8");

				if(card.updateEntity(card_id,seat_id,user_name,user_gender,user_addr,car_num)==1)
				{
					try {
						response.sendRedirect("/Parking/CardHandle?type=4");//成功更新数据后跳转至CardMsg.jsp页面
					} catch (IOException e) {
						e.printStackTrace();//异常处理
					}
				}
			}

			//插入数据操作
			private void insertEntity() throws UnsupportedEncodingException, IOException
			{
				response.setCharacterEncoding("UTF-8");
				response.setContentType("text/html;charset=UTF-8");
				PrintWriter out=response.getWriter();
				
			    SimpleDateFormat dateFormat =new    SimpleDateFormat("yyyyMMddHHmmss"); 
			    String card_id=dateFormat.format(new Date());
				String seat_id=new String(request.getParameter("seat_id").getBytes("ISO8859_1"),"UTF-8");
				String user_name=new String(request.getParameter("user_name").getBytes("ISO8859_1"),"UTF-8");
				String user_gender=new String(request.getParameter("user_gender").getBytes("ISO8859_1"),"UTF-8");
				String user_addr=new String(request.getParameter("user_addr").getBytes("ISO8859_1"),"UTF-8");
				String car_num=new String(request.getParameter("car_num").getBytes("ISO8859_1"),"UTF-8");

				if(!card.checkExist(card_id))
				{
					if(card.insertEntity(card_id,seat_id,user_name,user_gender,user_addr,car_num)==1)
					{
						out.write("<script>alert('数据添加成功!'); location.href = '/Parking/CardHandle?type=4';</script>");
					}
					else {
						out.write("<script>alert('数据添失败!'); location.href = '/Parking/CardHandle?type=4';</script>");
					}
				}
				else {
					out.write("<script>alert('主键重复,数据添加失败!'); location.href = '/Parking/CardHandle?type=4';</script>");
				}
			}

			//获取对象所有数据列表
			private void getEntity() throws ServletException, IOException
			{
				request.setCharacterEncoding("UTF-8");
				int page=request.getParameter("page")==null?1:Integer.parseInt(request.getParameter("page").toString());//获取跳转的页面号
				int totalPage=Integer.parseInt(card.getPageCount().toString()) ;//获取分页总数
				List<Object> list=card.getEntity(page);//获取数据列表
				request.setAttribute("list",list);//将数据存放到request对象中,用于转发给前台页面使用
				request.setAttribute("totalPage",totalPage );//将totalPage存放到request对象中,用于转发给前台页面使用
				request.getRequestDispatcher("/Admin/CardMsg.jsp").forward(request, response);//请求转发
			}
			
			//根据查询条件获取对象所有数据列表
			private void getEntityByWhere() throws ServletException, IOException
			{
				request.setCharacterEncoding("UTF-8");
				String condition=request.getParameter("condition");//获取查询字段的名称
				//String value=new String(request.getParameter("value").getBytes("ISO8859_1"),"UTF-8");//获取查询的值
				String value = request.getParameter("value");
				String where=condition+"=\""+value+"\"";//拼接查询字符串
				int page=request.getParameter("page")==null?1:Integer.parseInt(request.getParameter("page"));//获取要跳转的页面号
				int wherePage=Integer.parseInt(card.getPageCountByWhere(where).toString()) ;//获取查询后的分页总数
				List<Object> list=card.getEntityByWhere(where, page);//获取查询后的数据列表
				request.setAttribute("list",list);//将数据存放到request对象中,用于转发给前台页面使用
				request.setAttribute("wherePage",wherePage );
				request.setAttribute("condition",condition);
				request.setAttribute("value",value);
				request.getRequestDispatcher("/Admin/CardMsg.jsp").forward(request, response);
			}
		}

FixedHandle

			package ServletHandle;

			import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

			import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.text.SimpleDateFormat;
import java.util.*;

			public class FixedHandle extends HttpServlet {

			HttpServletRequest request;
			HttpServletResponse response;
			DAL.Fixed fixed=new DAL.Fixed();
	
			//通过表单get方式传值 将进入doGet函数(method="get")
			public void doGet(HttpServletRequest request, HttpServletResponse response)
					throws ServletException, IOException {
					this.response=response;
					this.request=request;
					int handleType=Integer.parseInt(request.getParameter("type").toString());
					switch (handleType) {
					case 1://类型1代表删除表中的数据
						deleteEntity();
						break;
					case 4://类型4代表获取表中信息
						getEntity();
						break;
					case 5://类型5代表根据查询条件获取表中信息
						getEntityByWhere();
						break;
					case 6://类型6代表管理员获取未出场车辆
						getNoOut();
						break;
					case 10://类型10代表更新车辆出场
						setOut();
						break;
					default:
						break;
					}
			}
	
			//通过表单post方式传值 将进入doPost函数(method="post")
			public void doPost(HttpServletRequest request, HttpServletResponse response)
					throws ServletException, IOException {
					this.request=request;
					this.response=response;
					int handleType=Integer.parseInt(request.getParameter("type").toString());//将前台页面传过来的type类型转化成整型
					switch (handleType) {
					case 2://类型2代表更新表中的数据
						updateEntity();
						break;
					case 3://类型3代表向表中添加数据
						insertEntity();
						break;
					default:
						break;
					}
			}

			//删除数据操作
			private void deleteEntity() throws IOException
			{
				String fixed_id=request.getParameter("fixed_id");//获取前台通过get方式传过来的JId
				fixed.deleteEntity(fixed_id);//执行删除操作
				response.sendRedirect("/Parking/FixedHandle?type=4");//删除成功后跳转至管理页面
			}
			
			//车辆出场更新操作
			private void setOut() throws IOException
			{
				String fixed_id=new String(request.getParameter("fixed_id").getBytes("ISO8859_1"),"UTF-8");
				SimpleDateFormat dateFormat =new    SimpleDateFormat("yyyy-MM-dd"); 
			    String out_date=dateFormat.format(new Date());
			    SimpleDateFormat timeFormat =new    SimpleDateFormat("HH:mm:ss"); 
			    String out_time=timeFormat.format(new Date());
			    if(fixed.setOut(fixed_id, out_date, out_time)==1)
			    {
			    	response.sendRedirect("/Parking/FixedHandle?type=6");
			    }
			}

			//更新数据操作
			private void updateEntity() throws UnsupportedEncodingException
			{
				String fixed_id=new String(request.getParameter("fixed_id").getBytes("ISO8859_1"),"UTF-8");
				String card_id=new String(request.getParameter("card_id").getBytes("ISO8859_1"),"UTF-8");
				String entry_date=new String(request.getParameter("entry_date").getBytes("ISO8859_1"),"UTF-8");
				String entry_time=new String(request.getParameter("entry_time").getBytes("ISO8859_1"),"UTF-8");
				String out_date=new String(request.getParameter("out_date").getBytes("ISO8859_1"),"UTF-8");
				String out_time=new String(request.getParameter("out_time").getBytes("ISO8859_1"),"UTF-8");

				if(fixed.updateEntity(fixed_id,card_id,entry_date,entry_time,out_date,out_time)==1)
				{
					try {
						response.sendRedirect("/Parking/FixedHandle?type=4");//成功更新数据后跳转至FixedMsg.jsp页面
					} catch (IOException e) {
						e.printStackTrace();//异常处理
					}
				}
			}

			//插入数据操作
			private void insertEntity() throws UnsupportedEncodingException, IOException
			{
				response.setCharacterEncoding("UTF-8");
				response.setContentType("text/html;charset=UTF-8");
				PrintWriter out=response.getWriter();
				
			    SimpleDateFormat dateFormat =new    SimpleDateFormat("yyyyMMddHHmmss"); 
			    String fixed_id=dateFormat.format(new Date());
				String card_id=new String(request.getParameter("card_id").getBytes("ISO8859_1"),"UTF-8");
				SimpleDateFormat dFormat =new    SimpleDateFormat("yyyy-MM-dd"); 
			    String entry_date=dFormat.format(new Date());
			    SimpleDateFormat tFormat =new    SimpleDateFormat("HH:mm:ss"); 
			    String entry_time=tFormat.format(new Date());
				String out_date="1111-11-11";
				String out_time="11:11:11";

				if(!fixed.checkExist(fixed_id))
				{
					if(fixed.insertEntity(fixed_id,card_id,entry_date,entry_time,out_date,out_time)==1)
					{
						out.write("<script>alert('数据添加成功!'); location.href = '/Parking/FixedHandle?type=6';</script>");
					}
					else {
						out.write("<script>alert('数据添失败!'); location.href = '/Parking/FixedHandle?type=6';</script>");
					}
				}
				else {
					out.write("<script>alert('主键重复,数据添加失败!'); location.href = '/Parking/FixedHandle?type=4';</script>");
				}
			}

			//获取对象所有数据列表
			private void getEntity() throws ServletException, IOException
			{
				request.setCharacterEncoding("UTF-8");
				int page=request.getParameter("page")==null?1:Integer.parseInt(request.getParameter("page").toString());//获取跳转的页面号
				int totalPage=Integer.parseInt(fixed.getPageCount().toString()) ;//获取分页总数
				List<Object> list=fixed.getEntity(page);//获取数据列表
				request.setAttribute("list",list);//将数据存放到request对象中,用于转发给前台页面使用
				request.setAttribute("totalPage",totalPage );//将totalPage存放到request对象中,用于转发给前台页面使用
				request.getRequestDispatcher("/Admin/FixedMsg.jsp").forward(request, response);//请求转发
			}
			
			//获取未出场的车辆
			private void getNoOut() throws ServletException, IOException
			{
				request.setCharacterEncoding("UTF-8");
				int page=request.getParameter("page")==null?1:Integer.parseInt(request.getParameter("page").toString());//获取跳转的页面号
				int totalPage=Integer.parseInt(fixed.getPageCount().toString()) ;//获取分页总数
				List<Object> list=fixed.getNoOut(page);//获取数据列表
				request.setAttribute("list",list);//将数据存放到request对象中,用于转发给前台页面使用
				request.setAttribute("totalPage",totalPage );//将totalPage存放到request对象中,用于转发给前台页面使用
				request.getRequestDispatcher("/Admin/FixedOut.jsp").forward(request, response);//请求转发
			}
			
			//根据查询条件获取对象所有数据列表
			private void getEntityByWhere() throws ServletException, IOException
			{
				request.setCharacterEncoding("UTF-8");
				String condition=request.getParameter("condition");//获取查询字段的名称
				//String value=new String(request.getParameter("value").getBytes("ISO8859_1"),"UTF-8");//获取查询的值
				String value = request.getParameter("value");
				String where=condition+"=\""+value+"\"";//拼接查询字符串
				int page=request.getParameter("page")==null?1:Integer.parseInt(request.getParameter("page"));//获取要跳转的页面号
				int wherePage=Integer.parseInt(fixed.getPageCountByWhere(where).toString()) ;//获取查询后的分页总数
				List<Object> list=fixed.getEntityByWhere(where, page);//获取查询后的数据列表
				request.setAttribute("list",list);//将数据存放到request对象中,用于转发给前台页面使用
				request.setAttribute("wherePage",wherePage );
				request.setAttribute("condition",condition);
				request.setAttribute("value",value);
				request.getRequestDispatcher("/Admin/FixedMsg.jsp").forward(request, response);
			}
		}

如果也想学习本系统,下面领取。关注并回复:122jsp

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜未央5788

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值