基于javaweb的JSP+Servlet校园宿舍管理系统(java+jsp+javaweb+mysql+ajax)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

390023012402

400023012402

410023012402

420023012402

基于javaweb的JSP+Servlet校园宿舍管理系统(java+jsp+javaweb+mysql+ajax)

一、项目简述

功能:宿舍管理员,最高管理员,学生三个身份,包括学 生管理,宿舍管理员管理,考勤管理,宿舍楼管理,缺勤 记录管理,个人信息修改等等功能。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术: JSP + Entity+ Servlet + html+ css + JavaScript + JQuery + Ajax 等等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
       super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("=========student.action=============");

//解决传递过来的中文乱码问题
request.setCharacterEncoding("utf-8");
String action = request.getParameter("action");
//获取学生id
String id = request.getParameter("id");
String disabled = request.getParameter("disabled");

//获取当前登录的用户
User user = (User) request.getSession().getAttribute("session_user");
Integer roleId = user.getRoleId();

DormBuildService buildService = new DormBuildServiceImpl();
UserService userService = new UserServiceImpl();

List<DormBuild> builds = new ArrayList<DormBuild>();
if(roleId.equals(0)) {
//如当前用户是超级管理员,他能将学生添加到所有的宿舍楼,查询所有宿舍楼
builds = buildService.findAll();
}else if(roleId.equals(1)) {
//如当前用户 为宿舍管理员,他只能添加学生到其管理的宿舍楼
builds = buildService.findByUserId(user.getId());
}
System.out.println("builds:"+builds);
request.setAttribute("builds", builds);


if(action != null & action.equals("list")) {
//查询学生在右侧展示
String dormBuildId = request.getParameter("dormBuildId");
String searchType = request.getParameter("searchType");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
			recordService.save(record);

response.sendRedirect(getServletContext().getContextPath()+"/record.action?action=list");
}else {
//没有添加的权限,跳转到添加页面
request.setAttribute("error", "您没有添加该学号学生缺勤记录的权限!");
request.setAttribute("mainRight", "/WEB-INF/jsp/recordAddOrUpdate.jsp");
request.getRequestDispatcher("/WEB-INF/jsp/main.jsp").forward(request, response);
}
}



}else if(action != null && action.equals("preUpdate")) {
//跳转到修改页面
Record record = recordService.findById(Integer.parseInt(id));
System.out.println("record:"+record);

//查看用户是否有修改考勤记录的权限
User user = userService.findStuCodeAndManager(record.getUser().getStuCode(),userCurr);
System.out.println("修改权限user :"+user);
if(user == null) {
//去修改权限
response.sendRedirect(getServletContext().getContextPath()+"/record.action?action=list");
}else {
request.setAttribute("record", record);
request.setAttribute("mainRight", "/WEB-INF/jsp/recordAddOrUpdate.jsp");
request.getRequestDispatcher("/WEB-INF/jsp/main.jsp").forward(request, response);
}

}else if(action != null && action.equals("deleteOrAcive")) {
System.out.println("======删除或者激活=========");
//删除或者激活
String disabled = request.getParameter("disabled");

Record record = recordService.findById(Integer.parseInt(id));
record.setDisabled(Integer.parseInt(disabled));

//查看用户是否有修改考勤记录的权限
User user = userService.findStuCodeAndManager(record.getUser().getStuCode(),userCurr);
System.out.println("修改权限user :"+user);
if(user == null) {
//无删除激活权限
response.sendRedirect(getServletContext().getContextPath()+"/record.action?action=list");
}else {
//有删除激活权限
recordService.update(record);
//跳转到缺勤记录列表页
response.sendRedirect(getServletContext().getContextPath()+"/record.action?action=list");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
		System.out.println("path:"+path);
if( (requestUrI.startsWith(path+"/dormBuild.action") || requestUrI.startsWith(path+"/dormManager.action"))
&& roleId.equals(0)) {
//当用户发送的是宿舍楼管理模块或者宿舍管理员管理模块的请求时,只有在当前用户角色为超级管理员时才放行
httpServletRequest.getSession().setAttribute("session_user", user);
chain.doFilter(httpServletRequest, response);

}else if(requestUrI.startsWith(path+"/student.action") && !roleId.equals(2)) {
//当用户发送的请求是学生模块的请求时,只有当前用户角色不是学生就放行
httpServletRequest.getSession().setAttribute("session_user", user);
chain.doFilter(httpServletRequest, response);

}else if(requestUrI.startsWith(path+"/record.action") ||
requestUrI.startsWith(path+"/password.action")||
requestUrI.startsWith(path+"/loginOut.action")||
requestUrI.startsWith(path+"/index.action")) {
//当用户发送的请求是考勤、修改密码、退出模块的请求时,不管用户的角色是什么,都放行
httpServletRequest.getSession().setAttribute("session_user", user);
chain.doFilter(httpServletRequest, response);
}else {
httpServletRequest.getRequestDispatcher("/index.jsp").forward(httpServletRequest, response);
}
}

/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}

}
package com.demo.servlet;



