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

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

290023572402

300023572402

310023572402

320023572402

340023572402

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

项目介绍

一款简单的Servlet + mysql + jsp的选课系统,主要有三大模块,管理员模块,教师模块,学生模块。管理员模块主要功能模块有系统管理,课程管理,教师管理,课表管理,学生管理;教师模块和学生模块的主要功能模块有个人信息和课表信息的查询,其中学生包括选课的功能。

软件架构

Servlet、mysql5.7、jsp、jdk1.8、tomcat8.0

安装教程

1.导入数据库xuanke.sql 2.导入项目,找到文件中util下的DB.java,修改你自己数据库的帐号和密码

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
private static final long serialVersionUID = 1L;

public SelectKeBiao() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");//解决乱码
response.getWriter().append("Served at: ").append(request.getContextPath());

int id = Integer.parseInt(request.getParameter("id")); //获传过来的值,该id是课表的id
String oldName = java.net.URLEncoder.encode(request.getParameter("oldName"),"UTF-8");//给中文编码为UTF-8
int oldId = Integer.parseInt(request.getParameter("oldId"));//学生的id

//创建DB对象
DB db = new DB();
PreparedStatement ps;
ResultSet rs;
String sql;
//创建sql语句
//插入前要判断该学生之前是否有选过这门课
sql = "select * from xuekebiao where xuesheng_id=" + oldId + " and kebiao_id=" + id ;
//调用db的方法
ps = db.getPs(sql);
try {
rs = ps.executeQuery();//执行sql语句
if(rs.next()) {//返回的是布尔值,假如返回的是true,即有数据了,就不能选择该课程,跳到过渡页No
PrintWriter out = response.getWriter();
db.closed();// 关闭数据流
response.sendRedirect("xuesheng/no.jsp?oldName=" + oldName + "&oldId=" + oldId);
}else { //返回false,则可以选择
// 调用db中的方法
sql = "insert into xuekebiao(xuesheng_id,kebiao_id) values(?,?)";
ps = db.getPs(sql);
// 添加数据
ps.setInt(1, oldId);
ps.setInt(2, id);
ps.executeUpdate();// 执行sql语句
PrintWriter out = response.getWriter();
response.sendRedirect("xuesheng/ok.jsp?oldName=" + oldName + "&oldId=" + oldId);
}

} catch (SQLException e1) {
e1.printStackTrace();
}
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




/**
* Servlet implementation class UpAdmin
*/
@WebServlet("/UpAdmin")
public class UpAdmin extends HttpServlet {
private static final long serialVersionUID = 1L;
public UpAdmin() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//更改密码操作
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

//获取页面传过来的值
int oldId = Integer.parseInt(request.getParameter("oldId"));//哪一个管理员的数据要更改
String oldName = request.getParameter("oldName");
String oldPw = request.getParameter("oldPw");
String newPw = request.getParameter("newPw");

//创建db对象
DB db = new DB();
//创建一个判断该管理员输入的旧密码是否一致的sql
String sql = "select * from admin where userId='" + oldId + "' and userPw='" + oldPw + "'";
//创建更新sql语句
String sql1 = "update admin set userPw = ? where userId = ?";
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
		response.getWriter().append("Served at: ").append(request.getContextPath());
}

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

}
/**
* 删除老师数据
*/




/**
* Servlet implementation class DeleLaoShi
*/
@WebServlet("/DeleLaoShi")
public class DeleLaoShi extends HttpServlet {
private static final long serialVersionUID = 1L;
public DeleLaoShi() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");//解决乱码
response.getWriter().append("Served at: ").append(request.getContextPath());

int id = Integer.parseInt(request.getParameter("id")); //获传过来的值
String oldName = request.getParameter("oldName");
int oldId = Integer.parseInt(request.getParameter("oldId"));
//创建DB对象
DB db = new DB();
String sql = "delete from laoshi where id=" + id;//创建sql语句
//调用删除操作
db.del(sql);
//关闭数据流
db.closed();
PrintWriter out = response.getWriter();
response.sendRedirect("admin/laoshiMes.jsp?oldName=" + oldName + "&oldId=" + oldId);
}

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
				response.sendRedirect("xuesheng/xueshengEdi.jsp?oldName=" + oldName + "&oldId=" + oldId + "&message=" + "1");
}
} catch (SQLException e) {
e.printStackTrace();
}
doGet(request, response);
}

}
/**
* 修改老师密码
*/




/**
* Servlet implementation class UpLaoShi
*/
@WebServlet("/UpLaoShi")
public class UpLaoShi extends HttpServlet {
private static final long serialVersionUID = 1L;
public UpLaoShi() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//老师更改信息
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");//解决乱码

//获取页面传过来的值
int oldId = Integer.parseInt(request.getParameter("oldId"));//哪一个老师的数据要更改
String oldName = java.net.URLEncoder.encode(request.getParameter("oldName"),"UTF-8");//给中文编码为UTF-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
/**
* 学生信息更改
*/




/**
* Servlet implementation class EdiXueSheng
*/
@WebServlet("/EdiXueSheng")
public class EdiXueSheng extends HttpServlet {
private static final long serialVersionUID = 1L;
public EdiXueSheng() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

//获取页面传过来的值
int oldId = Integer.parseInt(request.getParameter("oldId"));
String oldName = request.getParameter("oldName");
int id = Integer.parseInt(request.getParameter("id"));
String xuehao = request.getParameter("xuehao");
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
			userId = rs.getInt("userId");
userName = rs.getString("userName");
}
} catch (SQLException e) {
e.printStackTrace();
}
//userId > 0表示存在该用户
if(userId > 0) {
request.setAttribute("userId", userId);
request.setAttribute("userName", userName);
db.closed();//关闭数据库操作
RequestDispatcher dispatcher = request.getRequestDispatcher("admin/index.jsp"); // 跳转到管理员首页
dispatcher.forward(request, response);
return;
}else { //如果不存在,则提示用户错误信息
db.closed();//关闭数据库操作
request.setAttribute("message", "请检查你的用户名或密码是否正确,必要时可练习管理员233333!");
RequestDispatcher dispatcher = request.getRequestDispatcher("login.jsp"); // 使用req对象获取RequestDispatcher对象
dispatcher.forward(request, response);
return;
}

}

// 2为老师,2写前面的好处是防止空指针异常
if ("2".equals(chose)) {
int id = 0;
String xingming ="";
// 调用查找方法getPs(String sql),写入sql语句
String sql = "select * from laoshi where loginname = '" + userName + "' and loginpw = '" + userPw + "'";
ps = db.getPs(sql);// 返回的是ps对象
try {
rs = ps.executeQuery();// 执行sql语句,获得结果集
// 遍历以下结果,因为管理员的名称要传过去
while (rs.next()) {
id = rs.getInt("id");
xingming = rs.getString("xingming");
}
} catch (SQLException e) {
e.printStackTrace();
}
// userId > 0表示存在该用户
if (id > 0) {
request.setAttribute("id", id);
request.setAttribute("xingming", xingming);
db.closed();// 关闭数据库操作
RequestDispatcher dispatcher = request.getRequestDispatcher("laoshi/index.jsp"); // 跳转到老师首页
dispatcher.forward(request, response);


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