宿舍管理系统数据库sql语句
/*
SQLyog 企业版 - MySQL GUI v8.14
MySQL - 6.0.11-alpha-community : Database - db_dorm
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`db_dorm` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `db_dorm`;
/*Table structure for table `t_admin` */
DROP TABLE IF EXISTS `t_admin`;
CREATE TABLE `t_admin` (
`adminId` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(20) DEFAULT NULL,
`password` varchar(20) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`sex` varchar(10) DEFAULT NULL,
`tel` varchar(20) DEFAULT NULL,
PRIMARY KEY (`adminId`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*Data for the table `t_admin` */
insert into `t_admin`(`adminId`,`userName`,`password`,`name`,`sex`,`tel`) values (1,'admin','111','Lero','男','123');
/*Table structure for table `t_dorm` */
DROP TABLE IF EXISTS `t_dorm`;
CREATE TABLE `t_dorm` (
`dormId` int(11) NOT NULL AUTO_INCREMENT,
`dormBuildId` int(11) DEFAULT NULL,
`dormName` varchar(20) DEFAULT NULL,
`dormType` varchar(20) DEFAULT NULL,
`dormNumber` int(11) DEFAULT NULL,
`dormTel` varchar(20) DEFAULT NULL,
PRIMARY KEY (`dormId`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*Data for the table `t_dorm` */
insert into `t_dorm`(`dormId`,`dormBuildId`,`dormName`,`dormType`,`dormNumber`,`dormTel`) values (1,1,'220','男',6,'110');
/*Table structure for table `t_dormbuild` */
DROP TABLE IF EXISTS `t_dormbuild`;
CREATE TABLE `t_dormbuild` (
`dormBuildId` int(11) NOT NULL AUTO_INCREMENT,
`dormBuildName` varchar(20) DEFAULT NULL,
`dormBuildDetail` varchar(50) DEFAULT NULL,
PRIMARY KEY (`dormBuildId`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
/*Data for the table `t_dormbuild` */
insert into `t_dormbuild`(`dormBuildId`,`dormBuildName`,`dormBuildDetail`) values (1,'1栋','这是一栋。。。'),(4,'2栋','这是2栋'),(5,'3栋',''),(6,'4栋',''),(7,'5栋',''),(8,'6栋','');
/*Table structure for table `t_dormmanager` */
DROP TABLE IF EXISTS `t_dormmanager`;
CREATE TABLE `t_dormmanager` (
`dormManId` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(20) DEFAULT NULL,
`password` varchar(20) DEFAULT NULL,
`dormBuildId` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`sex` varchar(20) DEFAULT NULL,
`tel` varchar(20) DEFAULT NULL,
PRIMARY KEY (`dormManId`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
/*Data for the table `t_dormmanager` */
insert into `t_dormmanager`(`dormManId`,`userName`,`password`,`dormBuildId`,`name`,`sex`,`tel`) values (2,'manager2','123',4,'小张','男','123'),(3,'manager3','123',1,'小李','女','123'),(4,'manager4','123',5,'小陈','男','123'),(5,'manager5','123',NULL,'小宋','男','123'),(7,'manager6','123',NULL,'呵呵 ','女','123'),(8,'manager1','123',6,'小白','男','123'),(9,'manager7','123',7,'哈哈','女','123');
/*Table structure for table `t_record` */
DROP TABLE IF EXISTS `t_record`;
CREATE TABLE `t_record` (
`recordId` int(11) NOT NULL AUTO_INCREMENT,
`studentNumber` varchar(20) DEFAULT NULL,
`studentName` varchar(30) DEFAULT NULL,
`dormBuildId` int(11) DEFAULT NULL,
`dormName` varchar(11) DEFAULT NULL,
`date` date DEFAULT NULL,
`detail` varchar(50) DEFAULT NULL,
PRIMARY KEY (`recordId`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
/*Data for the table `t_record` */
insert into `t_record`(`recordId`,`studentNumber`,`studentName`,`dormBuildId`,`dormName`,`date`,`detail`) values (1,'002','李四',4,'120','2014-01-01','123'),(3,'007','测试1',1,'221','2014-08-11','123'),(4,'005','赵起',4,'220','2014-08-12','...'),(5,'006','王珂珂',4,'111','2014-08-12','00'),(6,'004','李进',6,'220','2014-08-12','....'),(7,'004','李进',6,'220','2014-08-12','22');
/*Table structure for table `t_student` */
DROP TABLE IF EXISTS `t_student`;
CREATE TABLE `t_student` (
`studentId` int(11) NOT NULL AUTO_INCREMENT,
`stuNum` varchar(20) DEFAULT NULL,
`password` varchar(20) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`dormBuildId` int(11) DEFAULT NULL,
`dormName` varchar(11) DEFAULT NULL,
`sex` varchar(10) DEFAULT NULL,
`tel` varchar(15) DEFAULT NULL,
PRIMARY KEY (`studentId`)
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8;
/*Data for the table `t_student` */
insert into `t_student`(`studentId`,`stuNum`,`password`,`name`,`dormBuildId`,`dormName`,`sex`,`tel`) values (2,'002','123','李四',4,'120','男','32'),(3,'003','123','王五',5,'201','男','2'),(4,'004','123','李进',6,'220','女','1'),(5,'005','123','赵起',4,'220','女','123'),(6,'006','123','王珂珂',4,'111','女','111'),(9,'007','123','测试1',1,'221','男','123'),(28,'001','123','测试1',1,'111','男','123'),(29,'008','123','测试3',6,'123','男','123'),(30,'009','123','测试4',5,'123','男','123'),(31,'010','123','小强',4,'222','男','111');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
Servlet执行流程
宿舍管理系统使用了三层架构
MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
View(视图) - 视图代表模型包含的数据的可视化。
Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
宿舍管理系统执行流程
Servlet—>Service—>Dao
主要用到的jar包
jstl.jar,mysql-connector-java-3.1.12-bin.jar,standard.jar
.数据库配置和主要 后台页面
dorm.properties
dbUrl=jdbc:mysql://localhost:3306/db_dorm?useUnicode=true&characterEncoding=UTF8
dbUserName=root
dbPassword=root
jdbcName=com.mysql.jdbc.Driver
pageSize=5
login.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="com.xiao.pojo.Admin" %>
<%@ page import="com.xiao.pojo.DormManager" %>
<%@ page import="com.xiao.pojo.Student" %>
<%
if(request.getAttribute("user")==null){
String userName=null;
String password=null;
String userType=null;
String remember=null;
Cookie[] cookies=request.getCookies();
for(int i=0;cookies!=null && i<cookies.length;i++){
if(cookies[i].getName().equals("dormuser")){
userName=cookies[i].getValue().split("-")[0];
password=cookies[i].getValue().split("-")[1];
userType=cookies[i].getValue().split("-")[2];
remember=cookies[i].getValue().split("-")[3];
}
}
if(userName==null){
userName="";
}
if(password==null){
password="";
}
if(userType==null){
userType="";
} else if("admin".equals(userType)){
pageContext.setAttribute("user", new Admin(userName,password));
pageContext.setAttribute("userType", 1);
} else if("dormManager".equals(userType)) {
pageContext.setAttribute("user", new DormManager(userName,password));
pageContext.setAttribute("userType", 2);
} else if("student".equals(userType)) {
pageContext.setAttribute("user", new Student(userName,password));
pageContext.setAttribute("userType", 3);
}
if("yes".equals(remember)) {
pageContext.setAttribute("remember", 1);
}
}
%>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>宿舍管理系统登录</title>
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
<script src="${pageContext.request.contextPath}/bootstrap/js/jQuery.js"></script>
<script src="${pageContext.request.contextPath}/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript">
function checkForm() {
var userName = document.getElementById("userName").value;
var password = document.getElementById("password").value;
var userTypes = document.getElementsByName("userType");
var userType = null;
for(var i=0;i<userTypes.length;i++) {
if(userTypes[i].checked) {
userType=userTypes[i].value;
break;
}
}
if (userName == null || userName == "") {
document.getElementById("error").innerHTML = "用户名不能为空";
return false;
}
if (password == null || password == "") {
document.getElementById("error").innerHTML = "密码不能为空";
return false;
}
if (userType == null || userType == "") {
document.getElementById("error").innerHTML = "请选择用户类型";
return false;
}
return true;
}
</script>
<style type="text/css">
body {
padding-top: 200px;
padding-bottom: 40px;
background-image: url('images/bg.jpg');
background-position: center;
background-repeat: no-repeat;
background-attachment: fixed;
}
.radio {
padding-top: 10px;
padding-bottom:10px;
}
.form-signin-heading{
text-align: center;
}
.form-signin {
max-width: 300px;
padding: 19px 29px 0px;
margin: 0 auto 20px;
background-color: #fff;
border: 1px solid #e5e5e5;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
box-shadow: 0 1px 2px rgba(0,0,0,.05);
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin input[type="text"],
.form-signin input[type="password"] {
font-size: 16px;
height: auto;
margin-bottom: 15px;
padding: 7px 9px;
}
</style>
</head>
<body>
<div class="container">
<form name="myForm" class="form-signin" action="login" method="post" onsubmit="return checkForm()">
<h2 class="form-signin-heading"><font color="gray">宿舍管理系统</font></h2>
<input id="userName" name="userName" value="${user.userName }" type="text" class="input-block-level" placeholder="用户名...">
<input id="password" name="password" value="${user.password }" type="password" class="input-block-level" placeholder="密码..." >
<label class="radio inline">
<input id="admin" type="radio" name="userType" value="admin" checked/> 系统管理员
</label>
<label class="radio inline">
<input id="dormManager" type="radio" name="userType" value="dormManager" ${userType==2?'checked':''} /> 宿舍管理员
</label>
<label class="radio inline">
<input id="student" type="radio" name="userType" value="student" ${userType==3?'checked':''}/> 学生
</label>
<label class="checkbox">
<input id="remember" name="remember" type="checkbox" value="remember-me" ${remember==1?'checked':''}>记住我 <font id="error" color="red">${error }</font>
</label>
<button class="btn btn-large btn-primary" type="submit">登录</button>
<button class="btn btn-large btn-primary" type="button" >重置</button>
<p align="center" style="padding-top: 15px;">版权所有 xiaoxiao <a href="http://www.lero.com" target="_blank">http://www.lero.com</a></p>
</form>
</div>
</body>
</html>
mainAdmin
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="com.xiao.pojo.Admin" %>
<%@ page import="com.xiao.pojo.DormManager" %>
<%@ page import="com.xiao.pojo.Student" %>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>宿舍管理系统</title>
<link href="${pageContext.request.contextPath}/style/dorm.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap-datetimepicker-master/css/bootstrap-datetimepicker.min.css" rel="stylesheet" media="screen">
<link rel="stylesheet" type="text/css" href="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/dataTables.bootstra.css">
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/jquery.js"></script>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/jquery.dataTables.js"></script>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/bootstrap.min.js"></script>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/dataTables.bootstrap.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/bootstrap-datetimepicker-master/js/bootstrap-datetimepicker.js" charset="UTF-8"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/bootstrap-datetimepicker-master/js/locales/bootstrap-datetimepicker.fr.js" charset="UTF-8"></script>
<script src="${pageContext.request.contextPath}/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#DataTables_Table_0_wrapper .row-fluid").remove();
});
</script>
<style type="text/css">
.bs-docs-sidenav {
background-color: #fff;
border-radius: 6px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.067);
padding: 0;
width: 228px;
}
.bs-docs-sidenav > li > a {
border: 1px solid #e5e5e5;
display: block;
padding: 8px 14px;
margin: 0 0 -1px;
}
.bs-docs-sidenav > li:first-child > a {
border-radius: 6px 6px 0 0;
}
.bs-docs-sidenav > li:last-child > a {
border-radius: 0 0 6px 6px;
}
.bs-docs-sidenav > .active > a {
border: 0 none;
box-shadow: 1px 0 0 rgba(0, 0, 0, 0.1) inset, -1px 0 0 rgba(0, 0, 0, 0.1) inset;
padding: 9px 15px;
position: relative;
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.15);
z-index: 2;
}
.bs-docs-sidenav .icon-chevron-right {
float: right;
margin-right: -6px;
margin-top: 2px;
opacity: 0.25;
}
.bs-docs-sidenav > li > a:hover {
background-color: #f5f5f5;
}
.bs-docs-sidenav a:hover .icon-chevron-right {
opacity: 0.5;
}
.bs-docs-sidenav .active .icon-chevron-right, .bs-docs-sidenav .active a:hover .icon-chevron-right {
background-image: url("../img/glyphicons-halflings-white.png");
opacity: 1;
}
</style>
</head>
<body>
<div class="container-fluid" style="padding-right: 0px;padding-left: 0px;">
<div region="north" style="height: 100px;background-image: url('images/bg.jpg')">
<div align="left" style="width: 80%;height:100px ;float: left;padding-top: 40px;padding-left: 30px;" ><font color="white" size="6" >宿舍管理系统</font></div>
<div style="padding-top: 70px;padding-right: 20px;">当前用户: <font color="red" >${currentUser.userName }</font></div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span2 bs-docs-sidebar" >
<ul class="nav nav-list bs-docs-sidenav">
<li><a href="blank"><i class="icon-chevron-right"></i>首页</a></li>
<li><a href="dormManager?action=list"><i class="icon-chevron-right"></i>宿舍管理员管理</a></li>
<li><a href="student?action=list"><i class="icon-chevron-right"></i>学生管理</a></li>
<li><a href="dormBuild?action=list"><i class="icon-chevron-right"></i>宿舍楼管理</a></li>
<li><a href="record?action=list"><i class="icon-chevron-right"></i>缺勤记录</a></li>
<li><a href="password?action=preChange"><i class="icon-chevron-right"></i>修改密码</a></li>
<li><a href="login.jsp"><i class="icon-chevron-right"></i>退出系统</a></li>
</ul>
</div>
<div class="span10">
<jsp:include page="${mainPage==null?'admin/blank.jsp':mainPage}"></jsp:include>
</div>
</div>
</div>
</body>
</html>
mainManager.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="com.xiao.pojo.Admin" %>
<%@ page import="com.xiao.pojo.DormManager" %>
<%@ page import="com.xiao.pojo.Student" %>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>宿舍管理系统</title>
<link href="${pageContext.request.contextPath}/style/dorm.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap-datetimepicker-master/css/bootstrap-datetimepicker.min.css" rel="stylesheet" media="screen">
<link rel="stylesheet" type="text/css" href="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/dataTables.bootstra.css">
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/jquery.js"></script>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/jquery.dataTables.js"></script>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/bootstrap.min.js"></script>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/dataTables.bootstrap.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/bootstrap-datetimepicker-master/js/bootstrap-datetimepicker.js" charset="UTF-8"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/bootstrap-datetimepicker-master/js/locales/bootstrap-datetimepicker.fr.js" charset="UTF-8"></script>
<script src="${pageContext.request.contextPath}/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#DataTables_Table_0_wrapper .row-fluid").remove();
});
</script>
<style type="text/css">
.bs-docs-sidenav {
background-color: #fff;
border-radius: 6px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.067);
padding: 0;
width: 228px;
}
.bs-docs-sidenav > li > a {
border: 1px solid #e5e5e5;
display: block;
padding: 8px 14px;
margin: 0 0 -1px;
}
.bs-docs-sidenav > li:first-child > a {
border-radius: 6px 6px 0 0;
}
.bs-docs-sidenav > li:last-child > a {
border-radius: 0 0 6px 6px;
}
.bs-docs-sidenav > .active > a {
border: 0 none;
box-shadow: 1px 0 0 rgba(0, 0, 0, 0.1) inset, -1px 0 0 rgba(0, 0, 0, 0.1) inset;
padding: 9px 15px;
position: relative;
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.15);
z-index: 2;
}
.bs-docs-sidenav .icon-chevron-right {
float: right;
margin-right: -6px;
margin-top: 2px;
opacity: 0.25;
}
.bs-docs-sidenav > li > a:hover {
background-color: #f5f5f5;
}
.bs-docs-sidenav a:hover .icon-chevron-right {
opacity: 0.5;
}
.bs-docs-sidenav .active .icon-chevron-right, .bs-docs-sidenav .active a:hover .icon-chevron-right {
background-image: url("../img/glyphicons-halflings-white.png");
opacity: 1;
}
</style>
</head>
<body>
<div class="container-fluid" style="padding-right: 0px;padding-left: 0px;">
<div region="north" style="height: 100px;background-image: url('images/bg.jpg')">
<div align="left" style="width: 80%;height:100px ;float: left;padding-top: 40px;padding-left: 30px;" ><font color="white" size="6" >宿舍管理系统</font></div>
<div style="padding-top: 70px;padding-right: 20px;">当前用户: <font color="red" >${currentUser.userName }</font></div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span2 bs-docs-sidebar" >
<ul class="nav nav-list bs-docs-sidenav">
<li><a href="blank"><i class="icon-chevron-right"></i>首页</a></li>
<li><a href="student?action=list"><i class="icon-chevron-right"></i>学生查看</a></li>
<li><a href="record?action=list"><i class="icon-chevron-right"></i>缺勤记录</a></li>
<li><a href="password?action=preChange"><i class="icon-chevron-right"></i>修改密码</a></li>
<li><a href="login.jsp"><i class="icon-chevron-right"></i>退出系统</a></li>
</ul>
</div>
<div class="span10">
<jsp:include page="${mainPage==null?'admin/blank.jsp':mainPage}"></jsp:include>
</div>
</div>
</div>
</body>
</html>
mainStudnet.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="com.xiao.pojo.Admin" %>
<%@ page import="com.xiao.pojo.DormManager" %>
<%@ page import="com.xiao.pojo.Student" %>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>宿舍管理系统</title>
<link href="${pageContext.request.contextPath}/style/dorm.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
<link href="${pageContext.request.contextPath}/bootstrap-datetimepicker-master/css/bootstrap-datetimepicker.min.css" rel="stylesheet" media="screen">
<link rel="stylesheet" type="text/css" href="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/dataTables.bootstra.css">
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/jquery.js"></script>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/jquery.dataTables.js"></script>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/bootstrap.min.js"></script>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/238/n8vhm36h/dataTables.bootstrap.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/bootstrap-datetimepicker-master/js/bootstrap-datetimepicker.js" charset="UTF-8"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/bootstrap-datetimepicker-master/js/locales/bootstrap-datetimepicker.fr.js" charset="UTF-8"></script>
<script src="${pageContext.request.contextPath}/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#DataTables_Table_0_wrapper .row-fluid").remove();
});
</script>
<style type="text/css">
.bs-docs-sidenav {
background-color: #fff;
border-radius: 6px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.067);
padding: 0;
width: 228px;
}
.bs-docs-sidenav > li > a {
border: 1px solid #e5e5e5;
display: block;
padding: 8px 14px;
margin: 0 0 -1px;
}
.bs-docs-sidenav > li:first-child > a {
border-radius: 6px 6px 0 0;
}
.bs-docs-sidenav > li:last-child > a {
border-radius: 0 0 6px 6px;
}
.bs-docs-sidenav > .active > a {
border: 0 none;
box-shadow: 1px 0 0 rgba(0, 0, 0, 0.1) inset, -1px 0 0 rgba(0, 0, 0, 0.1) inset;
padding: 9px 15px;
position: relative;
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.15);
z-index: 2;
}
.bs-docs-sidenav .icon-chevron-right {
float: right;
margin-right: -6px;
margin-top: 2px;
opacity: 0.25;
}
.bs-docs-sidenav > li > a:hover {
background-color: #f5f5f5;
}
.bs-docs-sidenav a:hover .icon-chevron-right {
opacity: 0.5;
}
.bs-docs-sidenav .active .icon-chevron-right, .bs-docs-sidenav .active a:hover .icon-chevron-right {
background-image: url("../img/glyphicons-halflings-white.png");
opacity: 1;
}
</style>
</head>
<body>
<div class="container-fluid" style="padding-right: 0px;padding-left: 0px;">
<div region="north" style="height: 100px;background-image: url('images/bg.jpg')">
<div align="left" style="width: 80%;height:100px ;float: left;padding-top: 40px;padding-left: 30px;" ><font color="white" size="6" >宿舍管理系统</font></div>
<div style="padding-top: 70px;padding-right: 20px;">当前用户: <font color="red" >${currentUser.userName }</font></div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span2 bs-docs-sidebar" >
<ul class="nav nav-list bs-docs-sidenav">
<li><a href="blank"><i class="icon-chevron-right"></i>首页</a></li>
<li><a href="student?action=list"><i class="icon-chevron-right"></i>学生查看</a></li>
<li><a href="record?action=list"><i class="icon-chevron-right"></i>缺勤记录</a></li>
<li><a href="password?action=preChange"><i class="icon-chevron-right"></i>修改密码</a></li>
<li><a href="login.jsp"><i class="icon-chevron-right"></i>退出系统</a></li>
</ul>
</div>
<div class="span10">
<jsp:include page="${mainPage==null?'admin/blank.jsp':mainPage}"></jsp:include>
</div>
</div>
</div>
</body>
</html>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>DormManage</display-name>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.xiao.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>loginServlet</servlet-name>
<servlet-class>com.xiao.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>blankServlet</servlet-name>
<servlet-class>com.xiao.servlet.BlankServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>blankServlet</servlet-name>
<url-pattern>/blank</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>dormBuildServlet</servlet-name>
<servlet-class>com.xiao.servlet.DormBuildServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dormBuildServlet</servlet-name>
<url-pattern>/dormBuild</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>dormManagerServlet</servlet-name>
<servlet-class>com.xiao.servlet.DormManagerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dormManagerServlet</servlet-name>
<url-pattern>/dormManager</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>studentServlet</servlet-name>
<servlet-class>com.xiao.servlet.StudentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>studentServlet</servlet-name>
<url-pattern>/student</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>recordServlet</servlet-name>
<servlet-class>com.xiao.servlet.RecordServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>recordServlet</servlet-name>
<url-pattern>/record</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>passwordServlet</servlet-name>
<servlet-class>com.xiao.servlet.PasswordServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>passwordServlet</servlet-name>
<url-pattern>/password</url-pattern>
</servlet-mapping>
</web-app>
Servlet层
BlankServlet.java
package com.xiao.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class BlankServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
@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 {
HttpSession session = request.getSession();
Object currentUserType = session.getAttribute("currentUserType");
if("admin".equals((String)currentUserType)) {
request.setAttribute("mainPage", "admin/blank.jsp");
request.getRequestDispatcher("mainAdmin.jsp").forward(request, response);
} else if("dormManager".equals((String)currentUserType)) {
request.setAttribute("mainPage", "dormManager/blank.jsp");
request.getRequestDispatcher("mainManager.jsp").forward(request, response);
} else if("student".equals((String)currentUserType)) {
request.setAttribute("mainPage", "student/blank.jsp");
request.getRequestDispatcher("mainStudent.jsp").forward(request, response);
}
}
}
DormBuildServlet.java
package com.xiao.servlet;
import java.io.IOException;
import java.sql.Connection;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.xiao.pojo.DormBuild;
import com.xiao.pojo.DormManager;
import com.xiao.pojo.PageBean;
import com.xiao.service.DormBuildService;
import com.xiao.service.impl.DormBuildServiceImpl;
import com.xiao.util.DbUtil;
import com.xiao.util.PropertiesUtil;
import com.xiao.util.StringUtil;
public class DormBuildServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil = new DbUtil();
DormBuildService dormBuildService=new DormBuildServiceImpl();
@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 s_dormBuildName = request.getParameter("s_dormBuildName");
String page = request.getParameter("page");
String action = request.getParameter("action");
DormBuild dormBuild = new DormBuild();
if("preSave".equals(action)) {
dormBuildPreSave(request, response);
return;
} else if("save".equals(action)){
dormBuildSave(request, response);
return;
} else if("delete".equals(action)){
dormBuildDelete(request, response);
return;
} else if("manager".equals(action)){
dormBuildManager(request, response);
return;
} else if("addManager".equals(action)){
dormBuildAddManager(request, response);
} else if("move".equals(action)){
managerMove(request, response);
} else if("list".equals(action)) {
if(StringUtil.isNotEmpty(s_dormBuildName)) {
dormBuild.setDormBuildName(s_dormBuildName);
}
session.removeAttribute("s_dormBuildName");
request.setAttribute("s_dormBuildName", s_dormBuildName);
} else if("search".equals(action)){
if(StringUtil.isNotEmpty(s_dormBuildName)) {
dormBuild.setDormBuildName(s_dormBuildName);
session.setAttribute("s_dormBuildName", s_dormBuildName);
}else {
session.removeAttribute("s_dormBuildName");
}
} else {
if(StringUtil.isNotEmpty(s_dormBuildName)) {
dormBuild.setDormBuildName(s_dormBuildName);
session.setAttribute("s_dormBuildName", s_dormBuildName);
}
if(StringUtil.isEmpty(s_dormBuildName)) {
Object o = session.getAttribute("s_dormBuildName");
if(o!=null) {
dormBuild.setDormBuildName((String)o);
}
}
}
if(StringUtil.isEmpty(page)) {
page="1";
}
Connection con = null;
PageBean pageBean = new PageBean(Integer.parseInt(page), Integer.parseInt(PropertiesUtil.getValue("pageSize")));
request.setAttribute("pageSize", pageBean.getPageSize());
request.setAttribute("page", pageBean.getPage());
try {
con=dbUtil.getCon();
List<DormBuild> dormBuildList = dormBuildService.dormBuildList(con, pageBean, dormBuild);
int total=dormBuildService.dormBuildCount(con, dormBuild);
String pageCode = this.genPagation(total, Integer.parseInt(page), Integer.parseInt(PropertiesUtil.getValue("pageSize")));
request.setAttribute("pageCode", pageCode);
request.setAttribute("dormBuildList", dormBuildList);
request.setAttribute("mainPage", "admin/dormBuild.jsp");
request.getRequestDispatcher("mainAdmin.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void managerMove(HttpServletRequest request,
HttpServletResponse response) {
String dormBuildId = request.getParameter("dormBuildId");
String dormManagerId = request.getParameter("dormManagerId");
Connection con = null;
try {
con = dbUtil.getCon();
dormBuildService.managerUpdateWithId(con, dormManagerId, "0");
request.getRequestDispatcher("dormBuild?action=manager&dormBuildId="+dormBuildId).forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
private void dormBuildAddManager(HttpServletRequest request,
HttpServletResponse response) {
String dormBuildId = request.getParameter("dormBuildId");
String dormManagerId = request.getParameter("dormManagerId");
Connection con = null;
try {
con = dbUtil.getCon();
dormBuildService.managerUpdateWithId(con, dormManagerId, dormBuildId);
request.getRequestDispatcher("dormBuild?action=manager&dormBuildId="+dormBuildId).forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
private void dormBuildManager(HttpServletRequest request,
HttpServletResponse response) {
String dormBuildId = request.getParameter("dormBuildId");
Connection con = null;
try {
con = dbUtil.getCon();
List<DormManager> managerListWithId = dormBuildService.dormManWithBuildId(con, dormBuildId);
List<DormManager> managerListToSelect = dormBuildService.dormManWithoutBuild(con);
request.setAttribute("dormBuildId", dormBuildId);
request.setAttribute("managerListWithId", managerListWithId);
request.setAttribute("managerListToSelect", managerListToSelect);
request.setAttribute("mainPage", "admin/selectManager.jsp");
request.getRequestDispatcher("mainAdmin.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
private void dormBuildDelete(HttpServletRequest request,
HttpServletResponse response) {
String dormBuildId = request.getParameter("dormBuildId");
Connection con = null;
try {
con = dbUtil.getCon();
if(dormBuildService.existManOrDormWithId(con, dormBuildId)) {
request.setAttribute("error", "宿舍楼下有宿舍或宿管,不能删除该宿舍楼");
} else {
dormBuildService.dormBuildDelete(con, dormBuildId);
}
request.getRequestDispatcher("dormBuild?action=list").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void dormBuildSave(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
String dormBuildId = request.getParameter("dormBuildId");
String dormBuildName = request.getParameter("dormBuildName");
String detail = request.getParameter("detail");
DormBuild dormBuild = new DormBuild(dormBuildName, detail);
if(StringUtil.isNotEmpty(dormBuildId)) {
dormBuild.setDormBuildId(Integer.parseInt(dormBuildId));
}
Connection con = null;
try {
con = dbUtil.getCon();
int saveNum = 0;
if(StringUtil.isNotEmpty(dormBuildId)) {
saveNum = dormBuildService.dormBuildUpdate(con, dormBuild);
} else {
saveNum = dormBuildService.dormBuildAdd(con, dormBuild);
}
if(saveNum > 0) {
request.getRequestDispatcher("dormBuild?action=list").forward(request, response);
} else {
request.setAttribute("dormBuild", dormBuild);
request.setAttribute("error", "保存失败");
request.setAttribute("mainPage", "dormBuild/dormBuildSave.jsp");
request.getRequestDispatcher("mainAdmin.jsp").forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void dormBuildPreSave(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
String dormBuildId = request.getParameter("dormBuildId");
if(StringUtil.isNotEmpty(dormBuildId)) {
Connection con = null;
try {
con = dbUtil.getCon();
DormBuild dormBuild = dormBuildService.dormBuildShow(con, dormBuildId);
request.setAttribute("dormBuild", dormBuild);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
request.setAttribute("mainPage", "admin/dormBuildSave.jsp");
request.getRequestDispatcher("mainAdmin.jsp").forward(request, response);
}
private String genPagation(int totalNum, int currentPage, int pageSize){
int totalPage = totalNum%pageSize==0?totalNum/pageSize:totalNum/pageSize+1;
StringBuffer pageCode = new StringBuffer();
pageCode.append("<li><a href='dormBuild?page=1'>首页</a></li>");
if(currentPage==1) {
pageCode.append("<li class='disabled'><a href='#'>上一页</a></li>");
}else {
pageCode.append("<li><a href='dormBuild?page="+(currentPage-1)+"'>上一页</a></li>");
}
for(int i=currentPage-2;i<=currentPage+2;i++) {
if(i<1||i>totalPage) {
continue;
}
if(i==currentPage) {
pageCode.append("<li class='active'><a href='#'>"+i+"</a></li>");
} else {
pageCode.append("<li><a href='dormBuild?page="+i+"'>"+i+"</a></li>");
}
}
if(currentPage==totalPage) {
pageCode.append("<li class='disabled'><a href='#'>下一页</a></li>");
} else {
pageCode.append("<li><a href='dormBuild?page="+(currentPage+1)+"'>下一页</a></li>");
}
pageCode.append("<li><a href='dormBuild?page="+totalPage+"'>尾页</a></li>");
return pageCode.toString();
}
}
DromManager.java
package com.xiao.servlet;
import java.io.IOException;
import java.sql.Connection;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.xiao.pojo.DormManager;
import com.xiao.pojo.PageBean;
import com.xiao.service.DormManagerService;
import com.xiao.service.impl.DormManagerServiceImpl;
import com.xiao.util.DbUtil;
import com.xiao.util.PropertiesUtil;
import com.xiao.util.StringUtil;
public class DormManagerServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil = new DbUtil();
DormManagerService dormManagerService=new DormManagerServiceImpl();
@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 s_dormManagerText = request.getParameter("s_dormManagerText");
String searchType = request.getParameter("searchType");
String page = request.getParameter("page");
String action = request.getParameter("action");
DormManager dormManager = new DormManager();
if("preSave".equals(action)) {
dormManagerPreSave(request, response);
return;
} else if("save".equals(action)){
dormManagerSave(request, response);
return;
} else if("delete".equals(action)){
dormManagerDelete(request, response);
return;
} else
if("list".equals(action)) {
if(StringUtil.isNotEmpty(s_dormManagerText)) {
if("name".equals(searchType)) {
dormManager.setName(s_dormManagerText);
} else if("userName".equals(searchType)) {
dormManager.setUserName(s_dormManagerText);
}
}
session.removeAttribute("s_dormManagerText");
session.removeAttribute("searchType");
request.setAttribute("s_dormManagerText", s_dormManagerText);
request.setAttribute("searchType", searchType);
} else if("search".equals(action)){
if (StringUtil.isNotEmpty(s_dormManagerText)) {
if ("name".equals(searchType)) {
dormManager.setName(s_dormManagerText);
} else if ("userName".equals(searchType)) {
dormManager.setUserName(s_dormManagerText);
}
session.setAttribute("searchType", searchType);
session.setAttribute("s_dormManagerText", s_dormManagerText);
} else {
session.removeAttribute("s_dormManagerText");
session.removeAttribute("searchType");
}
} else {
if(StringUtil.isNotEmpty(s_dormManagerText)) {
if("name".equals(searchType)) {
dormManager.setName(s_dormManagerText);
} else if("userName".equals(searchType)) {
dormManager.setUserName(s_dormManagerText);
}
session.setAttribute("searchType", searchType);
session.setAttribute("s_dormManagerText", s_dormManagerText);
}
if(StringUtil.isEmpty(s_dormManagerText)) {
Object o1 = session.getAttribute("s_dormManagerText");
Object o2 = session.getAttribute("searchType");
if(o1!=null) {
if("name".equals((String)o2)) {
dormManager.setName((String)o1);
} else if("userName".equals((String)o2)) {
dormManager.setUserName((String)o1);
}
}
}
}
if(StringUtil.isEmpty(page)) {
page="1";
}
Connection con = null;
PageBean pageBean = new PageBean(Integer.parseInt(page), Integer.parseInt(PropertiesUtil.getValue("pageSize")));
request.setAttribute("pageSize", pageBean.getPageSize());
request.setAttribute("page", pageBean.getPage());
try {
con=dbUtil.getCon();
List<DormManager> dormManagerList = dormManagerService.dormManagerList(con, pageBean, dormManager);
int total=dormManagerService.dormManagerCount(con, dormManager);
String pageCode = this.genPagation(total, Integer.parseInt(page), Integer.parseInt(PropertiesUtil.getValue("pageSize")));
request.setAttribute("pageCode", pageCode);
request.setAttribute("dormManagerList", dormManagerList);
request.setAttribute("mainPage", "admin/dormManager.jsp");
request.getRequestDispatcher("mainAdmin.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void dormManagerDelete(HttpServletRequest request,
HttpServletResponse response) {
String dormManagerId = request.getParameter("dormManagerId");
Connection con = null;
try {
con = dbUtil.getCon();
dormManagerService.dormManagerDelete(con, dormManagerId);
request.getRequestDispatcher("dormManager?action=list").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void dormManagerSave(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
String dormManagerId = request.getParameter("dormManagerId");
String userName = request.getParameter("userName");
String password = request.getParameter("password");
String name = request.getParameter("name");
String sex = request.getParameter("sex");
String tel = request.getParameter("tel");
DormManager dormManager = new DormManager(userName, password, name, sex, tel);
if(StringUtil.isNotEmpty(dormManagerId)) {
dormManager.setDormManagerId(Integer.parseInt(dormManagerId));
}
Connection con = null;
try {
con = dbUtil.getCon();
int saveNum = 0;
if(StringUtil.isNotEmpty(dormManagerId)) {
saveNum = dormManagerService.dormManagerUpdate(con, dormManager);
} else if(dormManagerService.haveManagerByUser(con, dormManager.getUserName())){
request.setAttribute("dormManager", dormManager);
request.setAttribute("error", "该用户名已存在");
request.setAttribute("mainPage", "admin/dormManagerSave.jsp");
request.getRequestDispatcher("mainAdmin.jsp").forward(request, response);
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
return;
} else {
saveNum = dormManagerService.dormManagerAdd(con, dormManager);
}
if(saveNum > 0) {
request.getRequestDispatcher("dormManager?action=list").forward(request, response);
} else {
request.setAttribute("dormManager", dormManager);
request.setAttribute("error", "保存失败");
request.setAttribute("mainPage", "dormManager/dormManagerSave.jsp");
request.getRequestDispatcher("mainAdmin.jsp").forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void dormManagerPreSave(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
String dormManagerId = request.getParameter("dormManagerId");
if(StringUtil.isNotEmpty(dormManagerId)) {
Connection con = null;
try {
con = dbUtil.getCon();
DormManager dormManager = dormManagerService.dormManagerShow(con, dormManagerId);
request.setAttribute("dormManager", dormManager);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
request.setAttribute("mainPage", "admin/dormManagerSave.jsp");
request.getRequestDispatcher("mainAdmin.jsp").forward(request, response);
}
private String genPagation(int totalNum, int currentPage, int pageSize){
int totalPage = totalNum%pageSize==0?totalNum/pageSize:totalNum/pageSize+1;
StringBuffer pageCode = new StringBuffer();
pageCode.append("<li><a href='dormManager?page=1'>首页</a></li>");
if(currentPage==1) {
pageCode.append("<li class='disabled'><a href='#'>上一页</a></li>");
}else {
pageCode.append("<li><a href='dormManager?page="+(currentPage-1)+"'>上一页</a></li>");
}
for(int i=currentPage-2;i<=currentPage+2;i++) {
if(i<1||i>totalPage) {
continue;
}
if(i==currentPage) {
pageCode.append("<li class='active'><a href='#'>"+i+"</a></li>");
} else {
pageCode.append("<li><a href='dormManager?page="+i+"'>"+i+"</a></li>");
}
}
if(currentPage==totalPage) {
pageCode.append("<li class='disabled'><a href='#'>下一页</a></li>");
} else {
pageCode.append("<li><a href='dormManager?page="+(currentPage+1)+"'>下一页</a></li>");
}
pageCode.append("<li><a href='dormManager?page="+totalPage+"'>尾页</a></li>");
return pageCode.toString();
}
}
LoginServlet.java
package com.xiao.servlet;
import java.io.IOException;
import java.sql.Connection;
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.xiao.pojo.Admin;
import com.xiao.pojo.DormManager;
import com.xiao.pojo.Student;
import com.xiao.service.UserService;
import com.xiao.service.impl.UserServiceImpl;
import com.xiao.util.DbUtil;
public class LoginServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil = new DbUtil();
UserService userDao = new UserServiceImpl();
@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 = request.getParameter("password");
String remember = request.getParameter("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);
}
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;
}
}
}
}
}