基于javaweb的JSP+Servlet在线考试系统(java+jsp+servlet+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

网络考试系统主要用于实现高校在线考试,基本功能包括:自动组卷、试卷发布、试卷批阅、试卷成绩统计等。本系统结构如下:

后台管理员:系统功能、用户、角色、题目管理、试卷管理、

后台教师:题目管理、试卷管理

420123112502

410123112502

前台学生:查看试题、答题、查看错题

后台管理员

260123112502

270123112502

280123112502

300123112502

310123112502

320123112502

330123112502

后台教师

340123112502

350123112502

前台学生

360123112502

370123112502

380123112502

390123112502

技术框架

JSP Servlet MySQL JDBC Tomcat jQuery Bootstrap

基于javaweb的JSP+Servlet在线考试系统(java+jsp+servlet+mysql)

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
}
package com.demo.common.filters;




public class LoginFilter implements Filter {

public void destroy() {
// TODO Auto-generated method stub

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse rsp = (HttpServletResponse)response;
HttpSession session = req.getSession();
if(session==null || session.getAttribute("user")==null){
//处理未登陆问题。重定向到登陆页面
//String path = req.getContextPath();
//String basePath = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+path+"/";
rsp.sendRedirect("/projdemo/login.jsp");
return;
}
else{
System.out.println("成功执行操作");
}
chain.doFilter(request, response);
}


public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub

}

}
package com.demo.common;

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
		if(rtn>0){
response.sendRedirect(Tools.Basepath(request, response)+"sys/user?cmd=list");
}else{
request.setAttribute("msg", "添加用户失败或请不要再重复添加");
request.getRequestDispatcher("/sys/user/add.jsp").forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取用户列表
* @param request
* @param response
* @throws IOException
* @throws ServletException
* @throws IOException
* @throws ServletException
*/
private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String sname = request.getParameter("sname");
Sysuser user = new Sysuser();
if(sname!=null && !sname.equals("")){
user.setUsername(sname);
}

PageControl pc = new PageControl();
Integer currindex = 1;
if(request.getParameter("index")!=null){
currindex = Integer.parseInt(request.getParameter("index"));
}
pc.setCurrentindex(currindex);
//pc.setPagesize(5);

Pager<Sysuser> pager = service.list(user, pc);
request.setAttribute("pager", pager);
request.getRequestDispatcher("/sys/user/list.jsp").forward(request, response);

}

/**
* 注销
* @param request
* @param response
* @throws IOException
*/
private void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {

HttpSession session = request.getSession();
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
			}else{
request.setAttribute("msg", "保存角色失败!");
request.getRequestDispatcher("/sys/role/edit.jsp").forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 角色初始化修改页面
* @param request
* @param response
* @throws IOException
* @throws ServletException
*/
private void toedit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Sysrole role = new Sysrole();
role.setRoleid(Integer.parseInt(request.getParameter("id")));
role = service.detail(role);
if(role!=null){
request.setAttribute("item",role);
request.getRequestDispatcher("/sys/role/edit.jsp").forward(request, response);
}else{
request.setAttribute("msg", "需要修改的角色功能不存在。");
request.getRequestDispatcher("/error.jsp").forward(request, response);
}
}
}
package com.demo.sys.servlets;




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




public class UserServlet extends HttpServlet {

IUserService service = new UserService();
IPaperService paperService = new PaperService();
IStudentpaperService spServece = new StudentpaperService();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String cmd= request.getParameter("cmd");
if(cmd.equals("paperlist")){
index(request,response);
}else if(cmd.equals("login")){
login(request,response);
}else if(cmd.equals("init")){
initpage(request,response);
}else if(cmd.equals("logout")){
logout(request,response);
}else if(cmd.equals("list")){
list(request,response);
}else if(cmd.equals("add")){
add(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
49
50
51
52
53
54
 * 用户初始化修改页面
* @param request
* @param response
* @throws IOException
* @throws ServletException
* @throws IOException
* @throws ServletException
*/
private void toedit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
Sysuser user = new Sysuser();
user.setUserid(Integer.parseInt(request.getParameter("id")));
user = service.detail(user);
if(user!=null){
request.setAttribute("item",user);
request.getRequestDispatcher("/sys/user/edit.jsp").forward(request, response);
}else{
request.setAttribute("msg", "需要修改的用户不存在。");
request.getRequestDispatcher("/error.jsp").forward(request, response);
}
}
/**
* 修改用户密码功能
* @param request
* @param response
*/
private void editpwd(HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
Sysuser user = new Sysuser();

try {
BeanUtils.populate(user, request.getParameterMap());
Integer rtn = service.editpwd(user);
if(rtn>0){
response.sendRedirect(Tools.Basepath(request, response)+"sys/user?cmd=list");
}else{
request.setAttribute("msg", "保存用户失败!");
request.getRequestDispatcher("/sys/user/editpwd.jsp").forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 用户初始化密码修改页面
* @param request
* @param response
* @throws IOException
* @throws ServletException
* @throws IOException
* @throws ServletException
*/
private void toeditpwd(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub


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