基于javaweb的JSP+Servlet校园疫情防控管理信息系统疫情播报系统(java+servlet+jsp+bootstrap+mysql+css)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

132023390609

142023390609

152023390609

162023390609

172023390609

192023390609

202023390609

212023390609

222023390609

基于javaweb的JSP+Servlet校园疫情防控管理信息系统疫情播报系统(java+servlet+jsp+bootstrap+mysql+css)

管理员:
admin 123456

学生:
student1 123456
student2 123456

教师:
teacher1 123456
teacher2 123456

校园疫情防控管理信息系统

项目简介:
校园疫情防控管理信息系统分为前台部分和后台部分,面向学校的学生和老师,旨在为学校提供一个有效防控校园出现疫情的综合性平台。
本管理系统将通过健康打卡的功能实现后台管理系统对师生身体状况数据的收集。
有了此系统,大大方便了学校疫情的防控工作,加大了学校疫情防控的力度,提高学校疫情防控的效率,尽最大地可能避免学校出现新冠肺炎疫情。
借助此系统学校能更好地做好疫情防控措施。

采用技术 :
前端:HTML + CSS + JavaScript + Bootstrap + Jquery + Ajax
后端:Spring Boot + Jpa + Maven + Schedule定时任务 + Redis + Security + POI

开发环境 :
工具:IDEA、Navicat、Git
环境:JDK 1.8、Tomcat 7.0、Mysql 8.0
项目管理:Maven
代码托管平台:GitHub

开发流程:
1、数据库设计
2、Model:模型定义,与数据库相匹配
3、Dao层:数据操作
4、Service:服务包装
5、Controller:业务入口,数据交互
6、Util:工具类封装
7、Config:配置类封装
8、单元测试

功能模块:

前台部分,主要分为以下几个模块:

个人信息管理
学生和老师登录
学生和老师修改密码

数据显示
学校疫情各情况数据的统计显示
疫情各情况饼状图占比分析
学生和教师各情况统计柱形图显示
各学院学生的各情况统计表格显示
各学院教师的各情况统计表格显示

打卡操作
学生每天打卡
教师每天打卡

疫情新闻显示
最新疫情新闻播报浏览
查看疫情新闻详情

后台部分,主要分为以下几个模块:
学生管理
查询学生
添加学生
修改学生
删除学生

教师管理
查询教师
添加教师
修改教师
删除教师

打卡信息管理

查询打卡信息
添加打卡信息
修改打卡信息
删除打卡信息
分析打卡信息
统计打卡信息

新闻管理
查询新闻
发布新闻
删除新闻

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
chart1.setBackgroundPaint(null);

String filename1 = ServletUtilities.saveChartAsPNG(chart1, 500, 300, null, session);
String graphUrl1 = req.getContextPath() + "/DisplayChart?filename=" + filename1;
req.setAttribute("graphUrl1", graphUrl1);



String[] depts = {"数科院", "化学化工学院", "生命与科学学院", "商学院", "体育科学学院", "美术与设计学院",
"音乐与舞蹈学院", "创新创业教育学院"};

//学生表格处理
ArrayList<WebStu> webStuArrayList = new ArrayList<WebStu>();
System.out.println(depts.length);
for (int i = 0; i < depts.length; i++) {
WebStu webStu = new WebStu();
String dept = depts[i];
webStu.setSdept(dept);
sql = "select count(*) as num from student s, stupunchin sp where s.sno = sp.sno and s.sdept= ? and sp.sishot = ?";
Object[] obj2 = {dept, "是"};
int tbStuHotNum = FrontWebDao.findTotalCount(sql, obj2);
webStu.setSishotNum(tbStuHotNum);
sql = "select count(*) as num from student s, stupunchin sp where s.sno = sp.sno and s.sdept= ? and sp.siscough = ?";
int tbStuCoughNum = FrontWebDao.findTotalCount(sql, obj2);
webStu.setSiscoughNum(tbStuCoughNum);
sql = "select count(*) as num from student s, stupunchin sp where s.sno = sp.sno and s.sdept= ? and sp.sisseem = ?";
int tbStuSeemNum = FrontWebDao.findTotalCount(sql, obj2);
webStu.setSisseemNum(tbStuSeemNum);
sql = "select count(*) as num from student s, stupunchin sp where s.sno = sp.sno and s.sdept= ? and sp.sisdiagnose = ?";
int tbStuDiagNum = FrontWebDao.findTotalCount(sql, obj2);
webStu.setSisdiagnoseNum(tbStuDiagNum);
sql = "select count(*) as num from student s, stupunchin sp where s.sno = sp.sno and s.sdept= ? and sp.sstatus = ?";
Object[] obj3 = {dept, "异常"};
int tbStuStatusNum = FrontWebDao.findTotalCount(sql, obj3);
webStu.setSstatusNum(tbStuStatusNum);
webStuArrayList.add(webStu);
}
System.out.println(webStuArrayList);
req.setAttribute("webStuArrayList", webStuArrayList);

//教师表格
ArrayList<WebTea> webTeaArrayList = new ArrayList<WebTea>();
for (int i = 0; i < depts.length; i++) {
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
                    StuPunch stuPunch = new StuPunch();
stuPunch.setSname(resultSet.getString("sname"));
stuPunch.setSispunch(resultSet.getString("sispunch"));
stuPunch.setSpunchdate(resultSet.getDate("spunchdate"));
stuPunch.setSpunchtime(resultSet.getString("spunchtime"));
stuPunch.setSishot(resultSet.getString("sishot"));
stuPunch.setSiscough(resultSet.getString("siscough"));
stuPunch.setSisseem(resultSet.getString("sisseem"));
stuPunch.setSisdiagnose(resultSet.getString("sisdiagnose"));
stuPunch.setSstatus(resultSet.getString("sstatus"));
stuPunchArrayList.add(stuPunch);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
JDBCUtils.close(resultSet);
}
pageBean.setArrayList(stuPunchArrayList);

