• Java项目:JSP在线地下停车场车库管理系统


    作者主页:夜未央5788

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

    文末获取源码

    项目介绍

    本项目包含管理员与普通用户两种角色;

    管理员角色包含以下功能:

    管理员登录,添加角色信息,管理角色信息,添加用户信息,管理用户信息,车位信息管理,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+Javascript+css+jQuery

    使用说明

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

    管理员账号/密码:admin/admin

    运行截图

     

     

     

     

     

     

     

     

     

     

    相关代码 

    CardHandle

    1. package ServletHandle;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import java.io.UnsupportedEncodingException;
    5. import javax.servlet.ServletException;
    6. import javax.servlet.http.HttpServlet;
    7. import javax.servlet.http.HttpServletRequest;
    8. import javax.servlet.http.HttpServletResponse;
    9. import java.text.SimpleDateFormat;
    10. import java.util.*;
    11. public class CardHandle extends HttpServlet {
    12. HttpServletRequest request;
    13. HttpServletResponse response;
    14. DAL.Card card=new DAL.Card();
    15. //通过表单get方式传值 将进入doGet函数(method="get")
    16. public void doGet(HttpServletRequest request, HttpServletResponse response)
    17. throws ServletException, IOException {
    18. this.response=response;
    19. this.request=request;
    20. int handleType=Integer.parseInt(request.getParameter("type").toString());
    21. switch (handleType) {
    22. case 1://类型1代表删除表中的数据
    23. deleteEntity();
    24. break;
    25. case 4://类型4代表获取表中信息
    26. getEntity();
    27. break;
    28. case 5://类型5代表根据查询条件获取表中信息
    29. getEntityByWhere();
    30. break;
    31. default:
    32. break;
    33. }
    34. }
    35. //通过表单post方式传值 将进入doPost函数(method="post")
    36. public void doPost(HttpServletRequest request, HttpServletResponse response)
    37. throws ServletException, IOException {
    38. this.request=request;
    39. this.response=response;
    40. int handleType=Integer.parseInt(request.getParameter("type").toString());//将前台页面传过来的type类型转化成整型
    41. switch (handleType) {
    42. case 2://类型2代表更新表中的数据
    43. updateEntity();
    44. break;
    45. case 3://类型3代表向表中添加数据
    46. insertEntity();
    47. break;
    48. default:
    49. break;
    50. }
    51. }
    52. //删除数据操作
    53. private void deleteEntity() throws IOException
    54. {
    55. String card_id=request.getParameter("card_id");//获取前台通过get方式传过来的JId
    56. card.deleteEntity(card_id);//执行删除操作
    57. response.sendRedirect("/Parking/CardHandle?type=4");//删除成功后跳转至管理页面
    58. }
    59. //更新数据操作
    60. private void updateEntity() throws UnsupportedEncodingException
    61. {
    62. String card_id=new String(request.getParameter("card_id").getBytes("ISO8859_1"),"UTF-8");
    63. String seat_id=new String(request.getParameter("seat_id").getBytes("ISO8859_1"),"UTF-8");
    64. String user_name=new String(request.getParameter("user_name").getBytes("ISO8859_1"),"UTF-8");
    65. String user_gender=new String(request.getParameter("user_gender").getBytes("ISO8859_1"),"UTF-8");
    66. String user_addr=new String(request.getParameter("user_addr").getBytes("ISO8859_1"),"UTF-8");
    67. String car_num=new String(request.getParameter("car_num").getBytes("ISO8859_1"),"UTF-8");
    68. if(card.updateEntity(card_id,seat_id,user_name,user_gender,user_addr,car_num)==1)
    69. {
    70. try {
    71. response.sendRedirect("/Parking/CardHandle?type=4");//成功更新数据后跳转至CardMsg.jsp页面
    72. } catch (IOException e) {
    73. e.printStackTrace();//异常处理
    74. }
    75. }
    76. }
    77. //插入数据操作
    78. private void insertEntity() throws UnsupportedEncodingException, IOException
    79. {
    80. response.setCharacterEncoding("UTF-8");
    81. response.setContentType("text/html;charset=UTF-8");
    82. PrintWriter out=response.getWriter();
    83. SimpleDateFormat dateFormat =new SimpleDateFormat("yyyyMMddHHmmss");
    84. String card_id=dateFormat.format(new Date());
    85. String seat_id=new String(request.getParameter("seat_id").getBytes("ISO8859_1"),"UTF-8");
    86. String user_name=new String(request.getParameter("user_name").getBytes("ISO8859_1"),"UTF-8");
    87. String user_gender=new String(request.getParameter("user_gender").getBytes("ISO8859_1"),"UTF-8");
    88. String user_addr=new String(request.getParameter("user_addr").getBytes("ISO8859_1"),"UTF-8");
    89. String car_num=new String(request.getParameter("car_num").getBytes("ISO8859_1"),"UTF-8");
    90. if(!card.checkExist(card_id))
    91. {
    92. if(card.insertEntity(card_id,seat_id,user_name,user_gender,user_addr,car_num)==1)
    93. {
    94. out.write("");
    95. }
    96. else {
    97. out.write("");
    98. }
    99. }
    100. else {
    101. out.write("");
    102. }
    103. }
    104. //获取对象所有数据列表
    105. private void getEntity() throws ServletException, IOException
    106. {
    107. request.setCharacterEncoding("UTF-8");
    108. int page=request.getParameter("page")==null?1:Integer.parseInt(request.getParameter("page").toString());//获取跳转的页面号
    109. int totalPage=Integer.parseInt(card.getPageCount().toString()) ;//获取分页总数
    110. List list=card.getEntity(page);//获取数据列表
    111. request.setAttribute("list",list);//将数据存放到request对象中,用于转发给前台页面使用
    112. request.setAttribute("totalPage",totalPage );//将totalPage存放到request对象中,用于转发给前台页面使用
    113. request.getRequestDispatcher("/Admin/CardMsg.jsp").forward(request, response);//请求转发
    114. }
    115. //根据查询条件获取对象所有数据列表
    116. private void getEntityByWhere() throws ServletException, IOException
    117. {
    118. request.setCharacterEncoding("UTF-8");
    119. String condition=request.getParameter("condition");//获取查询字段的名称
    120. //String value=new String(request.getParameter("value").getBytes("ISO8859_1"),"UTF-8");//获取查询的值
    121. String value = request.getParameter("value");
    122. String where=condition+"=\""+value+"\"";//拼接查询字符串
    123. int page=request.getParameter("page")==null?1:Integer.parseInt(request.getParameter("page"));//获取要跳转的页面号
    124. int wherePage=Integer.parseInt(card.getPageCountByWhere(where).toString()) ;//获取查询后的分页总数
    125. List list=card.getEntityByWhere(where, page);//获取查询后的数据列表
    126. request.setAttribute("list",list);//将数据存放到request对象中,用于转发给前台页面使用
    127. request.setAttribute("wherePage",wherePage );
    128. request.setAttribute("condition",condition);
    129. request.setAttribute("value",value);
    130. request.getRequestDispatcher("/Admin/CardMsg.jsp").forward(request, response);
    131. }
    132. }
    133. FixedHandle

      1. package ServletHandle;
      2. import java.io.IOException;
      3. import java.io.PrintWriter;
      4. import java.io.UnsupportedEncodingException;
      5. import javax.servlet.ServletException;
      6. import javax.servlet.http.HttpServlet;
      7. import javax.servlet.http.HttpServletRequest;
      8. import javax.servlet.http.HttpServletResponse;
      9. import java.text.SimpleDateFormat;
      10. import java.util.*;
      11. public class FixedHandle extends HttpServlet {
      12. HttpServletRequest request;
      13. HttpServletResponse response;
      14. DAL.Fixed fixed=new DAL.Fixed();
      15. List parkList=new ArrayList();
      16. //通过表单get方式传值 将进入doGet函数(method="get")
      17. public void doGet(HttpServletRequest request, HttpServletResponse response)
      18. throws ServletException, IOException {
      19. this.response=response;
      20. this.request=request;
      21. int handleType=Integer.parseInt(request.getParameter("type").toString());
      22. switch (handleType) {
      23. case 1://类型1代表删除表中的数据
      24. deleteEntity();
      25. break;
      26. case 4://类型4代表获取表中信息
      27. getEntity();
      28. break;
      29. case 5://类型5代表根据查询条件获取表中信息
      30. getEntityByWhere();
      31. break;
      32. case 6://类型6代表管理员获取未出场车辆
      33. getNoOut();
      34. break;
      35. case 10://类型10代表更新车辆出场
      36. setOut();
      37. break;
      38. default:
      39. break;
      40. }
      41. }
      42. //通过表单post方式传值 将进入doPost函数(method="post")
      43. public void doPost(HttpServletRequest request, HttpServletResponse response)
      44. throws ServletException, IOException {
      45. this.request=request;
      46. this.response=response;
      47. int handleType=Integer.parseInt(request.getParameter("type").toString());//将前台页面传过来的type类型转化成整型
      48. switch (handleType) {
      49. case 2://类型2代表更新表中的数据
      50. updateEntity();
      51. break;
      52. case 3://类型3代表向表中添加数据
      53. insertEntity();
      54. break;
      55. default:
      56. break;
      57. }
      58. }
      59. //删除数据操作
      60. private void deleteEntity() throws IOException
      61. {
      62. String fixed_id=request.getParameter("fixed_id");//获取前台通过get方式传过来的JId
      63. fixed.deleteEntity(fixed_id);//执行删除操作
      64. response.sendRedirect("/Parking/FixedHandle?type=4");//删除成功后跳转至管理页面
      65. }
      66. //车辆出场更新操作
      67. private void setOut() throws IOException
      68. {
      69. String card_id=new String(request.getParameter("cardid").getBytes("ISO8859_1"),"UTF-8");
      70. String fixed_id=new String(request.getParameter("fixed_id").getBytes("ISO8859_1"),"UTF-8");
      71. SimpleDateFormat dateFormat =new SimpleDateFormat("yyyy-MM-dd");
      72. String out_date=dateFormat.format(new Date());
      73. SimpleDateFormat timeFormat =new SimpleDateFormat("HH:mm:ss");
      74. String out_time=timeFormat.format(new Date());
      75. if(fixed.setOut(fixed_id, out_date, out_time)==1)
      76. {
      77. if(parkList.contains(card_id))
      78. parkList.remove(card_id);
      79. response.sendRedirect("/Parking/FixedHandle?type=6");
      80. }
      81. }
      82. //更新数据操作
      83. private void updateEntity() throws UnsupportedEncodingException
      84. {
      85. String fixed_id=new String(request.getParameter("fixed_id").getBytes("ISO8859_1"),"UTF-8");
      86. String card_id=new String(request.getParameter("card_id").getBytes("ISO8859_1"),"UTF-8");
      87. String entry_date=new String(request.getParameter("entry_date").getBytes("ISO8859_1"),"UTF-8");
      88. String entry_time=new String(request.getParameter("entry_time").getBytes("ISO8859_1"),"UTF-8");
      89. String out_date=new String(request.getParameter("out_date").getBytes("ISO8859_1"),"UTF-8");
      90. String out_time=new String(request.getParameter("out_time").getBytes("ISO8859_1"),"UTF-8");
      91. if(fixed.updateEntity(fixed_id,card_id,entry_date,entry_time,out_date,out_time)==1)
      92. {
      93. try {
      94. response.sendRedirect("/Parking/FixedHandle?type=4");//成功更新数据后跳转至FixedMsg.jsp页面
      95. } catch (IOException e) {
      96. e.printStackTrace();//异常处理
      97. }
      98. }
      99. }
      100. //插入数据操作
      101. private void insertEntity() throws UnsupportedEncodingException, IOException
      102. {
      103. response.setCharacterEncoding("UTF-8");
      104. response.setContentType("text/html;charset=UTF-8");
      105. PrintWriter out=response.getWriter();
      106. SimpleDateFormat dateFormat =new SimpleDateFormat("yyyyMMddHHmmss");
      107. String fixed_id=dateFormat.format(new Date());
      108. String card_id=new String(request.getParameter("card_id").getBytes("ISO8859_1"),"UTF-8");
      109. SimpleDateFormat dFormat =new SimpleDateFormat("yyyy-MM-dd");
      110. String entry_date=dFormat.format(new Date());
      111. SimpleDateFormat tFormat =new SimpleDateFormat("HH:mm:ss");
      112. String entry_time=tFormat.format(new Date());
      113. String out_date="1111-11-11";
      114. String out_time="11:11:11";
      115. //System.out.println(card_id);
      116. if(parkList.contains(card_id)) {
      117. out.write("");
      118. return;
      119. }
      120. if((!fixed.checkExist(fixed_id))&&(!card_id.equals(-1)))
      121. {
      122. if(fixed.insertEntity(fixed_id,card_id,entry_date,entry_time,out_date,out_time)==1)
      123. {
      124. parkList.add(card_id);
      125. out.write("");
      126. }
      127. else {
      128. out.write("");
      129. }
      130. }
      131. else {
      132. out.write("");
      133. }
      134. }
      135. //获取对象所有数据列表
      136. private void getEntity() throws ServletException, IOException
      137. {
      138. request.setCharacterEncoding("UTF-8");
      139. int page=request.getParameter("page")==null?1:Integer.parseInt(request.getParameter("page").toString());//获取跳转的页面号
      140. int totalPage=Integer.parseInt(fixed.getPageCount().toString()) ;//获取分页总数
      141. List list=fixed.getEntity(page);//获取数据列表
      142. request.setAttribute("list",list);//将数据存放到request对象中,用于转发给前台页面使用
      143. request.setAttribute("totalPage",totalPage );//将totalPage存放到request对象中,用于转发给前台页面使用
      144. request.getRequestDispatcher("/Admin/FixedMsg.jsp").forward(request, response);//请求转发
      145. }
      146. //获取未出场的车辆
      147. private void getNoOut() throws ServletException, IOException
      148. {
      149. request.setCharacterEncoding("UTF-8");
      150. int page=request.getParameter("page")==null?1:Integer.parseInt(request.getParameter("page").toString());//获取跳转的页面号
      151. int totalPage=Integer.parseInt(fixed.getPageCount().toString()) ;//获取分页总数
      152. List list=fixed.getNoOut(page);//获取数据列表
      153. request.setAttribute("list",list);//将数据存放到request对象中,用于转发给前台页面使用
      154. request.setAttribute("totalPage",totalPage );//将totalPage存放到request对象中,用于转发给前台页面使用
      155. request.getRequestDispatcher("/Admin/FixedOut.jsp").forward(request, response);//请求转发
      156. }
      157. //根据查询条件获取对象所有数据列表
      158. private void getEntityByWhere() throws ServletException, IOException
      159. {
      160. request.setCharacterEncoding("UTF-8");
      161. String condition=request.getParameter("condition");//获取查询字段的名称
      162. //String value=new String(request.getParameter("value").getBytes("ISO8859_1"),"UTF-8");//获取查询的值
      163. String value = request.getParameter("value");
      164. String where=condition+"=\""+value+"\"";//拼接查询字符串
      165. int page=request.getParameter("page")==null?1:Integer.parseInt(request.getParameter("page"));//获取要跳转的页面号
      166. int wherePage=Integer.parseInt(fixed.getPageCountByWhere(where).toString()) ;//获取查询后的分页总数
      167. List list=fixed.getEntityByWhere(where, page);//获取查询后的数据列表
      168. request.setAttribute("list",list);//将数据存放到request对象中,用于转发给前台页面使用
      169. request.setAttribute("wherePage",wherePage );
      170. request.setAttribute("condition",condition);
      171. request.setAttribute("value",value);
      172. request.getRequestDispatcher("/Admin/FixedMsg.jsp").forward(request, response);
      173. }
      174. }
      175. 如果也想学习本系统,下面领取。关注并回复:111jsp

      176. 相关阅读:
        其实很多人都在学电子
        第九章:面向对象编程(高级部分)
        金融用户实践|分布式存储支持数据仓库业务系统性能验证
        java具体功能有多大
        微服务 技术栈
        初学python第一天
        ssh连win10报错:Permission denied (publickey,keyboard-interactive).
        linux总结10大危险命令
        NumPy库的学习
        算法练习-LeetCode 剑指 Offer 33. 二叉搜索树的后序遍历序列
      177. 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/126915327