/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

/**
* Default constructor.
*/
public LoginFilter() {
// TODO Auto-generated constructor stub
}

/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}

/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("------------登录拦截器------------");

HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpSession session = httpServletRequest.getSession();

//①获取登录后保存在session中的用户信息
User user = (User) session.getAttribute("session_user");
System.out.println("session user:"+user);

UserService userService = new UserServiceImpl();
//判断用户是否登录
if(user != null) {
//登录,就放行,走处理该请求的方法
//通过user 判断登录的用户角色是否有对该请求的访问权限
//通过request中的httpServletRequest.getRequestURI(); 来获取用户发送的请求
roleJudgment(user,httpServletRequest,response,chain);

//chain.doFilter(request, response);
}else {
//② 判断cookie中是否有用户信息,即学号和密码
//第一步,去遍历所有的cookie,看是否有保存当前学号和密码的cookie
Cookie cookie = CookieUtil.getCookieByName(httpServletRequest, "cookie_name_pass");
System.out.println("cookie:"+cookie);

if(cookie != null) {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
String id = request.getParameter("id");
System.out.println("action:"+action);

DormBuildService dormBuildService = new DormBuildServiceImpl();

if(action != null & action.equals("list")) {
List<DormBuild> builds = new ArrayList<DormBuild>();
if(id == null || id.equals("")) {
//点击左侧宿舍楼管理,查询所有宿舍楼信息,跳转到宿舍楼列表页
builds = dormBuildService.find();
}else if(id != null && !id.equals("")) {
//点击搜索按钮搜索宿舍楼,根据宿舍楼id查询宿舍楼信息
DormBuild build = dormBuildService.findById(Integer.parseInt(id));
builds.add(build);
}

//查询所有的宿舍楼,在select中遍历
List<DormBuild> buildSelects = dormBuildService.find();
request.setAttribute("buildSelects", buildSelects);
request.setAttribute("id", id);
System.out.println("builds:"+builds);
request.setAttribute("builds", builds);
request.setAttribute("mainRight", "/WEB-INF/jsp/dormBuildList.jsp");
request.getRequestDispatcher("/WEB-INF/jsp/main.jsp").forward(request, response);

}else if(action != null & action.equals("preAdd")) {
//表示跳转到宿舍楼添加页面
request.setAttribute("mainRight", "/WEB-INF/jsp/dormBuildAddOrUpdate.jsp");
request.getRequestDispatcher("/WEB-INF/jsp/main.jsp").forward(request, response);

}else if(action != null & action.equals("save")) {
//保存数据
String name = request.getParameter("name");
String remark = request.getParameter("remark");
System.out.println("name:"+name+" remark:"+remark);


//宿舍楼名字不能重复,从数据库查询,当前用户输入的宿舍楼名字是否已经存在
DormBuild dormBuild = dormBuildService.findByName(name);
System.out.println("dormBuild:"+dormBuild);

if(id != null && !id.equals("")) {
//更新
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

/**
* Servlet implementation class PassWordServlet
*/
@WebServlet("/password.action")
public class PassWordServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public PassWordServlet() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("---------------------password.action---------");

String action = request.getParameter("action");
//获取当前登录的用户
User userCur = (User) request.getSession().getAttribute("session_user");
System.out.println("action:"+action+" userCur:"+userCur);

UserService userService = new UserServiceImpl();
if(action != null && action.equals("preChange")) {
//跳转到密码修改页面
request.setAttribute("mainRight", "/WEB-INF/jsp/passwordChange.jsp");
request.getRequestDispatcher("/WEB-INF/jsp/main.jsp").forward(request, response);

}else if(action != null && action.equals("ajaxOldPassWord")) {
//校验用户输入的元密码是否正确

//当前登录的用户在输入框输入的密码
String oldPassWord = request.getParameter("oldPassWord");
//当前登录的用户原始密码
String passWord = userCur.getPassWord();

if(!passWord.equals(oldPassWord)) {
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();
writer.print("您输入的原始密码错误,请重新输入!");
}

}else if(action != null && action.equals("change")) {
//修改密码
String newPassword = request.getParameter("newPassword");


项目链接:
https://javayms.github.io?id=011422292105200ed
https://javayms.pages.dev?id=011422292105200ed