基于javaweb的电力设备监测管理系统(servlet+jsp)

系统简介


    本项目采用eclipse工具开发,jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具。(eclipse或者idea都可以运行)

三个角色:管理员,普通用户

模块简介


管理员:

1、登录

2、用户管理

3、公告管理

4、设备分类管理

5、设备属性管理

6、设备管理

7、设备监控管理

8、设备维修管理

9、登录日志管理

用户:

1、登录,注册

2、个人信息管理

3、设备信息管理

4、设备监控管理

5、设备维修管理


项目简介
难度等级:✩✩✩
用户类型:2角色(管理员,用户)
设计模式:MVC
项目架构:B/S架构
开发语言:Java语言
前端技术:HTML、CSS、JS、JQuery等
后端技术:JSP、servlet框架
运行环境:Windows7或10、JDK1.8
运行工具:本系统采用eclipse开发,支持idea运行。
数  据  库:MySQL5.5/5.7/8.0版本
运行服务器:Tomcat7.0/8.0/8.5/9.0等版本
是否基于Maven环境:否
是否采用框架:是
数据库表数量:10张表
JSP页面数量:30多张
是否有分页:有分页

视频展示

javaweb电力设备监测管理系统_哔哩哔哩_bilibili本项目采用eclipse工具开发(idea也可运行),jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具。系统一共分为2个角色分别是:用户,管理员有需要加 微信 hhh1148720753 或者 QQ1148720753(非开源,非开源,非开源,重要事情说三遍), 视频播放量 89、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 码盗666, 作者简介 java码农一枚,相关视频:javaweb网上图书销售管理系统,javawebCT图像管理系统,智慧生产-工厂数字化SaaS产品解决方案,健身房俱乐部管理系统,javaweb家庭财务管理系统,客户管理系统,【2023最新】详解idea安装、配置、汉化,一键激活与破解,(附安装包)亲测有效,永久使用_Java零基础入门必学知识点_Java教程_Java入门_Java,搞定毕设(1):双重差分DID及STATA实操,带你做一个最经典的MFC信息管理系统,拯救期末!(开发全过程录制),基于javaweb宿舍管理系统(eclipse_mysql_jsp_servlet)icon-default.png?t=N7T8https://www.bilibili.com/video/BV1Uh4y1P7kY/

  源码地址

.gitignore · master · 码盗_java_bishe / java系统 · GitCodeicon-default.png?t=N7T8https://gitcode.net/qq_43485489/javaweb/-/blob/master/.gitignore

图片展示

部分代码展示

登录

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
      <%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta name="description" content="Neon Admin Panel">
	<meta name="author" content="">
	
	<title>登录</title>
	

	<link rel="stylesheet" href="resource/main/static/css/jquery-ui-1.10.3.custom.min.css">
	<link rel="stylesheet" href="resource/main/static/css/entypo.css">
	<link rel="stylesheet" href="resource/main/static/css/css.css">
	<link rel="stylesheet" href="resource/main/static/css/bootstrap.css">
	<link rel="stylesheet" href="resource/main/static/css/neon-core.css">
	<link rel="stylesheet" href="resource/main/static/css/neon-theme.css">
	<link rel="stylesheet" href="resource/main/static/css/neon-forms.css">
	<link rel="stylesheet" href="resource/main/static/css/custom.css">
    <link href="resource/layui/css/layui.css" rel="stylesheet">

	<script src="resource/main/static/js/jquery-1.11.0.min.js"></script>
	
</head>
<body class="page-body login-page login-form-fall" data-url="http://neon.dev">


<script type="text/javascript">
var baseurl = '';
</script>

