• 基于ssm的设备信息管理系统


    一、系统简介


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

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

    二、模块简介

    管理员

    1、登录

    2、统计管理

    3、工作人员管理

    4、设备分类管理

    5、设备信息管理

    6、设备报修管理

    7、个人信息管理

    工作人员

    1、登录注册

    2、个人信息管理

    3、设备信息管理

    4、设备报修管理

    项目简介:
    难度等级:✩✩✩
    用户类型:2角色(管理员,工作人员)
    设计模式: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环境:否
    是否采用框架:是
    数据库表数量:5张表
    JSP页面数量:20多张
    是否有分页:有分页

    相关截图

     

    相关代码

    登录

    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%>/resource/layui/layui.js">script>
    23. head>
    24. <body>
    25. <div class="login" style="height: 440px;">
    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. div>
    42. <button type="button" :disabled="loading" @click="login" id="login" class="btn btn-primary btn-lg btn-block">
    43. <span v-show="loading" class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true">span>
    44. 立即登录
    45. button>
    46. <a data-target="#myModal" data-toggle="modal" >工作人员注册a>
    47. form>
    48. div>
    49. <div class="modal fade" id="myModal" aria-labelledby="myModallabel"
    50. aria-hidden="true" tabindex="-1" >
    51. <div class="modal-dialog">
    52. <div class="modal-content" >
    53. <div class="modal-header">
    54. <h5 class="modal-title" id="myModallabel">工作人员注册h5>
    55. <button class="close" type="button" data-dismiss="modal"
    56. aria-hidden="true">×button>
    57. div>
    58. <form id="addForm" class="form-horizontal">
    59. <div class="modal-body">
    60. <div class="form-group">
    61. <label class="control-label col-lg-4">姓名:label>
    62. <div class="col-lg-9">
    63. <input type="text" name="realName" class="form-control">
    64. div>
    65. div>
    66. <div class="form-group">
    67. <label class="control-label col-lg-4">密码:label>
    68. <div class="col-lg-9">
    69. <input type="password" name="password" id="password" class="form-control">
    70. div>
    71. div>
    72. <div class="form-group">
    73. <label class="control-label col-lg-4">手机号:label>
    74. <div class="col-lg-9">
    75. <input type="text" name="phone" id="phone" class="form-control">
    76. div>
    77. div>
    78. <input type="hidden" name="img" class="img">
    79. <div class="form-group">
    80. <label for="name">图片:label>
    81. <div class="layui-upload">
    82. <div class="layui-upload-list">
    83. <img class="layui-upload-img" style="width:200px;height:100px;" id="demo1">
    84. <button type="button" class="btn btn-primary" id="test1">+button>
    85. <p id="demoText">p>
    86. div>
    87. div>
    88. div>
    89. div>
    90. <div class="modal-footer">
    91. <button class="btn btn-default" type="button" data-dismiss="modal">关闭button>
    92. <a class="btn btn-success aaa" type="button" id="save" >提交a>
    93. div>
    94. form>
    95. div>
    96. div>
    97. div>
    98. <script>
    99. $("#save").click(function() {
    100. $.ajax({
    101. cache : true,
    102. type : "post",
    103. url : "addUser",
    104. data : $("#addForm").serialize(),
    105. async : false,
    106. success : function(e) {
    107. if (e) {
    108. alert("注册成功!");
    109. document.location.reload();//当前页面
    110. } else {
    111. alert("注册失败,手机号重复!");
    112. }
    113. }
    114. })
    115. });
    116. script>
    117. <script>
    118. layui.use([ 'form','jquery','layer','laydate','upload' ], function() {
    119. var form = layui.form,
    120. layer = layui.layer,
    121. laydate = layui.laydate,
    122. upload = layui.upload,
    123. $= layui.jquery;
    124. form.render();//这句一定要加,占坑
    125. /* laydate.render({
    126. elem: '#schoolTime'
    127. });
    128. laydate.render({
    129. elem: '#day'
    130. }); */
    131. var uploadInst = upload.render({
    132. elem: '#test1'
    133. ,url: 'upload2'
    134. ,accept:'images'
    135. ,size:50000
    136. ,before: function(obj){
    137. obj.preview(function(index, file, result){
    138. $('#demo1').attr('src', result);
    139. });
    140. }
    141. ,done: function(res){
    142. //如果上传失败
    143. if(res.code > 0){
    144. return layer.msg('上传失败');
    145. }
    146. //上传成功
    147. var demoText = $('#demoText');
    148. demoText.html('上传成功');
    149. var fileupload = $(".img");
    150. fileupload.attr("value",res.data.src);
    151. console.log(fileupload.attr("value"));
    152. }
    153. ,error: function(){
    154. //演示失败状态,并实现重传
    155. var demoText = $('#demoText');
    156. demoText.html('上传失败 重试');
    157. demoText.find('.demo-reload').on('click', function(){
    158. uploadInst.upload();
    159. });
    160. }
    161. });
    162. });
    163. script>
    164. <script>
    165. $("#login").click(function(){
    166. var username = $("#username").val();
    167. var password = $("#password").val();
    168. if(username == null || username == ""){
    169. alert("请填写用户名");
    170. return false;
    171. }if(password == null || password == ""){
    172. alert("请填写密码");
    173. return false;
    174. }
    175. //执行添加的操作ajax
    176. $.ajax({
    177. cache:true,
    178. type:"post",
    179. url:"login",
    180. data:$("#saveForm").serialize(),
    181. async:false,
    182. success:function(e){
    183. if(e){
    184. alert("登录成功");
    185. window.parent.location.href="toMain";
    186. }else{
    187. alert("登录失败,账号或密码错误");
    188. }
    189. }
    190. })
    191. });
    192. script>
    193. body>
    194. html>
    1. //登录
    2. @RequestMapping("/login")
    3. @ResponseBody
    4. public boolean login(@RequestParam("username")String username,
    5. HttpServletRequest request,@RequestParam("password")String password,
    6. HttpSession session,HttpServletResponse response,ModelAndView mv) throws ServletException, IOException {
    7. session.removeAttribute("admin");
    8. session.removeAttribute("User");
    9. String type=request.getParameter("type").toString();
    10. Admin admin = new Admin();
    11. request.getSession().setAttribute("type", type);
    12. boolean re = false;
    13. if(type != null && type.equals("1")){
    14. admin.setUsername(username);
    15. admin.setPassword(password);
    16. Admin admin1 = UserService.selectAdmin(admin);
    17. if(admin1 != null){
    18. request.getSession().setAttribute("admin", admin1);
    19. session.setAttribute("admin", admin1);
    20. re = true;
    21. }
    22. }else if(type != null && type.equals("2")){
    23. User u = new User();
    24. u.setPhone(username);
    25. u.setPassword(password);
    26. User User = UserService.selectUser(u);
    27. if(User != null){
    28. request.getSession().setAttribute("user", User);
    29. session.setAttribute("user", User);
    30. re = true;
    31. }
    32. }
    33. return re;
    34. }

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

     

  • 相关阅读:
    SpringAOP(2)-spring源码详解(七)
    JVM中的 -Xms参数 设置 JVM 的初始堆大小
    Spring 远程命令执行漏洞分析(CVE-2022-22965)
    一端强制一端自协商会有问题吗
    spring配置数据源
    计算机毕设(附源码)JAVA-SSM家乡旅游宣传书册
    作用域和作用域链
    学生管理系统VueAjax版本
    多通道LMMSE图像超分辨复原方法研究-附Matlab代码
    【Vue】vue项目目录介绍 es6的导入导出语法 vue项目开发规范 Vue项目编写步骤
  • 原文地址:https://blog.csdn.net/qq_43485489/article/details/126154738