一、系统简介


本项目采用eclipse工具开发,jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具。

系统一共分为3个角色分别是:管理员,学生,宿管

二、模块简介


管理员
1、登录

2、学生管理

3、宿舍管理

4、个人信息管理

5、宿管人员管理

6、缺勤人员管理

7、公告管理

学生

1、登录,注册

2、个人信息维护

3、查看宿舍

4、查看缺勤记录

5、查看公告

宿管

1、登录

2、个人信息维护

3、缺勤学生管理

4、宿舍管理

5、查看公告

项目简介:

难度等级:✩✩✩

用户类型:三角色(管理员,学生,宿管)

设计模式:MVC

项目架构:B/S架构

开发语言:Java语言

前端技术:layui、HTML、CSS、JS、JQuery等

后端技术:JSP、servlet框架

运行环境:Windows7或10、JDK1.8

运行工具:本系统采用Eclipse开发,仅支持Eclipse运行,不支持MyEclipse和IDEA运行,因为三者的骨架不一样,强行导入打开运行可能会导致出现未知的错误。(如若想用idea运行,需要转换!!!!)

数  据  库:MySQL5.5/5.7/8.0版本

运行服务器:Tomcat7.0/8.0/8.5/9.0等版本

是否基于Maven环境:否

是否采用框架:是

数据库表数量:6张表

JSP页面数量:20多张

是否有分页:有分页