<div class="login-container">
	
	<div class="login-header login-caret">
		
		<div class="login-content">
			
			<!-- <a href="index.html" class="logo">
				<img src="resource/main/static/picture/logo@2x.png" width="120" alt="">
			</a> -->
			
		<span style="font-size:30px;">电力设备监测管理系统登录</span>
			
			<!-- progress bar indicator -->
			<div class="login-progressbar-indicator">
				<h3>43%</h3>
				<span>logging in...</span>
			</div>
		</div>
		
	</div>
	
	<div class="login-progressbar">
		<div></div>
	</div>
	
	<div class="login-form">
		
		<div class="login-content">
			
			<!-- <div class="form-login-error">
				<h3>Invalid login</h3>
				<p>Enter <strong>demo</strong>/<strong>demo</strong> as login and password.</p>
			</div> -->
			
			<form  role="form" id="loginForm">
				
				<div class="form-group">
					
					<div class="input-group">
						<div class="input-group-addon">
							<i class="entypo-user"></i>
						</div>
						<input type="text" class="form-control" name="userName" id="userName" placeholder="请输入用户名" autocomplete="off">
					</div>
					
				</div>
				
				<div class="form-group">
					
					<div class="input-group">
						<div class="input-group-addon">
							<i class="entypo-key"></i>
						</div>
						<input type="password" class="form-control" name="password" id="password" placeholder="请输入密码" autocomplete="off">
					</div>
				
				</div>
				
				<div class="form-group">
					<select name="type" id="type" class="form-control">
					  <option value="" selected>请选择角色</option>
					  <option value="1">管理员</option>
					  <option value="2">用户</option>
					</select>
									
				</div>
				
				
				<div class="form-group">
					<button type="button" id="login" class="btn btn-primary btn-block btn-login">
						<i class="entypo-login"></i>
						登录
					</button>
				</div>
				
			<!-- 	<div class="form-group">
				
					<button type="button" class="btn btn-default btn-lg btn-block btn-icon icon-left facebook-button">
						注册
					</button>
					
				</div> -->
				
			</form>
			
			
			<div class="login-bottom-links">
				
				<a  class="link">没有账号?</a>
				
				<br>
				
				<a type="button" onclick="reg()" >注册</a>
				
			</div>
			
		</div>
		
	</div>
	
</div>


	<!-- Bottom Scripts -->
	<script src="resource/main/static/js/main-gsap.js"></script>
	<script src="resource/main/static/js/jquery-ui-1.10.3.minimal.min.js"></script>
	<script src="resource/main/static/js/bootstrap.js"></script>
	<script src="resource/main/static/js/joinable.js"></script>
	<script src="resource/main/static/js/resizeable.js"></script>
	<script src="resource/main/static/js/neon-api.js"></script>
	<script src="resource/main/static/js/jquery.validate.min.js"></script>
	<script src="resource/main/static/js/neon-login.js"></script>
	<script src="resource/main/static/js/neon-custom.js"></script>
	<script src="resource/main/static/js/neon-demo.js"></script>
    <script src="resource/layui/layui.js"></script>

     <script>
			$("#login").on("click", function() {
			    var userName = $("#userName").val().trim(); // trim()去除空格
			    var password = $("#password").val().trim();
			    var type = $("#type").val();
			    
			    if(userName == ""){
			    	
			    	alert('账号不能为空!');
			    	return false;
			    }
			    if(password == ""){
			    	alert('密码不能为空!');
			    	return false;
			    }
			    if(type == ""){
			    	alert('请选择角色!');
			    	return false;
			    } 
			    $.ajax({
					cache : true,
					type : "post",
					url : "LoginServlet?action=login",
					data : $("#loginForm").serialize(),
					async : false,
					success : function(e) {
						if (e == 'yes') {
							alert("登录成功!");
							window.parent.location.href = "UtilServlet?action=toMain";
						}else {
							alert("登录失败,账号或者密码错误!");
						}
					}
				})
			
			});
	</script>
	
		
	<script>
    layui.use([ 'form','jquery','layer','upload' ], function() {
        var form = layui.form,
            layer = layui.layer,
            $ = layui.jquery,
            upload = layui.upload;
        form.render();//这句一定要加,占坑

        window.reg = function(e){
            layer.open({
                //调整弹框的大小
                area:['500px','800px'],
                shadeClose:true,//点击旁边地方自动关闭
                //动画
                anim:2,
                //弹出层的基本类型
                type: 2,
                title: '用户注册',
                //刚才定义的弹窗页面
                content: 'LoginServlet?action=toRegister', //这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: ['http://sentsin.com', 'no']

            });
        }

    })