System.out.println(stuPunchArrayList);
System.out.println(pageBean);

req.setAttribute("pageBean", pageBean);

req.getRequestDispatcher("/view/stu/stupunchinfo.jsp").forward(req, resp);
}else {
req.getRequestDispatcher("/view/alluse/nodata.jsp").forward(req, resp);
}
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}



@WebServlet("/DeptQueryTeaPunchByIdServlet1")
public class DeptQueryTeaPunchByIdServlet1 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
45
46
47
48
49
//        String userName = (String) session.getAttribute("userName");
// String sno = (String) session.getAttribute("sno");
String belong = (String) session.getAttribute("belong");

String sql = null;

// System.out.println(userName);
// System.out.println(sno);
System.out.println(belong);
System.out.println("hdghghjg");

String currentPage = req.getParameter("currentPage");//从请求对象中获取当前页码
String rows = req.getParameter("rows");//从请求获取对象中每页显示的行数

//如果未设请求参数,此处自动设置参数为第一页
if (currentPage == null || "".equals(currentPage)){
currentPage = "1";
}

//如果没有设置rows的请求参数,此处自动设置
if (rows == null || "".equals(rows)){
rows = "8";
}

//获取条件查询的参数
int currentPage1 = Integer.parseInt(currentPage);
int rows1 = Integer.parseInt(rows);

//如果当前页数小于1,则设置当前页数为1
if (currentPage1 <= 0){
currentPage1 = 1;
}

//设置StuPunch类的对象类型
PageBean<TeaPunch> pageBean = new PageBean<TeaPunch>();

//设置当前页码
pageBean.setCurrentPage(currentPage1);

//设置每页的记录数
pageBean.setRows(rows1);

sql = " select count(*) as num from teacher t, teapunchin tp where t.tno = tp.tno and t.tno like ? and t.tname like ? and tp.tpunchdate like ? and t.tdept = ?";
Object[] objects = {tno1, tname1, tpunchdate1, belong};

//计算总记录数,并设置
int totalCount = DeptAdminDao.findTotalCount(sql, objects);
System.out.println(totalCount);
pageBean.setTotalCount(totalCount);
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


@WebServlet("/DeptQueryStuPunchByPageServlet")
public class DeptQueryStuPunchByPageServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");

//获取请求参数
String sname = req.getParameter("sname");
String sclass = req.getParameter("sclass");
String spunchdate = req.getParameter("spunchdate");

System.out.println(sname);
System.out.println(sclass);
System.out.println(spunchdate);


//如果传入的参数为null,则置为空字符串
if (sname == null){
sname = "";
}
if (sclass == null){
sclass = "";
}
if (spunchdate == null){
spunchdate = "";
}

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

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");

String userName = req.getParameter("userName");
String psw = req.getParameter("psw");
String identity = req.getParameter("identity1");
System.out.println(userName);
System.out.println(psw);
System.out.println(identity);

if (identity.equals("学生")){//学生身份
boolean flag = false;
String sql = "select * from student where sname = ? and spsw = ?";
Object[] objects = {userName, psw};
ResultSet resultSet = StuDao.login(sql, objects);
String sno = null;
try {
if (resultSet.next()){
flag = true;
sno = resultSet.getString("sno");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
JdbcUtils.close(resultSet);
}
if (flag){
System.out.println("登录成功!");
//创建会话,处理请求要用
HttpSession session = req.getSession();
session.setAttribute("userName", userName);
// 创建请求属性对象,处理请求要用
session.setAttribute("sno", sno);
System.out.println(sno);

req.setAttribute("httpUrl","/view/stu/stumainview.jsp");
req.setAttribute("info", "登录成功!即将跳转至后台首页!");
req.setAttribute("title","登录成功");
req.getRequestDispatcher("/view/alluse/info.jsp").forward(req, resp);
// resp.sendRedirect(req.getContextPath() + "/view/stu/stumainview.jsp");
}else {
System.out.println("用户名或密码错误!请重新登录!");
//返回登录成功的信息
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
        String tname = req.getParameter("tname");
String tdept = req.getParameter("tdept");


//如果传入的参数为null,则置为空字符串
if (tno == null){
tno = "";
}
if (tname == null){
tname = "";
}
if (tdept == null){
tdept = "";
}

//变为like查询所需的字符串参数
String tno1 = "%" + tno + "%";
String tname1 = "%" + tname + "%";
String tdept1 = "%" + tdept + "%";

//设置请求的属性参数,后面需要用
req.setAttribute("tno", tno);
req.setAttribute("tname",tname);
req.setAttribute("tdept",tdept);

System.out.println(tno1);
System.out.println(tname1);
System.out.println(tdept1);

//获取登录时的session会话对象
HttpSession session = req.getSession();
// String userName = (String) session.getAttribute("userName");
// String sno = (String) session.getAttribute("sno");
String belong = (String) session.getAttribute("belong");

String sql = null;

// System.out.println(userName);
// System.out.println(sno);
System.out.println(belong);
System.out.println("hdghghjg");

String currentPage = req.getParameter("currentPage");//从请求对象中获取当前页码
String rows = req.getParameter("rows");//从请求获取对象中每页显示的行数

//如果未设请求参数,此处自动设置参数为第一页
if (currentPage == null || "".equals(currentPage)){
currentPage = "1";


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