基于javaweb的JSP+Servlet学生成绩管理系统(管理员、教师、学生)(java+jsp+servlet+javabean+mysql+tomcat)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

管理员:个人信息、课程管理、成绩管理、教师管理、学生管理

教师:个人信息、课程管理、成绩管理、学生信息查看

学生:人个信息管理、成绩查询

100123142502

560123132502

管理员

070123142502

080123142502

090123142502

教师

000123142502

010123142502

020123142502

040123142502

050123142502

060123142502

学生

570123132502

580123132502

590123132502

技术框架

JSP Servlet MySQL JDBC Tomcat CSS JavaScript bootstrap jquery

基于javaweb的JSP+Servlet学生成绩管理系统(管理员、教师、学生)(java+jsp+servlet+javabean+mysql+tomcat)

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
			}
}else{
request.setAttribute("msg", "该工号已存在,请重新录入!!");
request.getRequestDispatcher("admin/addTeacher.jsp").forward(request, response);
}


}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

}
package servlet;







public class ServletLogin extends HttpServlet{
private User user;
private UserServiceImpl userServiceImpl=new UserServiceImpl();

public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
String num=request.getParameter("ID");
String pwd=request.getParameter("pwd");
int roleID=Integer.parseInt(request.getParameter("role"));
user=new User(num,pwd,roleID);
User rs=userServiceImpl.login(user);
if(rs.getUserName()!=null){
if(rs.getUserNum().equals(user.getUserNum())){
if(rs.getPassword().equals(user.getPassword())){
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
		/*
* 递归遍历filepath目录下的所有文件和目录,将文件的文件名存储到map集合中
*/
//file既可以代表一个文件也可以代表一个目录
listFile(new File(uploadFilePath),fileNameMap);
//将map集合发送到listFile.jsp页面进行显示
request.setAttribute("fileNameMap", fileNameMap);
request.getRequestDispatcher("admin/fileList.jsp").forward(request, response);
}

private void listFile(File file, Map<String, String> fileNameMap) {
//如果file代表的不是一个文件,而是一个目录
if(!file.isFile()){
//列出该目录下的所有文件和目录
File files[]=file.listFiles();
//遍历files数组
for(File f:files){
//递归
listFile(f,fileNameMap);
}
}else{
/**
* 处理文件名,上传后的文件是以uuid_文件名的形式去重新命名的,去除文件名的uuid_部分
file.getName().indexOf("_")检索字符串中第一次出现"_"字符的位置,
如果文件名类似于:9349249849-88343-8344_阿_凡_达.avi
那么file.getName().substring(file.getName().indexOf("_")+1)
处理之后就可以得到阿_凡_达.avi部分
*/
String realName=file.getName().substring(file.getName().indexOf("_")+1);
//file.getName()得到的是文件的原始名称,这个名称是唯一的,因此可以作为key,realName是处理过后的名称,有可能会重复
fileNameMap.put(file.getName(), realName);

}

}

}
package servlet;

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
		
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
package servlet.student;





public class ServletRegistersStudent extends HttpServlet{

private User user;
private Student student;
private UserServiceImpl userServiceImpl = new UserServiceImpl();
private StudentServiceImpl studentServiceImpl =new StudentServiceImpl();

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

doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String stuNum = request.getParameter("stuNum");
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
             */
String realName=file.getName().substring(file.getName().indexOf("_")+1);
//file.getName()得到的是文件的原始名称,这个名称是唯一的,因此可以作为key,realName是处理过后的名称,有可能会重复
fileNameMap.put(file.getName(), realName);

}

}

}
package servlet;






public class ServletaddCourse extends HttpServlet{

private Course course;
private ServletFindAllCos servletFindAllCos=new ServletFindAllCos();
private CourseServiceImpl courseServiceImpl=new CourseServiceImpl();

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String courseName = request.getParameter("courseName");
int courseCredit = Integer.parseInt(request.getParameter("courseCredit"));
int courseHours = Integer.parseInt(request.getParameter("courseHours"));
String courseTea = request.getParameter("courseTea");
String coDate = request.getParameter("courseDate");
Date courseDate=null;
try {
courseDate = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("courseDate"));
} catch (ParseException e) {

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
51
52




@SuppressWarnings("serial")
public class ServletUploadFile extends HttpServlet{

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

@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 得到上传文件的保存目录,将上传的文件存放于服务器WEB-INF目录下,不允许外界直接访问,保证上传文件的安全性
String savePath = this.getServletContext().getRealPath(
"/WEB-INF/upload");

// 上传时生成临时文件保存目录
String tempPath = this.getServletContext().getRealPath("/WEB-INF/temp");

File tempFile = new File(tempPath);
if (!tempFile.exists()) {
// 创建临时文件目录
tempFile.mkdir();
}

// 消息提醒
String message = "";
try {
// 使用Apache文件上传组件处理文件上传步骤
// 1、创建一个DiskFileItemFactory工厂
DiskFileItemFactory factory = new DiskFileItemFactory();

// 设置工厂的缓冲区的大小,当上传的文件大小超过缓冲区的大小时,就会生成一个临时文件存放到指定的临时目录当中。
factory.setSizeThreshold(1024 * 100); // 设置缓冲区的大小为100KB,如果不指定,那么缓冲区的大小默认是10KB

// 设置上传时的临时保存目录
factory.setRepository(tempFile);

// 2,创建一个文件上传解析器
ServletFileUpload upLoad = new ServletFileUpload(factory);


// 解决上传文件中文乱码
upLoad.setHeaderEncoding("utf-8");

// 3、判断提交上来的数据是否是上传表单的数据
if (!ServletFileUpload.isMultipartContent(request)) {

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

private User user;
private Teacher teacher;
private UserServiceImpl userServiceImpl = new UserServiceImpl();
private TeacherServiceImpl teacherServiceImpl =new TeacherServiceImpl();
private ServletFindAllTea findTea=new ServletFindAllTea();

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String teaNum = request.getParameter("teaNum");
String teaName = request.getParameter("teaName");
String pwd = request.getParameter("password");
String teaSex = request.getParameter("teaSex");
int teaAge = Integer.parseInt(request.getParameter("teaAge"));
String teaCourse = request.getParameter("teaCourse");
String major = request.getParameter("major");
String department = request.getParameter("department");
String phone = request.getParameter("phone");
int roleID = Integer.parseInt(request.getParameter("role"));
user = new User(teaNum, teaName, pwd, phone, roleID);
teacher = new Teacher(teaNum, teaName, teaSex, teaAge, teaCourse, major,
department);
//验证是否存在该教师
User rs=userServiceImpl.login(user);
if(rs.getUserID()==0){
int rsUser=userServiceImpl.addUser(user);
int rsTea=teacherServiceImpl.addTea(teacher);
if(rsTea>0 && rsUser>0){
request.setAttribute("msg", "添加成功!!");
findTea.doGet(request, response);
// request.getRequestDispatcher("admin/teacherAllInfo.jsp").forward(request, response);
/*List list=studentDaoImpl.findAll();
request.setAttribute("list", list);
request.getRequestDispatcher("admin/studentAllInfo.jsp").forward(request, response);*/
}else{
request.setAttribute("msg", "添加失败!!");
request.getRequestDispatcher("admin/addTeacher.jsp").forward(request, response);
}
}else{
request.setAttribute("msg", "该工号已存在,请重新录入!!");
request.getRequestDispatcher("admin/addTeacher.jsp").forward(request, response);
}


}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


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