基于javaweb的JSP+Servlet学生选课管理系统(java+servlet+jsp+javascript+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

240123022402

250123022402

260123022402

270123022402

280123022402

290123022402

310123022402

基于javaweb的JSP+Servlet学生选课管理系统(java+servlet+jsp+javascript+mysql)

项目介绍

学生选课系统,有学生、老师、管理员三种角色。 学生端权限

学生登录系统 选择课程并提交确认 各科成绩查询 总成绩查询 成绩排名、各科成绩排名

老师端权限

登录系统 课程管理(实现对课程的CURD) 考试成绩录入 各种查询(学生的单科成绩、总成绩、排名) 各种统计(统计及格率、统计80分以上的同学等)

管理端权限

登录系统 实现对学生的CURD 实现对老师的CURD 实现各种查询、统计

学完这个项目后的收获:

掌握项目开发的流程 掌握开发中的简单权限控制 掌握前端页面如何与后端整合 宏观把握一个项目 掌握echarts图表技术

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

技术栈

前端基础(Html、css、JavaScript、Jquery) mysql数据库 Web容器(Tomcat) Jsp/Servlet

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,然后运行; 3. 将项目中news.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入localhost:8080/jsp_zxmszssys 管理员账号/密码:admin/123456 老师账号/密码:zhangping/123456 学生账号/密码:0001/123456

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



@WebServlet("/student")
public class StudentServlet extends HttpServlet {


@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("======StudentServlet========");
doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String method = request.getParameter("method");
if("list".equals(method)) {
this.list(request, response);
}else if("add".equals(method)) {
this.add(request, response);
}else if("edit".equals(method)) {
this.findById(request, response);
}else if("editsubmit".equals(method)) {
this.editsubmit(request, response);
}else if("delete".equals(method)) {
this.delete(request, response);
}else if("detail".equals(method)) {
this.detail(request, response);
}

}

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
public class PermissionFilter implements Filter {

public static String excludeString ;

@Override
public void init(FilterConfig filterConfig) throws ServletException {
excludeString = filterConfig.getInitParameter("exclude");
}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest)request;
HttpServletResponse httpServletResponse = (HttpServletResponse)response;
Object user = httpServletRequest.getSession().getAttribute("user");
String uri = httpServletRequest.getRequestURI();
if(isExist(uri) || uri.equals(httpServletRequest.getContextPath()+"/")) {
chain.doFilter(httpServletRequest, httpServletResponse);
}else {
if(user != null) {
chain.doFilter(httpServletRequest, httpServletResponse);
}else {
httpServletResponse.sendRedirect("noprivilige.jsp");
}
}
}

public static boolean isExist(String uri) {
//最后url的结尾与exclude匹配
String[] arr = excludeString.split(",");
boolean flag = false;
for (String string : arr) {
if(uri.endsWith(string)) {
flag = true;
}
}
return flag;
}


@Override
public void destroy() {

}

}
package com.hua.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
33
34
35
36
37
38
39
40
41
42
43
	}else if("submit".equals(method)) {
this.submit(request, response);
}else if("tc".equals(method)) {
this.teacher_course(request, response);
}else if("cs".equals(method)) {
this.course_student(request, response);
}else if("score_submit".equals(method)) {
this.score_submit(request, response);
}

}
//评分提交
private void score_submit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Integer cId = getIntParameter(request, "cId");
String[] stuIdArr = request.getParameterValues("stuId");
String[] scoreArr = request.getParameterValues("score");
try {
DaoFactory.getInstance().getScDao().update(stuIdArr, scoreArr, cId);
response.sendRedirect(PathUtils.getBasePath(request)+"sc?method=cs&cId="+cId+"&msg=1");
} catch (SQLException e) {
response.sendRedirect(PathUtils.getBasePath(request)+"sc?method=cs&cId="+cId+"&msg=0");
e.printStackTrace();
}
}
//选课的学生查询
private void course_student(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1、获取cid的参数
Integer cId = getIntParameter(request, "cId");
//2、获取学生列表
try {
List<Student> list = DaoFactory.getInstance().getScDao().listStudentByCId(cId);
request.setAttribute("list", list);
request.setAttribute("cId", cId);
request.getRequestDispatcher("page/sc/course_student.jsp").forward(request, response);
} catch (SQLException e) {
e.printStackTrace();
}
//3、return页面

}

private void teacher_course(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

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




@WebServlet("/student")
public class StudentServlet extends HttpServlet {


@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("======StudentServlet========");
doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String method = request.getParameter("method");
if("list".equals(method)) {
this.list(request, response);
}else if("add".equals(method)) {
this.add(request, response);
}else if("edit".equals(method)) {
this.findById(request, response);
}else if("editsubmit".equals(method)) {
this.editsubmit(request, response);
}else if("delete".equals(method)) {
this.delete(request, response);
}else if("detail".equals(method)) {
this.detail(request, response);
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
			request.getRequestDispatcher("page/sc/query_teacher.jsp").forward(request, response);

} catch (SQLException e) {
e.printStackTrace();
}
}

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

try {
List<Map<String, Object>> list = DaoFactory.getInstance().getScDao().query_range();
request.setAttribute("list", list);
request.getRequestDispatcher("page/sc/query_range.jsp").forward(request, response);

} catch (SQLException e) {
e.printStackTrace();
}
}

public void query_jgl(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
List<Map<String, Object>> list = DaoFactory.getInstance().getScDao().query_jgl();
request.setAttribute("list", list);
request.getRequestDispatcher("page/sc/query_jgl.jsp").forward(request, response);
} catch (SQLException e) {
e.printStackTrace();
}
}

}
package com.hua.utils;



@WebFilter(urlPatterns= {"/*"},initParams= {
@WebInitParam(name="exclude",value="/login.jsp,/login,/noprivilige.jsp,.css,.png,.jpg,.js")
})
public class PermissionFilter implements Filter {

public static String excludeString ;
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
53
	doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String method = request.getParameter("method");
if("list".equals(method)) {
this.list(request, response);
}else if("add".equals(method)) {
this.add(request, response);
}else if("edit".equals(method)) {
this.findById(request, response);
}else if("editsubmit".equals(method)) {
this.editsubmit(request, response);
}else if("delete".equals(method)) {
this.delete(request, response);
}

}

private void delete(HttpServletRequest request, HttpServletResponse response) {
String id = request.getParameter("id");
try {
DaoFactory.getInstance().getStudentDao().delete(Integer.parseInt(id));
//直接重定向到列表页面
response.sendRedirect(PathUtils.getBasePath(request)+"student?method=list");
} catch (Exception e) {
e.printStackTrace();
}
}
private void editsubmit(HttpServletRequest request, HttpServletResponse response) {
Integer stuId = Integer.parseInt(request.getParameter("stuId"));
String stuNo = request.getParameter("stuNo");
String stuName = request.getParameter("stuName");
Student student = new Student();
student.setStuName(stuName);
student.setStuNo(stuNo);
student.setStuId(stuId);
try {
DaoFactory.getInstance().getStudentDao().update(student);
//直接重定向到列表页面
response.sendRedirect(PathUtils.getBasePath(request)+"student?method=list");
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void findById(HttpServletRequest request, HttpServletResponse response) {
String id = request.getParameter("id");
try {
Student student = DaoFactory.getInstance().getStudentDao().findById(Integer.parseInt(id));


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