基于javaweb的宿舍管理系统(idea+servlet+jsp+jdbc)

48 篇文章 3 订阅

一、系统简介

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

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

获取源码:xystgl · master · 码盗_java_bishe / java系统 · GitCode

二、模块简介

系统管理员

1、登录

2、宿舍管理员管理

3、学生管理

4、宿舍楼管理

5、缺勤记录管理

6、个人密码修改

宿舍管理员

1、登录

2、发布公告信息

3、办理学生入住信息

4、查看寝室

5、查看学生

6、寝室调换

7、签到管理

8、缺勤记录

9、报修管理

10、卫生评比

11、访客登记

12、物品登记

13、密码修改

学生

1、登录

2、个人信息管理

3、签到管理

4、缺勤记录管理

5、报修管理

6、卫生评比

7、密码修改

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

相关截图

相关代码

登录


<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"   %>
     
<%@ page import="com.demo.bean.Admin" %>
<%@ page import="com.demo.bean.DormManager" %>
<%@ page import="com.demo.bean.Student"%>
<%@ page import="com.demo.util.*"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>宿舍管理系统</title>
	<script type="text/javascript" src="bootstrap/js/jQuery.js"></script>  
<script type="text/javascript">
	function changeImg(){  
  var imgSrc = $("#img");  
 
    var src = imgSrc.attr("src");  
    imgSrc.attr("src",chgUrl(src));  
}  



//时间戳  
//为了使每次生成图片不一致,即不让浏览器读缓存,所以需要加上时间戳  
function chgUrl(url){  
    var timestamp = (new Date()).valueOf();  
    url = url.substring(0,17);  
    if((url.indexOf("&")>=0)){  
        url = url + "×tamp=" + timestamp;  
    }else{  
        url = url + "?timestamp=" + timestamp;  
    }  
    return url;  
}  
	
	jquery验证阻止表单提交///
$(document).ready(function(){  
    $(":submit[id=tijiao]").click(function(check){  
        var val = $(":text[id=code]").val();  
      var userName = document.getElementById("userName").value;
		var password = document.getElementById("password").value;
		var userType = document.getElementById("userType").value;
		var code = document.getElementById("code").value;
		var remember=document.getElementById("remember").value;
    
        
		if (userType =="tip") {
			// alert("文本框输入为空,不能提交表单!");  
            $(":text[id=userType]").focus();  
            check.preventDefault();//此处阻止提交表单  
            return false;
		}
		if (userName == null || userName == "") {
			document.getElementById("error").innerHTML = "用户名不能为空";
			// alert("文本框输入为空,不能提交表单!");  
            $(":text[id=userName]").focus();  
            check.preventDefault();//此处阻止提交表单  
              return false;
		}
		if (password == null || password == "") {
			document.getElementById("error").innerHTML = "密码不能为空";
			 //alert("文本框输入为空,不能提交表单!");  
            $(":text[id=password]").focus();  
            check.preventDefault();//此处阻止提交表单  
              return false;
		}
		
		if (code == null || code == "") {
			document.getElementById("error").innerHTML = "验证码不能为空";
			document.getElementByIdx_x("code").focus; 
			 //alert("文本框输入为空,不能提交表单!");  
            $(":text[id=code]").focus();  
            check.preventDefault();//此处阻止提交表单  
              return false;
		}
        
        
        
    });  
});  


	function checkForm() {
		var userName = document.getElementById("userName").value;
		var password = document.getElementById("password").value;
		var userType = document.getElementById("userType").value;
		var code = document.getElementById("code").value;
		var remember=document.getElementById("remember").value;
		
		if (userType =="tip") {
			document.getElementById("error").innerHTML = "请选择用户类型";
			return false;
		}
		if (userName == null || userName == "") {
			document.getElementById("error").innerHTML = "用户名不能为空";
			
			return false;
		}
		if (password == null || password == "") {
			document.getElementById("error").innerHTML = "密码不能为空";
			return false;
		}
		
	<!--	if (code == null || code == "") {
			document.getElementById("error").innerHTML = "验证码不能为空";
			document.getElementByIdx_x("code").focus; 
			return false;
		}    -->
		
		code = "codetemp=" + code;  
  	  $.ajax({  
        type:"POST",  
         url:"codeser", 
        data:code,  
        success:callback
   	 });  
	
	}
	function callback(data){ 	
	if(data==2){
	alert("验证码错误");
	//document.getElementById("error").innerHTML = "验证码错误";
	//window.parent.window.location.href="login.jsp";
	//$("#info").html("验证码错误");
		return false;
	}else{
	var userName = document.getElementById("userName").value;
	var password = document.getElementById("password").value;
	var userType = document.getElementById("userType").value;
	var remember=document.getElementById("remember").value;
	//window.parent.window.location.href="login?userType="+userType+"&password="+password+"&userName="+userName+"&remember="+remember;
	//	window.parent.window.location.href="main.jsp";
	// document.myForm.action="login";
	return true;
	}
  
}  
function changeval(){
           var check = document.getElementById("remember");
            if(check.checked == true){
                 document.getElementById("remember").value = "remember-me";
            }else{
                 document.getElementById("remember").value = "0";
             }
    }
