• 基于ssm汽车租赁系统


    一、系统简介

    本项目采用eclipse工具开发,spring+springmvc+mybatis+layui技术编写,数据库采用的是mysql,navicat管理工具。

    系统一共分为3个角色分别是:管理员,用户,工作人员

    二、模块简介 

    管理员

    1、登录

    2、用户管理

    3、工作人员管理

    4、汽车类型管理

    5、汽车品牌管理

    6、用车需求管理

    7、实名认证管理

    8、预约信息管理

    9、汽车租赁管理

    10、合同信息管理

    11、个人信息管理

    12、统计管理

    工作人员

    1、登录

    2、个人信息管理

    3、汽车管理

    4、预约信息管理

    5、汽车租赁管理

    6、合同管理

    用户

    1、登录,注册

    2、浏览汽车信息

    3、查看汽车详情

    4、用车需求提交

    5、实名认证提交

    6、个人信息管理

    7、预约汽车

    8、租赁汽车

    9、订单信息管理

    10、租赁合同下载

    项目简介:
    难度等级:✩✩✩
    用户类型:3角色(
    管理员,用户,工作人员
    设计模式:MVC
    项目架构:B/S架构
    开发语言:Java语言
    前端技术:bootstrap+HTML、CSS、JS、JQuery等
    后端技术:JSP、ssm框架
    运行环境:Windows7或10、JDK1.8
    运行工具:本系统采用Eclipse开发,仅支持Eclipse运行,不支持MyEclipse和IDEA运行,因为三者的骨架不一样,强行导入打开运行可能会导致出现未知的错误。(如若想用idea运行,需要转换!!!!)
    数  据  库:MySQL5.5/5.7/8.0版本
    运行服务器:Tomcat7.0/8.0/8.5/9.0等版本
    是否基于Maven环境:否
    是否采用框架:是
    数据库表数量:11张表
    JSP页面数量:40多张
    是否有分页:有分页

    相关截图

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     相关代码

    登录

    1. <%@ page language="java" contentType="text/html; charset=utf-8"
    2. pageEncoding="utf-8"%>
    3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    4. <%
    5. String path = request.getContextPath();
    6. String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
    7. %>
    8. html>
    9. <html lang="en">
    10. <head>
    11. <meta charset="UTF-8">
    12. <meta name="viewport"
    13. content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    14. <meta http-equiv="X-UA-Compatible" content="ie=edge">
    15. <title>登录title>
    16. <link rel="icon" href="<%=path%>/resource/static/favicon.ico">
    17. <link rel="stylesheet" href="<%=path%>/resource/static/bootstrap/css/bootstrap.min.css">
    18. <link rel="stylesheet" href="<%=path%>/resource/static/admin/css/login.css">
    19. <script src="<%=path%>/resource/static/js/vue.min.js">script>
    20. <script src="<%=path%>/resource/static/js/jquery-3.3.1.min.js">script>
    21. <script src="<%=path%>/resource/static/bootstrap/js/bootstrap.bundle.js">script>
    22. <script src="<%=path%>/layui/layui.js">script>
    23. head>
    24. <body>
    25. <div class="login">
    26. <form id="saveForm">
    27. <h2>汽车租赁系统h2>
    28. <div class="form-group">
    29. <label>用户名label>
    30. <input type="text" v-model="username" name="username" id="username" class="form-control form-control-lg">
    31. div>
    32. <div class="form-group">
    33. <label>密码label>
    34. <input type="password" v-model="password" name ="password" id="password" class="form-control form-control-lg" id="pwd">
    35. div>
    36. <div class="form-group form-check">
    37. <input type="radio" class="form-check-input" name="type" value="1" id="exampleCheck2" checked>
    38. <label class="form-check-label" for="exampleCheck2">管理员label>        
    39. <input type="radio" class="form-check-input" name="type" value="2" id="exampleCheck1" >
    40. <label class="form-check-label" for="exampleCheck1">工作人员label>        
    41. <input type="radio" class="form-check-input" name="type" value="3" id="exampleCheck1" >
    42. <label class="form-check-label" for="exampleCheck1">用户label>
    43. div>
    44. <button type="button" :disabled="loading" @click="login" id="login" class="btn btn-primary btn-lg btn-block">
    45. <span v-show="loading" class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true">span>
    46. 立即登录
    47. button>
    48. form>
    49. div>
    50. <div class="modal fade" id="myModal" aria-labelledby="myModallabel"
    51. aria-hidden="true" tabindex="-1" >
    52. <div class="modal-dialog">
    53. <div class="modal-content" >
    54. <div class="modal-header">
    55. <h5 class="modal-title" id="myModallabel">供应商注册h5>
    56. <button class="close" type="button" data-dismiss="modal"
    57. aria-hidden="true">×button>
    58. div>
    59. <form id="addForm" class="form-horizontal">
    60. <div class="modal-body">
    61. <div class="form-group">
    62. <label class="control-label col-lg-4">姓名:label>
    63. <div class="col-lg-9">
    64. <input type="text" name="uname" class="form-control">
    65. div>
    66. div>
    67. <div class="form-group">
    68. <label class="control-label col-lg-4">公司名:label>
    69. <div class="col-lg-9">
    70. <input type="text" name="company" id="company" class="form-control">
    71. div>
    72. div>
    73. <div class="form-group">
    74. <label class="control-label col-lg-4">密码:label>
    75. <div class="col-lg-9">
    76. <input type="password" name="pwd" id="pwd" class="form-control">
    77. div>
    78. div>
    79. <div class="form-group">
    80. <label class="control-label col-lg-4">主营产品:label>
    81. <div class="col-lg-9">
    82. <input type="text" name="address" id="address" class="form-control">
    83. div>
    84. div>
    85. <div class="form-group">
    86. <label class="control-label col-lg-4">手机号:label>
    87. <div class="col-lg-9">
    88. <input type="text" name="phone" id="phone" class="form-control">
    89. div>
    90. div>
    91. div>
    92. <div class="modal-footer">
    93. <button class="btn btn-default" type="button" data-dismiss="modal">关闭button>
    94. <a class="btn btn-success aaa" type="button" id="save" >提交a>
    95. div>
    96. form>
    97. div>
    98. div>
    99. div>
    100. <script>
    101. $("#save").click(function() {
    102. $.ajax({
    103. cache : true,
    104. type : "post",
    105. url : "addGys",
    106. data : $("#addForm").serialize(),
    107. async : false,
    108. success : function(e) {
    109. if (e) {
    110. alert("注册成功!");
    111. document.location.reload();//当前页面
    112. } else {
    113. alert("注册失败,手机号重复!");
    114. }
    115. }
    116. })
    117. });
    118. script>
    119. <script>
    120. layui.use([ 'form','jquery','layer','laydate','upload' ], function() {
    121. var form = layui.form,
    122. layer = layui.layer,
    123. laydate = layui.laydate,
    124. upload = layui.upload,
    125. $= layui.jquery;
    126. form.render();//这句一定要加,占坑
    127. /* laydate.render({
    128. elem: '#schoolTime'
    129. });
    130. laydate.render({
    131. elem: '#day'
    132. }); */
    133. var uploadInst = upload.render({
    134. elem: '#test1'
    135. ,url: 'upload2'
    136. ,accept:'images'
    137. ,size:50000
    138. ,before: function(obj){
    139. obj.preview(function(index, file, result){
    140. $('#demo1').attr('src', result);
    141. });
    142. }
    143. ,done: function(res){
    144. //如果上传失败
    145. if(res.code > 0){
    146. return layer.msg('上传失败');
    147. }
    148. //上传成功
    149. var demoText = $('#demoText');
    150. demoText.html('上传成功');
    151. var fileupload = $(".img");
    152. fileupload.attr("value",res.data.src);
    153. console.log(fileupload.attr("value"));
    154. }
    155. ,error: function(){
    156. //演示失败状态,并实现重传
    157. var demoText = $('#demoText');
    158. demoText.html('上传失败 重试');
    159. demoText.find('.demo-reload').on('click', function(){
    160. uploadInst.upload();
    161. });
    162. }
    163. });
    164. });
    165. script>
    166. <script>
    167. $("#login").click(function(){
    168. var username = $("#username").val();
    169. var password = $("#password").val();
    170. if(username == null || username == ""){
    171. alert("请填写用户名");
    172. return false;
    173. }if(password == null || password == ""){
    174. alert("请填写密码");
    175. return false;
    176. }
    177. //执行添加的操作ajax
    178. $.ajax({
    179. cache:true,
    180. type:"post",
    181. url:"login",
    182. data:$("#saveForm").serialize(),
    183. async:false,
    184. success:function(e){
    185. if(e == "toMain"){
    186. alert("登录成功");
    187. window.parent.location.href="toMain";
    188. }else if(e == "toIndex"){
    189. alert("登录成功");
    190. window.parent.location.href="toIndex";
    191. }else{
    192. alert("登录失败,账号或密码错误");
    193. }
    194. }
    195. })
    196. });
    197. script>
    198. body>
    199. html>
    1. /**
    2. * �登录
    3. * @param username
    4. * @param request
    5. * @param password
    6. * @param session
    7. * @param response
    8. * @param mv
    9. * @return
    10. * @throws ServletException
    11. * @throws IOException
    12. */
    13. @RequestMapping("/login")
    14. @ResponseBody
    15. public String login(@RequestParam("username")String username,
    16. HttpServletRequest request,@RequestParam("password")String password,
    17. HttpSession session,HttpServletResponse response,ModelAndView mv) throws ServletException, IOException {
    18. String message = "error";
    19. session.removeAttribute("admin");
    20. session.removeAttribute("user");
    21. String type=request.getParameter("type").toString();
    22. Admin admin = new Admin();
    23. request.getSession().setAttribute("type", type);
    24. boolean re = false;
    25. if(type != null && type.equals("1")){
    26. admin.setUsername(username);
    27. admin.setPassword(password);
    28. Admin admin1 = userService.selectAdmin(admin);
    29. if(admin1 != null){
    30. request.getSession().setAttribute("admin", admin1);
    31. session.setAttribute("admin", admin1);
    32. message = "toMain";
    33. }
    34. }
    35. else if(type != null && type.equals("2")){
    36. Employee data = new Employee();
    37. data.setEno(username);
    38. data.setPwd(password);
    39. Employee Employee = EmployeeService.selectEmployee(data);
    40. if(Employee != null){
    41. request.getSession().setAttribute("employee", Employee);
    42. session.setAttribute("employee", Employee);
    43. message = "toMain";
    44. }
    45. }
    46. else if(type != null && type.equals("3")){
    47. User u = new User();
    48. u.setPhone(username);
    49. u.setPassword(password);
    50. User user = userService.selectUser(u);
    51. if(user != null){
    52. request.getSession().setAttribute("user", user);
    53. session.setAttribute("user", user);
    54. message = "toIndex";
    55. }
    56. }
    57. return message;
    58. }

    其他相关代码都是类似的,主要是前端jsp和后端控制器交互比较重要!!!非开源!!!!!!
    其他模块代码都是类似的,此项目适合初学者学习借鉴,项目整体比较简单,可用作于期末考核,课设,毕设等方面的作业!!!!!
    喜欢的朋友的点赞加关注,感兴趣的同学可以研究!!!!!
    感谢  = v =

     

  • 相关阅读:
    leetcode321场周赛python
    day15--使用postman, newman和jenkins进行接口自动化测试
    回归分析预测世界大学综合得分
    rabbitmq-3.8.15集群、集群镜像模式安装部署
    SpringBoot对象拷贝
    软件测试的流程规范有哪些?具体要怎么做?
    谷歌浏览器安装包无法打开,双击闪退!完美解决
    AtCoder Beginner Contest 266「ABCDEF」
    vscode创建vue项目
    如何限制一个账号只在一处登陆
  • 原文地址:https://blog.csdn.net/qq_43485489/article/details/126094536