</script>

</body>
</html>
protected void login(HttpServletRequest request, HttpServletResponse response) throws Exception {// 跳转到添加用户界�?
		String userName = request.getParameter("userName");
		String password = request.getParameter("password");
		String type = request.getParameter("type");
		String message = "no";
		UserLog UserLog = new UserLog();
		UserLog.setUsername(userName);
		UserLog.setIpAddress(InetAddress.getLocalHost().getHostAddress());
		UserLog.setType(type.equals("1")?"管理员":"用户");
		UserLog.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()));
		UserLog.setContent("登录失败");
		if (type != null && type.equals("1")) {// admin
			Admin admin = service.selectAdmin(userName, password);
			if (admin != null) {
				message = "yes";
				request.getSession().setAttribute("flag", 1);
				request.getSession().setAttribute("admin", admin);
				UserLog.setContent("登录成功");
			}

		} else if (type != null && type.equals("2")) {
			User user = service.seletUser(userName, password);
			if (user != null) {
				message = "yes";
				request.getSession().setAttribute("flag", 2);
				request.getSession().setAttribute("user", user);
				UserLog.setContent("登录成功");
			}

		}
		service.addUserLog(UserLog);
		response.getWriter().print(message);
	}

注册

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
     <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
      <%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>


<jsp:include page="/WEB-INF/common/header.jsp"/>