</script>
	
<link href="<%=basePath%>/bootstrap/boot/bootstrap.min.css" rel="stylesheet">
<link href="<%=basePath%>/bootstrap/boot/materialdesignicons.min.css" rel="stylesheet">
<link href="<%=basePath%>/bootstrap/boot/style.min.css" rel="stylesheet">
<link href="<%=basePath%>/bootstrap/boot/login.css" rel="stylesheet">
<style>
    td{
        text-align: center;
    }
    th{
        text-align: center;
    }
    </style>
</head>

<body  >
<%-- style="
        background-image:url(<%=basePath%>/images/bg.jpg);
        background-repeat:no-repeat;background-size:cover;" --%>
       
<div class="row lyear-wrapper">
  <div class="lyear-login">
    <div class="login-center">
      <div class="login-header text-center">
        <a href=""> <h4  style="color: #15c377;">宿舍管理系统</h4></a>
      </div>
     <FORM  name="myForm" action="login" class="form-signin"  method="post"> 
        <div class="form-group has-feedback feedback-left">
          <input type="text" placeholder="请输入账号" class="form-control" name="userName" id="userName"/>
         
          <span class="mdi mdi-account form-control-feedback" aria-hidden="true"> </span>
         <span id="msg" style="color:red;"></span>
        </div>
        <div class="form-group has-feedback feedback-left">
          <input type="password" placeholder="请输入密码" class="form-control" id="password" name="password" />
          
          <span class="mdi mdi-lock form-control-feedback" aria-hidden="true"></span>
           <span id="msg2" style="color:red;"></span>
        </div>
        <div class="form-group has-feedback feedback-left row">

            <div class="col-xs-12">
                <select name ="userType" class="form-control" id="userType" title="请选择角色"  name="example-select" size="1">
           
	
          							 <option selected="selected" value="tip">请选择角色</option>
          							  <option value="admin"${userType==1?'selected':''} >系统管理员</option>
          							   <option value="dormManager"${userType==2?'selected':''}>宿舍管理员</option>
          							    <option value="student"${userType==3?'selected':''}>学生</option>
        						</select>
                </select>
            </div>
        </div>
          <font  color="red">${message}</font>
        <div class="form-group"><!-- onclick="location.href='index.html'" -->
          <button class="btn btn-block btn-primary" type="submit" id="login" id="tijiao" onclick="checkForm()" value="登录" >立即登录</button>
        </div>
      </form>
      
      <footer class="col-sm-12 text-center">
      </footer>
    </div>
  </div>
</div>


</body>
</html>
package com.demo.web;

import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.sql.Connection;
import java.util.List;

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