基于javaweb宿舍管理系统(eclipse

项目截图

项目结构

 数据库结构

 

登录注册

 

 学生管理

 

 宿舍管理

 公告管理

 

 缺勤管理

 

 项目代码简介

登录代码

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title> 宿   舍   管  理  系  统</title>
		<!-- 样 式 文 件 -->
		<link rel="stylesheet" href="resource/component/pear/css/pear.css" />
		<link rel="stylesheet" href="resource/admin/css/other/login.css" />
	</head>
    <!-- 代 码 结 构 -->
	<body background="resource/admin/images/background.svg" style="background-size: cover;">
		<form class="layui-form" action="LoginServlet?action=login" method="post"  id="loginForm" name="loginForm" >
			<div class="layui-form-item">
				<img class="logo" src="resource/admin/images/logo.png" />
				<div class="title">登&emsp;&emsp;录</div>
				<div class="desc">
					 宿   舍   管  理  系  统
				</div>
			</div>
			<div class="layui-form-item">
				<input type="text" placeholder="请输入用户名或者手机号" name="userName" id="userName" hover class="layui-input"  />
				<span id="msg3" style="color:red">${message}</span>
			</div>
			<div class="layui-form-item">
				<input id="password" type="password" name="password" placeholder="请输入密码" hover class="layui-input"  />
			</div>
			<div class="layui-form-item" style="text-align: center;">
			      <input type="radio" name="type" id="type" value="1" title="管理员" checked>
                  <input type="radio" name="type" id="type" value="2" title="学生" > 
                   <input type="radio" name="type" id="type" value="3" title="宿管" > 
			</div>
			<div class="layui-form-item">
				<button type="submit" class="pear-btn pear-btn-success login" id="login">
					登录
				</button>
			</div>
			 <div class="layui-form-item">
				<a href="LoginServlet?action=toRegister" class="pear-btn pear-btn-warming  layui-btn-fluid">去注册</a>
			</div> 
		</form>
		<!-- 资 源 引 入 -->
		<script src="resource/component/layui/layui.js"></script>
		<script src="resource/component/pear/pear.js"></script>
		<script>
		layui.use(['layer', 'form','jquery'], function(){
			var form = layui.form,
			 layer = layui.layer,
			 $= layui.jquery;
			 form.render();//这句一定要加,占坑
		   
		$("#login").on("click", function() {
		    var userName = $("#userName").val().trim(); // trim()去除空格
		    var password = $("#password").val().trim();
		    var type = $("#type").val();
		    
		    
		    if(userName == ""){
		    	layer.msg('用户名或者手机号不能为空!');
		    	return false;
		    }
		    if(password == ""){
		    	layer.msg('密码不能为空!');
		    	return false;
		    }
		    if(type == ""){
		    	layer.msg('请选择角色!');
		    	return false;
		    }

		});

		setTimeout(function(){ $("#msg").html("")},3000);
		setTimeout(function(){ $("#msg2").html("")},3000);
		setTimeout(function(){ $("#msg3").html("")},3000);
		});
		</script>
	</body>
</html>
package edu.school.servlet;

import java.io.IOException;
import java.util.List;

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

import edu.school.entity.Admin;
import edu.school.entity.Dormitory;
import edu.school.entity.Student;
import edu.school.entity.User;
import edu.school.service.LoginService;
import edu.school.service.impl.LoginServiceImpl;
import edu.school.service.impl.StudentServiceImpl;

public class LoginServlet extends HttpServlet{
	
	private LoginService service = new LoginServiceImpl();

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
				throws ServletException, IOException {
		   String action=request.getParameter("action");//接受请求的参数
		   if(action != null && action.equals("toLogin")) {//去登录页面
		    	toLogin(request, response);
			}else if(action != null && action.equals("login")) {//登录
		    	login(request, response);
			}else if(action != null && action.equals("LoginOutAct")) {//退出
				LoginOutAct(request, response);
			}else if(action != null && action.equals("welcome")) {//默认页面
				welcome(request, response);
			}else if(action != null && action.equals("toRegister")) {//去注册
				toRegister(request, response);
			}
		}

	
	private void toRegister(HttpServletRequest request,
			HttpServletResponse response) {
		try {
			List<Dormitory> dormitoryList = new StudentServiceImpl().selectList();
			request.setAttribute("dormitoryList", dormitoryList);
			request.getRequestDispatcher("/WEB-INF/views/register.jsp").forward(request,response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void welcome(HttpServletRequest request,
			HttpServletResponse response) {
		try {
			request.getRequestDispatcher("/WEB-INF/views/console.jsp").forward(request,response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void LoginOutAct(HttpServletRequest request,
			HttpServletResponse response) {
		try {
			request.getSession().removeAttribute("admin");
			request.getSession().removeAttribute("student");
			request.getSession().removeAttribute("user");
			request.getSession().removeAttribute("flag");
			response.sendRedirect(request.getContextPath()+"/LoginServlet?action=toLogin");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


	private void login(HttpServletRequest request, HttpServletResponse response) {
		// TODO Auto-generated method stub
		removeAll(request,response);
		String userName = request.getParameter("userName");
		String password = request.getParameter("password");
		String type = request.getParameter("type");
		if(type.equals("1")){
			Admin admin = new Admin();
			admin.setUsername(userName);
			admin.setPwd(password);
			Admin admin1 = service.selectAdmin(admin);
			  try {
					 if (admin1 == null){
			        	  request.setAttribute("message", "管理员用户不存在或者密码错误");
						  request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
			         }else {
			        	  request.getSession().setAttribute("admin",admin1);
			        	  request.getSession().setAttribute("flag",1);
			              request.getRequestDispatcher("/WEB-INF/views/main.jsp").forward(request, response);
			         }				
				 } catch (Exception e) {
				 	e.printStackTrace();
				 }
		 }else if(type.equals("2")){
			 Student student = new Student();
			 student.setStuno(userName);
			 student.setPwd(password);
			 Student student1 = service.selectStudent(student);
			  try {
					 if (student1 == null){
			        	  request.setAttribute("message", "学号不存在或者密码错误");
						  request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
			         }else {
			        	  request.getSession().setAttribute("student",student1);
			        	  request.getSession().setAttribute("flag",2);
			              request.getRequestDispatcher("/WEB-INF/views/main.jsp").forward(request, response);
			         }				
				 } catch (Exception e) {
				 	e.printStackTrace();
				 }
		 }else if(type.equals("3")){
			  User user = service.selectUser(userName,password);
			  try {
					 if (user == null){
			        	  request.setAttribute("message", "用户名不存在或者密码错误");
						  request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
			         }else {
			        	  request.getSession().setAttribute("user",user);
			        	  request.getSession().setAttribute("flag",3);
			              request.getRequestDispatcher("/WEB-INF/views/main.jsp").forward(request, response);
			         }				
				 } catch (Exception e) {
				 	e.printStackTrace();
				 }
		 }else{
			    request.setAttribute("message", "账号不存在或者密码错误");
			    try {
				request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
				} catch (Exception e) {
					e.printStackTrace();
				} 
		 }
	}


	private void removeAll(HttpServletRequest request,
			HttpServletResponse response) {
		request.getSession().removeAttribute("admin");
		request.getSession().removeAttribute("student");
		request.getSession().removeAttribute("user");
		request.getSession().removeAttribute("flag");

	}


	private void toLogin(HttpServletRequest request,
			HttpServletResponse response) {
		try {
		    request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
		}catch(Exception e){
			e.printStackTrace();
		}  
	   	return;
	}


	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}
}
<%@ 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>
	<head>
		<meta charset="utf-8">
		<title></title>
		<!-- 样 式 文 件 -->
		<link rel="stylesheet" href="resource/component/pear/css/pear.css" />
		<link rel="stylesheet" href="resource/admin/css/other/login.css" />
	</head>
    <!-- 代 码 结 构 -->
	<body background="resource/admin/images/background.svg" style="background-size: cover;">
		<form class="layui-form" action="StudentServlet?action=addStudent" method="post"  id="loginForm" name="loginForm" enctype="multipart/form-data" >
			 <input id="te" type="hidden" name="te" value="1" />
			<div class="layui-form-item">
				<img class="logo" src="resource/admin/images/logo.png" />
				<div class="title">注&emsp;&emsp;册</div>
				<div class="desc">
					 宿   舍   管  理  系  统
				</div>
			</div>
			<div class="layui-form-item">
				<input type="text" placeholder="请输入姓名" name="name" id="name" hover class="layui-input"  />
				<span id="msg" style="color:red">${message}</span>
			</div>
			<div class="layui-form-item">
				<input id="stuno" type="text" name="stuno" placeholder="请输入学号" hover class="layui-input"  />
			</div>
			<div class="layui-form-item">
				<select name="sex" id ="sex">
				        <option value="">请选择性别</option>
				        <option value="男">男</option>
				        <option value="女">女</option>
				      </select>
			</div>
				<div class="layui-form-item">
				<select name="d_id" id ="d_id">
				        <option value="">请选择宿舍</option>
				        <c:forEach items="${dormitoryList}" var="u">
						    <option value="${u.id }">${u.floor }</option>
				        </c:forEach>
				      </select>
			</div>
			 <div class="layui-form-item">
				<input id="bj" type="text" name="bj" placeholder="请输入班级" hover class="layui-input"  />
			</div>
			 <div class="layui-form-item">
				<input id="phone" type="text" name="phone" placeholder="请输入手机号" hover class="layui-input"  />
			</div>
			 <div class="layui-form-item">
				<input id="pwd" type="text" name="pwd" placeholder="请输入登录密码" hover class="layui-input"  />
			</div>
			 <div class="layui-form-item">
				<input id="major" type="text" name="major" placeholder="请输入专业" hover class="layui-input"  />
			</div>
			 <div class="layui-form-item">
				 <input type="file" name="imgUrl" id="imgUrl"  placeholder="点击上传头像" class="layui-input"  /> 
			</div>
			 <div class="layui-form-item">
                            <img src="" id="preview_img" width="350px" height="200px" alt="">
			</div>
			<div class="layui-form-item">
				<button type="submit" class="pear-btn pear-btn-success login" id="login">
					注册
				</button>
			</div>
			 <div class="layui-form-item">
				<a href="LoginServlet?action=toLogin" class="pear-btn pear-btn-warming  layui-btn-fluid">返回</a>
			</div> 
		</form>
		<!-- 资 源 引 入 -->
		<script src="resource/component/layui/layui.js"></script>
		<script src="resource/component/pear/pear.js"></script>
		<script>
		layui.use(['layer', 'form','jquery','laydate'], function(){
			var form = layui.form,
			 layer = layui.layer,
			 laydate=layui.laydate,
			 $= layui.jquery;
			 form.render();//这句一定要加,占坑
		   
			 laydate.render({
				    elem: '#time'
				  });
		 $("#login").on("click", function() {
			  var stuno = $("#stuno").val();
		        var sex = $("#sex").val();
		        var classes = $("#classes").val();
		        var time = $("#time").val();
		        var xy = $("#xy").val();
		        var phone = $("#phone").val();
		        var pwd = $("#pwd").val();
		        var stno = $("#stno").val();
		        if(stuno == null || stuno== ""){
		        	layer.msg('学号不能为空!');
		        	return false;
		        }
		        if(stuno != null && stuno.length > 11){
		        	layer.msg('学号不能大于11位!');
		        	return false;
		        }
		      /*   if(name == null || name== ""){
		        	layer.msg('姓名不能为空!');
		        	return false;
		        }
		        if(classes == null || classes== ""){
		        	layer.msg('班级不能为空!');
		        	return false;
		        }
		        if(time == null || time== ""){
		        	layer.msg('入学时间不能为空!');
		        	return false;
		        }
		        if(xy == null || xy== ""){
		        	layer.msg('学院不能为空!');
		        	return false;
		        }
		        if(phone == null || phone== ""){
		        	layer.msg('手机号不能为空!');
		        	return false;
		        }
		        if(pwd == null || pwd== ""){
		        	layer.msg('密码不能为空!');
		        	return false;
		        }
		        if(stno == null || stno== ""){
		        	layer.msg('学号不能为空!');
		        	return false;
		        } */
		}); 

		setTimeout(function(){ $("#msg").html("")},3000);
		setTimeout(function(){ $("#msg2").html("")},3000);
		setTimeout(function(){ $("#msg3").html("")},3000);
		
		 $("#imgUrl").change(function () {
			    //创建blob对象,浏览器将文件放入内存中,并生成标识
			    var img_src = URL.createObjectURL($(this)[0].files[0]);
			    //给img标检的src赋值
			    document.getElementById("preview_img").src=img_src;
			    //URL.revokeObjectURL(img_src);// 手动 回收,
			});
		});
		</script>
	</body>
</html>

其他相关代码都是类似的,主要是前端jsp和后端servlet交互比较重要!!!非开源!!!!!!
其他模块代码都是类似的,此项目适合初学者学习借鉴
喜欢的朋友的点赞加关注,感兴趣的同学可以研究!!!!!
感谢  = v =
 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