package com.onlineTest.web;
import com.google.gson.Gson;
import com.onlineTest.pojo.*;
import com.onlineTest.pojo.Record;
import com.onlineTest.service.*;
import com.onlineTest.service.impl.*;
import com.onlineTest.utils.DateUtils;
import com.onlineTest.utils.WebUtils;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.*;
public class TestServlet extends BaseServlet{
ProblemService problemService = new ProblemServiceImpl();
TeacherService teacherService = new TeacherServiceImpl();
SubjectService subjectService = new SubjectServiceImpl();
TestService testService = new TestServiceImpl();
RecordService recordService = new RecordServiceImpl();
RankService rankService = new RankServiceImpl();
protected void addProblemToContest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Integer problemId = WebUtils.parseInt(req.getParameter("problemId"),0);
Problem problem = problemService.getProblemById(problemId);
List<Problem> addProblemList = (List<Problem>) req.getSession().getAttribute("addProblemList");
if(addProblemList==null) {
addProblemList = new ArrayList<Problem>();
req.getSession().setAttribute("addProblemList",addProblemList);
}
Boolean flag = false;
for (Problem problem1 : addProblemList) {
if(problem1.getId().equals(problemId)) {
flag = true;
}
}
if(flag) {
req.getSession().setAttribute("addMsg","已经添加过第"+problemId+"个题目!");
}
else {
addProblemList.add(problem);
req.getSession().setAttribute("addMsg","已将第"+problemId+"个题目加入考试,现在已有"+addProblemList.size()+"个题目!");
}
req.getSession().setAttribute("addProblemList",addProblemList);
resp.sendRedirect(req.getHeader("Referer"));
}
protected void ajaxGetProblemToTest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Problem> addProblemList =(List<Problem>) req.getSession().getAttribute("addProblemList");
if(addProblemList==null) {
addProblemList = new ArrayList<Problem>();
req.getSession().setAttribute("addProblemList",addProblemList);
}
List<Subject> subjects = subjectService.allSubject();
Map<String,Object> resultMap = new HashMap<String, Object>();
resultMap.put("addProblemList",addProblemList);
resultMap.put("subjects",subjects);
Gson gson = new Gson();
resp.getWriter().write(gson.toJson(resultMap));
}
protected void ajaxClearAddProblem(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Problem> addProblemList =(List<Problem>) req.getSession().getAttribute("addProblemList");
if(addProblemList==null) {
addProblemList = new ArrayList<Problem>();
req.getSession().setAttribute("addProblemList",addProblemList);
}
List<Subject> subjects = subjectService.allSubject();
addProblemList.clear();
Map<String,Object> resultMap = new HashMap<String, Object>();
resultMap.put("addProblemList",addProblemList);
resultMap.put("subjects",subjects);
Gson gson = new Gson();
resp.getWriter().write(gson.toJson(resultMap));
}
protected void ajaxRemoveAddProblem(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Integer removeProblemId = WebUtils.parseInt(req.getParameter("addProblemId"),0);
List<Problem> addProblemList =(List<Problem>) req.getSession().getAttribute("addProblemList");
if(addProblemList==null) {
addProblemList = new ArrayList<Problem>();
req.getSession().setAttribute("addProblemList",addProblemList);
}
for (Problem problem : addProblemList) {
if(problem.getId().equals(removeProblemId)) {
addProblemList.remove(problem);
}
}
List<Subject> subjects = subjectService.allSubject();
Map<String,Object> resultMap = new HashMap<String, Object>();
resultMap.put("addProblemList",addProblemList);
resultMap.put("subjects",subjects);
Gson gson = new Gson();
resp.getWriter().write(gson.toJson(resultMap));
}
protected void clearAddProblem(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<Problem> addProblemList =(List<Problem>) req.getSession().getAttribute("addProblemList");
Integer classId = WebUtils.parseInt(req.getParameter("classId"),0);
if(addProblemList==null) {
addProblemList = new ArrayList<Problem>();
req.getSession().setAttribute("addProblemList",addProblemList);
}
List<Subject> subjects = subjectService.allSubject();
addProblemList.clear();
req.getRequestDispatcher("/classServlet?action=showClassDetails&classId="+classId).forward(req,resp);
}
protected void removeAddProblem(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Integer classId = WebUtils.parseInt(req.getParameter("classId"),0);
Integer removeProblemId = WebUtils.parseInt(req.getParameter("addProblemId"),0);
List<Problem> addProblemList =(List<Problem>) req.getSession().getAttribute("addProblemList");
if(addProblemList==null) {
addProblemList = new ArrayList<Problem>();
req.getSession().setAttribute("addProblemList",addProblemList);
}
Iterator<Problem> iterator = addProblemList.iterator();
while(iterator.hasNext()) {
Problem problem = iterator.next();
if(removeProblemId.equals(problem.getId())) {
iterator.remove();
}
}
List<Subject> subjects = subjectService.allSubject();
req.getRequestDispatcher("/classServlet?action=showClassDetails&classId="+classId).forward(req,resp);
}
protected void addNewContest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String contestStartTimeStr = req.getParameter("testStartTime");
Integer classId = WebUtils.parseInt(req.getParameter("classId"),0);
String lengthTimeStr = req.getParameter("testLength");
String testName = req.getParameter("testName");
String contestLengthTimeStr = "1970-01-01 "+lengthTimeStr;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Timestamp startTimestamp = DateUtils.stringToTimestamp(contestStartTimeStr,format);
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Timestamp lengthTimestamp = DateUtils.stringToTimestamp(contestLengthTimeStr,format1);
Integer lengthTime = Math.toIntExact(lengthTimestamp.getTime() + 28800000);
Timestamp endTimestamp = new Timestamp(startTimestamp.getTime()+lengthTime);
String[] addProblemIds = req.getParameterValues("addProblemId");
StringBuilder problemIds = new StringBuilder();
for (String addProblemId : addProblemIds) {
problemIds.append(addProblemId);
problemIds.append(",");
}
Test test = new Test(null,testName,lengthTime,startTimestamp,problemIds.toString(),classId);
testService.addNewContest(test);
resp.sendRedirect(req.getContextPath()+"/classServlet?action=showClassDetails&type=0&classId="+classId);
}
protected void showTestDetails(HttpServletRequest req, Htt
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于JavaWeb的在线测验系统,实现了不同角色用户的登录和注册、发布测验、学生答题、班级管理、学生管理、教师管理、题目管理、自动测评等功能。 开发工具:IntelliJ IDEA 数据库:MySQL8 项目依赖如下 依赖名称 说明 版本 commons-beanutils Java Bean工具 1.8.0 commons-dbutils 数据库操作工具 1.3 commons-logging 日志 1.1.1 druid 数据库连接池 1.1.9 gson JSON工具 2.2.4 hamcrest-core 测试 1.3 hutool-all 糊涂工具包 5.8.0 jackson-annotations JSON工具 2.13.2 jackson-core JSON工具 2.13.2 jackson-databind JSON工具 2.13.2.2 java-jwt JWT 3.19.1 junit 单元测试 4.12 kaptcha 验证码 2.3.2 mysql-connector-java 数据库连接驱动 8.0.27 taglibs-standard-impl
资源推荐
资源详情
资源评论
收起资源包目录
基于JavaWeb的在线测验系统项目源码+sql数据库+项目说明.zip (144个子文件)
problem-details.css 153KB
header.css 129KB
font-awesome.min.css 30KB
contest-overview.css 27KB
contest.css 27KB
contest-problem.css 16KB
class-details.css 10KB
problem.css 9KB
body.css 9KB
create_problem.css 6KB
style.css 2KB
class-major.css 2KB
fontawesome-webfont.eot 162KB
favicon.ico 1KB
TestServlet.java 9KB
StudentApi.java 8KB
ClassServlet.java 7KB
ProblemApi.java 6KB
ClassApi.java 6KB
ProblemServlet.java 6KB
StudentServlet.java 6KB
TeacherApi.java 5KB
TestApi.java 4KB
TeacherServlet.java 4KB
SubjectServlet.java 4KB
ProblemDaoImpl.java 4KB
SubjectApi.java 4KB
RecordApi.java 4KB
RecordServlet.java 3KB
StudentDaoImpl.java 3KB
BaseDao.java 3KB
Test.java 3KB
NetworkUtils.java 3KB
StudentServiceImpl.java 3KB
JdbcUtils.java 3KB
ApiFilter.java 3KB
Problem.java 3KB
CaptchaServlet.java 2KB
AdminApi.java 2KB
ClassServiceImpl.java 2KB
ProblemServiceImpl.java 2KB
RankServlet.java 2KB
ClassDaoImpl.java 2KB
Page.java 2KB
TeacherServiceImpl.java 2KB
RankApi.java 2KB
Student.java 2KB
Record.java 2KB
BaseApi.java 2KB
WebUtils.java 2KB
SubjectServiceImpl.java 2KB
TeacherDaoImpl.java 2KB
SubjectDaoImpl.java 2KB
JwtTokenTest.java 2KB
RecordDaoImpl.java 2KB
Teacher.java 1KB
AdminServlet.java 1KB
Class.java 1KB
RecordServiceImpl.java 1KB
BaseServlet.java 1KB
Score.java 1KB
StudentDaoImplTest.java 1KB
Result.java 1KB
ProblemStatus.java 1KB
Admin.java 983B
Message.java 971B
JwtTokenUtils.java 956B
ManagerFilter.java 943B
BaseResponse.java 917B
TransactionFilter.java 886B
TestDaoImpl.java 827B
StudentDao.java 805B
ErrorCodeEnum.java 796B
StudentService.java 757B
RankItem.java 738B
TeacherDaoImplTest.java 713B
Subject.java 658B
TestServiceImpl.java 648B
DateUtils.java 645B
ProblemDao.java 628B
RecordService.java 556B
ClassService.java 518B
ProblemService.java 511B
AdminServiceImpl.java 503B
RecordDao.java 485B
RankDaoImpl.java 482B
TeacherDao.java 474B
ClassDao.java 473B
AdminDaoImplTest.java 462B
RankServiceImpl.java 459B
TeacherService.java 445B
SubjectDao.java 439B
AdminDaoImpl.java 432B
SubjectService.java 431B
ApiPermissionConfig.java 431B
SubjectServiceImplTest.java 425B
RecordServiceImplTest.java 399B
Constant.java 380B
SubjectDaoImplTest.java 371B
RankDaoImplTest.java 363B
共 144 条
- 1
- 2
资源评论
Make程序设计
- 粉丝: 5638
- 资源: 3568
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功