import com.demo.bean.Admin;
import com.demo.bean.Dorm;
import com.demo.bean.DormManager;
import com.demo.bean.Student;
import com.demo.dao.DormDao;
import com.demo.dao.UserDao;
import com.demo.util.DbUtil;
import com.demo.util.MD5Util;
/**
 * 登陆验证
 * 
 *
 */
public class LoginServlet extends HttpServlet {

	
	private static final long serialVersionUID = 1L;

	DbUtil dbUtil = new DbUtil();
	UserDao userDao = new UserDao();
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		HttpSession session = request.getSession();
		String userName = request.getParameter("userName");
		String password = null;
		password=request.getParameter("password");
		
		try {
			password = MD5Util.EncoderPwdByMD5(request.getParameter("password"));
		} catch (NoSuchAlgorithmException e1) {
			e1.printStackTrace();
		}
//		System.out.println(password);
		String remember = request.getParameter("remember");
//		System.out.println("remember"+remember);
		String userType = request.getParameter("userType");
		
		Connection con = null;
		try {
			con=dbUtil.getCon();
			Admin currentAdmin = null;
			DormManager currentDormManager = null;
			Student currentStudent = null;
			//系统管理员
			if("admin".equals(userType)) {
				Admin admin = new Admin(userName, password);
				currentAdmin = userDao.Login(con, admin);
				if(currentAdmin == null) {
					request.setAttribute("admin", admin);
					request.setAttribute("error", "用户名或密码错误");
					request.getRequestDispatcher("login.jsp").forward(request, response);
				} else {
					if("remember-me".equals(remember)) {
						rememberMe(userName, password, userType,response);
					} else {
						deleteCookie(userName, request, response);
					}
					session.setAttribute("currentUserType", "admin");
					session.setAttribute("currentUser", currentAdmin);
					request.setAttribute("mainPage", "admin/blank.jsp");
					request.getRequestDispatcher("mainAdmin.jsp").forward(request, response);
				}
				//宿舍管理员
			} else if("dormManager".equals(userType)) {
				DormManager dormManager = new DormManager(userName, password);
				currentDormManager = userDao.Login(con, dormManager);
				if(currentDormManager == null) {
					request.setAttribute("dormManager", dormManager);
					request.setAttribute("error", "用户名或密码错误");
					request.getRequestDispatcher("login.jsp").forward(request, response);
				} else {
					if("remember-me".equals(remember)) {
						rememberMe(userName, password, userType,response);
					} else {
						deleteCookie(userName, request, response);
					}
					DormDao dormDao = new DormDao();
					List<Dorm> dormlist = dormDao.dormList(con, currentDormManager.getDormBuildId());
					session.setAttribute("dormlist", dormlist);
					session.setAttribute("buildid", currentDormManager.getDormBuildId());
					session.setAttribute("currentUserType", "dormManager");
					session.setAttribute("currentUser", currentDormManager);
					request.setAttribute("mainPage", "dormManager/blank.jsp");
					request.getRequestDispatcher("mainManager.jsp").forward(request, response);
				}
				//学生
			} else if("student".equals(userType)) {
				Student student = new Student(userName, password);
				currentStudent = userDao.Login(con, student);
				if(currentStudent == null) {
					request.setAttribute("student", student);
					request.setAttribute("error", "用户名或密码错误");
					request.getRequestDispatcher("login.jsp").forward(request, response);
				} else {
					if("remember-me".equals(remember)) {
						rememberMe(userName, password, userType,response);
					} else {
						deleteCookie(userName, request, response);
					}
					session.setAttribute("currentUserType", "student");
					session.setAttribute("currentUser", currentStudent);
					request.setAttribute("mainPage", "student/blank.jsp");
					request.getRequestDispatcher("mainStudent.jsp").forward(request, response);
				}
			} 
			
		} catch(Exception e) {
			e.printStackTrace();
		} finally {
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	private void rememberMe(String userName, String password, String userType, HttpServletResponse response) {
		Cookie user = new Cookie("dormuser", userName+"-"+password+"-"+userType+"-"+"yes");
		user.setMaxAge(1*60*60*24*7);
		response.addCookie(user);
	}
	
	private void deleteCookie(String userName, HttpServletRequest request, HttpServletResponse response) {
		Cookie[] cookies=request.getCookies();
		for(int i=0;cookies!=null && i<cookies.length;i++){
			if(cookies[i].getName().equals("dormuser")){
				if(userName.equals(userName=cookies[i].getValue().split("-")[0])) {
					Cookie cookie = new Cookie(cookies[i].getName(), null);
					cookie.setMaxAge(0);
					response.addCookie(cookie);
					break;
				}
			}
		}
	}
}


非开源!!!!!!
项目截图中的数据,很多是用来测试的,需求自行添加合适的数据图片

喜欢的朋友的点赞加关注,感兴趣的同学可以研究!!!!!
感谢  = v =
 