<body class="animsition">

            <!-- MAIN CONTENT-->
            <div class="main-content">
                <div class="section__content section__content--p30">
                    <div class="container-fluid">
                        <div class="row">
                           
                            <div class="col-lg-12">
                                <div class="card">
                                    <div class="card-header">
                                        <strong>用户注册</strong>
                                    </div>
                                    <div class="card-body card-block">
                                        <form id="saveForm" class="form-horizontal">
                                                 <input name="id"  value="${data.id }"  type = "hidden" /> 
                                        
                                            <div class="row form-group">
                                                <div class="col col-md-3">
                                                    <label for="realname" class=" form-control-label">姓名</label>
                                                </div>
                                                <div class="col-12 col-md-9">
                                                    <input type="text" id="realname" name="realname"  class="form-control">
                                                </div>
                                            </div>
                                            
                                            <div class="row form-group">
                                                <div class="col col-md-3">
                                                    <label for="pwd" class=" form-control-label">登陆密码</label>
                                                </div>
                                                <div class="col-12 col-md-9">
                                                    <input type="password" id="pwd" name="pwd"  class="form-control">
                                                </div>
                                            </div>
                                            
                                            <div class="row form-group">
                                                <div class="col col-md-3">
                                                    <label for="age" class=" form-control-label">年龄</label>
                                                </div>
                                                <div class="col-12 col-md-9">
                                                    <input type="number" id="age" name="age"  class="form-control">
                                                </div>
                                            </div>
                                            
                                            <div class="row form-group">
                                                <div class="col col-md-3">
                                                    <label for="phone" class=" form-control-label">手机号</label>
                                                </div>
                                                <div class="col-12 col-md-9">
                                                    <input type="text" id="phone" name="phone" class="form-control">
                                                </div>
                                            </div>
                                            
                                            
                                             <div class="row form-group">
                                                <div class="col col-md-3">
                                                    <label for="select" class=" form-control-label">性别</label>
                                                </div>
                                                <div class="col-12 col-md-9">
                                                    <select name="sex" id="sex" class="form-control">
                                                       <option value="男"  ></option>
			                                           <option value="女" ></option>
                                                    </select>
                                                </div>
                                            </div>
                                            
                                              <div class="row form-group">
                                                <div class="col col-md-3">
                                                    <label for="address" class=" form-control-label">地址</label>
                                                </div>
                                                <div class="col-12 col-md-9">
                                                    <textarea name="address" id="address" rows="2"  class="form-control"></textarea>
                                                </div>
                                            </div> 
                                         
                                         
                                            <div class="row form-group">
                                                <div class="col col-md-3">
                                                    <label for="img" class=" form-control-label">上传图片</label>
                                                </div>
                                                <div class="col-6 col-md-6">
                                                    <input type="file" id="img" name="img"  class="form-control-file">
                                                </div>
                                                <div class="col-6 col-md-3">
                                                           <img  id="preview_img" width="100px" height="100px" alt="">
                                                </div>
                                            </div>
                                            
                                         
                                         
                                           
                                        </form>
                                    </div>
                                    <div class="card-footer">
                                        <button type="button" class="btn btn-primary btn-sm"  id="save">
                                            <i class="fa fa-dot-circle-o"></i>立即注册
                                        </button>
                                    </div>
                                </div>
                            </div>
                      
                        </div>
                    </div>
                </div>
            </div>

    <!-- Jquery JS-->
    <script src="resource/main/vendor/jquery-3.2.1.min.js"></script>
    <!-- Bootstrap JS-->
    <script src="resource/main/vendor/bootstrap-4.1/popper.min.js"></script>
    <script src="resource/main/vendor/bootstrap-4.1/bootstrap.min.js"></script>
    <!-- Vendor JS       -->
    <script src="resource/main/vendor/slick/slick.min.js">
    </script>
    <script src="resource/main/vendor/wow/wow.min.js"></script>
    <script src="resource/main/vendor/animsition/animsition.min.js"></script>
    <script src="resource/main/vendor/bootstrap-progressbar/bootstrap-progressbar.min.js">
    </script>
    <script src="resource/main/vendor/counter-up/jquery.waypoints.min.js"></script>
    <script src="resource/main/vendor/counter-up/jquery.counterup.min.js">
    </script>
    <script src="resource/main/vendor/circle-progress/circle-progress.min.js"></script>
    <script src="resource/main/vendor/perfect-scrollbar/perfect-scrollbar.js"></script>
    <script src="resource/main/vendor/chartjs/Chart.bundle.min.js"></script>
    <script src="resource/main/vendor/select2/select2.min.js">
    </script>

    <!-- Main JS-->
    <script src="resource/main/js/main.js"></script>
    
    
 <script>
 
 $("#img").change(function () {
	    var img_src = URL.createObjectURL($(this)[0].files[0]);
	    document.getElementById("preview_img").src=img_src;
	});
 
	$("#save").click(function() {
		$.ajax({
			cache:true,
			type : "post",
			url : "LoginServlet?action=registerUser",
			 data : new FormData($('#saveForm')[0]),
			 processData: false,
			 contentType: false,
			//data : $("#saveForm").serialize(),
			async:false,
			success : function(e) {
				if (e == "yes") {
					alert("注册成功!");
					window.parent.location.reload();
				} else if (e == "is") {
					alert("注册失败,手机号重复");
				}else{
					alert("注册失败");
				}
			}
		})
	});


    $("#imgUrl").change(function () {
	    var img_src = URL.createObjectURL($(this)[0].files[0]);
	    document.getElementById("preview_img").src=img_src;
	});
</script>

</body>

</html>
<!-- end document-->

系统总结


系统使用eclipse开发的(也可idea运行)
相关技术:jsp,servlet,JavaScript,ajax,jquery,mvc结构,jdbc连接池C3p0,mysql,bootstrap。

我的开发工具:eclipse2020,mysql5.7,navicat数据库管理工具,Jdk1.8,tomcat8.5,google浏览器。

非开源!!!!!!
项目截图中的数据,很多是用来测试的,需求自行添加合适的数据图片
喜欢的朋友的点赞加关注,感兴趣的同学可以研究!!!!!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值