  • 14
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
以下是使用Java Web和MySQL数据库实现增删改查的步骤: 1.创建数据库和表 首先,需要在MySQL数据库中创建一个数据库和一个表。例如,创建一个名为“test”的数据库和一个名为“users”的表,其中包含id、name和age三个字段。 2.创建Java Web项目 使用IDE(如Eclipse或IntelliJ IDEA)创建一个Java Web项目,并添加MySQL数据库驱动程序(如mysql-connector-java-5.1.47.jar)到项目的lib文件夹。 3.创建实体类 创建一个名为“User”的Java类,该类包含id、name和age三个属性,并生成getter和setter方法。 4.创建DAO类 创建一个名为“UserDao”的Java类,该类包含对数据库进行增删改查操作的方法。例如,添加一个名为“addUser”的方法,该方法将一个User对象添加到数据库中。 ```java public class UserDao { private Connection conn; public UserDao(Connection conn) { this.conn = conn; } public void addUser(User user) throws SQLException { String sql = "INSERT INTO users (name, age) VALUES (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, user.getName()); pstmt.setInt(2, user.getAge()); pstmt.executeUpdate(); } } ``` 5.创建Servlet类 创建一个名为“UserServlet”的Java类,该类包含处理HTTP请求的方法,并使用UserDao类执行数据库操作。例如,添加一个名为“addUser”的方法,该方法从HTTP请求中获取用户输入的数据,并将其添加到数据库中。 ```java public class UserServlet extends HttpServlet { private UserDao userDao; public void init() { String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, user, password); userDao = new UserDao(conn); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); int age = Integer.parseInt(request.getParameter("age")); User user = new User(); user.setName(name); user.setAge(age); try { userDao.addUser(user); response.sendRedirect("list.jsp"); } catch (SQLException e) { e.printStackTrace(); } } } ``` 6.创建JSP页面 创建一个名为“list.jsp”的JSP页面,该页面显示从数据库中检索的用户数据。例如,使用UserDao类的“getUserList”方法检索数据库中的所有用户,并在JSP页面中显示它们。 ```java <%@ page contentType="text/html; charset=UTF-8" language="java" %> <%@ page import="java.util.List" %> <%@ page import="javax.servlet.http.*" %> <%@ page import="javax.servlet.*" %> <%@ page import="java.sql.*" %> <%@ page import="User" %> <%@ page import="UserDao" %> <% String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, user, password); UserDao userDao = new UserDao(conn); List<User> userList = userDao.getUserList(); %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>User List</title> </head> <body> <table> <tr> <th>ID</th> <th>Name</th> <th>Age</th> </tr> <% for (User user : userList) { %> <tr> <td><%= user.getId() %></td> <td><%= user.getName() %></td> <td><%= user.getAge() %></td> </tr> <% } %> </table> </body> </html> <% } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } %> ``` 7.部署和运行 将Java Web项目部署到Tomcat服务器上,并在浏览器中访问“http://localhost:8080/user/add”页面,以添加一个新的用户。然后访问“http://localhost:8080/user/list”页面,以检索并显示所有用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码盗_java_bishe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值