共计 27200 个字符,预计需要花费 68 分钟才能阅读完成。
基于 javaweb+mysql 的 jsp+servlet 在线考试管理系统 (java+jsp+jquery+servlet+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts 等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于 javaweb+mysql 的 JSP+Servlet 在线考试管理系统 (java+jsp+jquery+servlet+mysql)
项目介绍
本项目包含管理员与学生两个角色;管理员角色包含以下功能:登录页面, 管理员首页, 考生信息管理, 成绩管理, 考生录入, 题库管理, 题目录入, 试卷管理等功能。
学生角色包含以下功能:学生登录, 学生主页, 开始考试, 查看成绩等功能。
PS:在添加学生或者添加试题的时候,可以上传文件来实现,文件的模板在管理试题和管理学生的时候,点击下载就有了。
环境需要
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 项目:否;
技术栈
- 后端:Servlet 2. 前端:JSP+jQuery
使用说明
- 使用 Navicat 或者其它工具,在 mysql 中创建对应名称的数据库,并导入项目的 sql 文件;2. 使用 IDEA/Eclipse/MyEclipse 导入项目,Eclipse/MyEclipse 导入时,若为 maven 项目请选择 maven; 若为 maven 项目,导入成功后请执行 maven clean;maven install 命令,然后运行;3. 将项目中配置文件中的数据库配置改为自己的配置;4. 运行项目,输入 localhost:8080/ 登录
break;
case 1:
grade = "良好";
break;
case 2:
grade = "中等";
break;
case 3:
grade = "及格";
break;
case 4:
grade = "不及格";
break;
case 5:
grade = "缺考";
break;
default:
break;
}
try {
DatabassAccessObject db = new DatabassAccessObject();
LoginBean loginBean = (LoginBean) session.getAttribute("loginBean");
String ID = loginBean.getID();
db.insert("update student set score = ? where ID = ?", score, ID);
ResultSet rs = db.query("select * from score where id = ?", ID);
if (!rs.next()) {
db.insert("insert into score values(?,?,?,?,?,?,?,?)", ID, score, score_sing, score_muti, score_jud,
score_fill, score_ess,grade);
} else {
db.modify(
"update score set score = ? , score_sing = ? , score_muti= ? , score_jud = ? , score_fill = ? , score_ess = ?,grade = ? where ID = ? ;",
score, score_sing, score_muti, score_jud, score_fill, score_ess,grade, ID);
}
rs = db.query("select * from student where id = ?", ID);
rs.first();
} catch (Exception e) {
queBeanAllList.add(queBean);
total++;
}
ArrayListQuestionBean> queTableList = new ArrayListQuestionBean>();
for (int i = cpage * per; i cpage * per + per && i total; i++) {
queTableList.add(queBeanAllList.get(i));
}
String temp=request.getParameter("modify_id");
request.setAttribute("modify_id", temp);
request.setAttribute("total", total);
request.setAttribute("queTableList", queTableList);
request.getRequestDispatcher("/teacher/teacher_que_manage.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package examservlet.control;
@WebServlet("/ShowScorePage")
public class ScoreShowByPage extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
int cpage = 0;
LinkedListInteger> list5 = new LinkedListInteger>();
while (rs.next()) {
switch (rs.getString(2)) {
case "单选题":
list1.add(rs.getRow());
break;
case "多选题":
list2.add(rs.getRow());
break;
case "判断题":
list3.add(rs.getRow());
break;
case "填空题":
list4.add(rs.getRow());
break;
case "简答题":
list5.add(rs.getRow());
break;
default:
break;
}
}
listALL.addAll(randomQue(list1, rs,num1));
listALL.addAll(randomQue(list2, rs,num2));
listALL.addAll(randomQue(list3, rs,num3));
listALL.addAll(randomQue(list4, rs,num4));
listALL.addAll(randomQue(list5, rs,num5));
tihao=0;
HttpSession session = request.getSession();
session.setAttribute("examTime", examTime);
session.setAttribute("ques", listALL);
response.sendRedirect(request.getContextPath()+"/student/student_exam_paper.jsp");
} catch (Exception e) {
e.printStackTrace();
}
}
public ArrayListQuestionBean> randomQue(LinkedListInteger> list,ResultSet rs,int count) {
int m = -1;
int index = -1;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
Integer mode = Integer.valueOf(request.getParameter("mode"));
HSSFWorkbook workbook=null;
String createExcelname = "";
switch (mode) {
case 1:
workbook=(HSSFWorkbook) StuInfoExcelService.getAllByDatabase();
createExcelname = "tb_student.xls";
break;
case 2:
workbook=(HSSFWorkbook) QuestionExcelService.getAllByDatabase();
createExcelname = "tb_question.xls";
break;
case 3:
workbook=(HSSFWorkbook) ScoreExcleService.getAllByDatabase();
createExcelname = "tb_student_score.xls";
break;
default:
break;
}
String dir = request.getSession().getServletContext().getRealPath("/images");
File fileLocation = new File(dir);
if (!fileLocation.exists()) {
boolean isCreated = fileLocation.mkdir();
}
String webUrl = request.getSession().getServletContext().getRealPath("/images");
String outputFile = webUrl + File.separator + createExcelname;
FileOutputStream fop = new FileOutputStream(outputFile);
workbook.write(fop);
fop.flush();
fop.close();
File f = new File(outputFile);
if (f.exists() && f.isFile()) {
try {
FileInputStream fis = new FileInputStream(f);
URLEncoder.encode(f.getName(), "utf-8");
if (request.getParameter("cpage") != null) {
cpage = Integer.parseInt(request.getParameter("cpage"));
}
request.setAttribute("cpage", cpage);
if (request.getParameter("per") != null) {
per = Integer.parseInt(request.getParameter("per"));
}
request.setAttribute("per", per);
try {
DatabassAccessObject db=new DatabassAccessObject();
ResultSet rsTotal = db
.query("select count(*) as total from student");
if (rsTotal.next()) {
request.setAttribute("totalPage", 1
+ (rsTotal.getInt("total") - 1) / per);
}
ArrayListStudentInfoBean> stuBeanAllList = new ArrayListStudentInfoBean>();
ResultSet rs=null;
String s_ID=request.getParameter("s_ID");
if (s_ID!=null) {
rs=db.query("select score.ID,class,name,score_sing,score_muti,score_jud,score_fill,score_ess,score.score,grade from student join score on student.id=score.id where score.id LIKE'%"+s_ID+"%';");
}else {
rs = db.query("select score.ID,class,name,score_sing,score_muti,score_jud,score_fill,score_ess,score.score,grade from student join score on student.id=score.id order by ID ;");
}
int total = 0;
while (rs.next()) {
String ID=rs.getString(1);
String CLASS=rs.getString(2);
String name=rs.getString(3);
Float score_sing=Float.valueOf(rs.getString(4));
Float score_muti=Float.valueOf(rs.getString(5));
Float score_jud=Float.valueOf(rs.getString(6));
Float score_fill=Float.valueOf(rs.getString(7));
Float score_ess=Float.valueOf(rs.getString(8));
Float score=Float.valueOf(rs.getString(9));
String grade=rs.getString(10);
stuBeanAllList.add(new StudentInfoBean(ID, CLASS, name, score_sing, score_muti, score_jud, score_fill, score_ess, score,grade));
total++;
}
ArrayListStudentInfoBean> stuTableList = new ArrayListStudentInfoBean>();
for (int i = cpage * per; i cpage * per + per && i total; i++) {
stuTableList.add(stuBeanAllList.get(i));
}
String temp=request.getParameter("modify_id");
String fileName1 = imgPath.getSubmittedFileName();
if (fileName1 == null || fileName1.length() == 0)
break;
try {
imgPath.write(savePath + "/" + fileName1);
} catch (Exception e) {
System.out.println(e);
}
try {
Path sorcePath = Paths.get(savePath + "/" + fileName1);
Path targetPath = Paths.get("E:WorkSpace_Allcli_workspace" + request.getContextPath()
+ "/WebRoot/images/" + fileName1);
Files.copy(sorcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
} catch (Exception e) {
}
}
}
try {
DatabassAccessObject db;
switch (mode) {
case 1:
ListQuestionBean> listExcel = QuestionExcelService.getAllByExcel(excelSorcePath);
db = new DatabassAccessObject();
for (QuestionBean queBean : listExcel) {
if (!QuestionExcelService.isExist(queBean.getQ_id())) {
db.insert("insert into question values (?,?,?,?,?,?,?) ;", queBean.getQ_id(),
queBean.getQ_type(), queBean.getQ_title(), queBean.getQ_select(), queBean.getQ_score(),
queBean.getQ_key(), queBean.getQ_img());
} else {
db.modify(
"update question set type = ? , title = ? , `select` = ? , score = ? , `key` = ? , img = ? where number = ? ;",
queBean.getQ_type(), queBean.getQ_title(), queBean.getQ_select(), queBean.getQ_score(),
queBean.getQ_key(), queBean.getQ_img(), queBean.getQ_id());
}
}
}
}
return listA;
}
}
package examservlet.control;
@WebServlet("/HandleStuInfo")
public class StudentModifyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
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");
String executeMode = request.getParameter("executeMode");
int mode = Integer.parseInt(executeMode);
System.out.println(mode);
int cpage = 0;
int per = 10;
try {
DatabassAccessObject db=new DatabassAccessObject();
ResultSet rsTotal = db
.query("select count(*) as total from student");
if (rsTotal.next()) {
request.setAttribute("totalPage", 1
+ (rsTotal.getInt("total") - 1) / per);
}
ArrayListStudentInfoBean> stuBeanAllList = new ArrayListStudentInfoBean>();
ResultSet rs=null;
String s_ID=request.getParameter("s_ID");
if (s_ID!=null) {
rs=db.query("select score.ID,class,name,score_sing,score_muti,score_jud,score_fill,score_ess,score.score,grade from student join score on student.id=score.id where score.id LIKE'%"+s_ID+"%';");
}else {
rs = db.query("select score.ID,class,name,score_sing,score_muti,score_jud,score_fill,score_ess,score.score,grade from student join score on student.id=score.id order by ID ;");
}
int total = 0;
while (rs.next()) {
String ID=rs.getString(1);
String CLASS=rs.getString(2);
String name=rs.getString(3);
Float score_sing=Float.valueOf(rs.getString(4));
Float score_muti=Float.valueOf(rs.getString(5));
Float score_jud=Float.valueOf(rs.getString(6));
Float score_fill=Float.valueOf(rs.getString(7));
Float score_ess=Float.valueOf(rs.getString(8));
Float score=Float.valueOf(rs.getString(9));
String grade=rs.getString(10);
stuBeanAllList.add(new StudentInfoBean(ID, CLASS, name, score_sing, score_muti, score_jud, score_fill, score_ess, score,grade));
total++;
}
ArrayListStudentInfoBean> stuTableList = new ArrayListStudentInfoBean>();
for (int i = cpage * per; i cpage * per + per && i total; i++) {
stuTableList.add(stuBeanAllList.get(i));
}
String temp=request.getParameter("modify_id");
String ID = request.getParameter("ID").trim();
String password = request.getParameter("password").trim();
String userRole = request.getParameter("role").trim();
boolean boo = (ID.length() > 0) && (password.length() > 0);
try {
DatabassAccessObject db = new DatabassAccessObject();
con = db.con;
String condition = "select * from" + userRole + "where ID ='" + ID + "'and password ='" + password
+ "'";
sql = con.createStatement();
if (boo) {
ResultSet rs = sql.executeQuery(condition);
boolean isExist = rs.next();
if (isExist == true) {
success(request, response, rs, userRole);
response.sendRedirect(userRole + "/" + userRole + ".jsp");
} else {
String backNews = "您输入的学号不存在 / 密码不匹配";
fail(request, response, ID, backNews);
}
} else {
String backNews = "请输入用户名和密码";
fail(request, response, ID, backNews);
}
con.close();
} catch (Exception exp) {
String backNews = "" + exp;
fail(request, response, ID, backNews);
}
}
private void success(HttpServletRequest request, HttpServletResponse response, ResultSet rs, String role) {
HttpSession session = request.getSession(true);
LoginBean loginBean = new LoginBean();
try {
rs.first();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
Integer mode = Integer.valueOf(request.getParameter("mode"));
HSSFWorkbook workbook=null;
String createExcelname = "";
switch (mode) {
case 1:
workbook=(HSSFWorkbook) StuInfoExcelService.getAllByDatabase();
createExcelname = "tb_student.xls";
break;
case 2:
workbook=(HSSFWorkbook) QuestionExcelService.getAllByDatabase();
createExcelname = "tb_question.xls";
break;
case 3:
workbook=(HSSFWorkbook) ScoreExcleService.getAllByDatabase();
createExcelname = "tb_student_score.xls";
break;
default:
break;
}
String dir = request.getSession().getServletContext().getRealPath("/images");
File fileLocation = new File(dir);
if (!fileLocation.exists()) {
boolean isCreated = fileLocation.mkdir();
}
String webUrl = request.getSession().getServletContext().getRealPath("/images");
String outputFile = webUrl + File.separator + createExcelname;
FileOutputStream fop = new FileOutputStream(outputFile);
workbook.write(fop);
fop.flush();
fop.close();
File f = new File(outputFile);
if (f.exists() && f.isFile()) {
try {
FileInputStream fis = new FileInputStream(f);
URLEncoder.encode(f.getName(), "utf-8");
byte[] b = new byte[fis.available()];
fis.read(b);
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition", "attachment; filename=" + createExcelname + "");
ServletOutputStream out = response.getOutputStream();
out.write(b);
out.flush();
out.close();
switch (mode) {
case 1:
ListQuestionBean> listExcel = QuestionExcelService.getAllByExcel(excelSorcePath);
db = new DatabassAccessObject();
for (QuestionBean queBean : listExcel) {if (!QuestionExcelService.isExist(queBean.getQ_id())) {db.insert("insert into question values (?,?,?,?,?,?,?) ;", queBean.getQ_id(),
queBean.getQ_type(), queBean.getQ_title(), queBean.getQ_select(), queBean.getQ_score(),
queBean.getQ_key(), queBean.getQ_img());
} else {
db.modify(
"update question set type = ? , title = ? , `select` = ? , score = ? , `key` = ? , img = ? where number = ? ;",
queBean.getQ_type(), queBean.getQ_title(), queBean.getQ_select(), queBean.getQ_score(),
queBean.getQ_key(), queBean.getQ_img(), queBean.getQ_id());
}
}
System.out.println("数据导入成功");
PrintWriter out = response.getWriter();
out.println("script language=javascript>alert(' 数据导入成功 ');window.location='" + request.getContextPath()
+ "/ShowQuePage';script>");
break;
case 2:
ListStudentInfoBean> stuListExcel = StuInfoExcelService.getAllByExcel(excelSorcePath);
db = new DatabassAccessObject();
for (StudentInfoBean stuBean : stuListExcel) {if (!StuInfoExcelService.isExist(stuBean.getID())) {db.insert("INSERT INTO student (ID,password,name,class,score) VALUES (?,?,?,?,?) ;",
stuBean.getID(), stuBean.getPassword(), stuBean.getName(), stuBean.getCLASS(),
stuBean.getScore());
} else {
db.modify("UPDATE student SET password = ? , name = ? , class = ? , score = ? WHERE ID = ? ;",
stuBean.getPassword(), stuBean.getName(), stuBean.getCLASS(), stuBean.getScore(),
stuBean.getID());
}
}
System.out.println("数据导入成功");
PrintWriter out2 = response.getWriter();
out2.println("script language=javascript>alert(' 数据导入成功 ');window.location='" + request.getContextPath()
+ "/ShowStuPage';script>");
default:
break;
}
} catch (Exception e1) {
// TODO Auto-generated catch block
case "多选题":
score_muti += Float.parseFloat(que.getQ_score());
break;
case "判断题":
score_jud += Float.parseFloat(que.getQ_score());
break;
case "填空题":
score_fill += Float.parseFloat(que.getQ_score());
break;
default:
break;
}
}
}
} else {
String[] KEY_WORD = que.getQ_key().split("@");
Float totalScore = Float.parseFloat(que.getQ_score());
Float singleScore = 0.0f;
String stuAns = "";
if (stuAnsArr != null) {
for (int j = 0; j stuAnsArr.length; j++) {
stuAns += stuAnsArr[j];
}
}
if (KEY_WORD != null) {
singleScore = totalScore / KEY_WORD.length;
for (int j = 0; j KEY_WORD.length; j++) {
if (stuAns.contains(KEY_WORD[j])) {
System.out.println(stuAns + "包含关键词:" + KEY_WORD[j]);
score_ess += singleScore;
} else {
System.out.println("不包含关键词:" + KEY_WORD[j]);
}
}
}
}
}
score = score_sing + score_muti + score_jud + score_fill + score_ess;
int tihao = 0;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ArrayListQuestionBean> listALL = new ArrayListQuestionBean>();
int num1=5,num2=4,num3=5,num4=5,num5=3;
int examTime=30;
try {
DatabassAccessObject db = new DatabassAccessObject();
ResultSet rs=db.query("select * from paper");
num1=Integer.valueOf(rs.getString("qty_sing"));
num2=Integer.valueOf(rs.getString("qty_muti"));
num3=Integer.valueOf(rs.getString("qty_jud"));
num4=Integer.valueOf(rs.getString("qty_fill"));
num5=Integer.valueOf(rs.getString("qty_ess"));
examTime=Integer.valueOf(rs.getString("time"));
} catch (Exception e) {
}
try {
DatabassAccessObject db = new DatabassAccessObject();
ResultSet rs = db.query("SELECT * FROM question");
LinkedListInteger> list1 = new LinkedListInteger>();
LinkedListInteger> list2 = new LinkedListInteger>();
LinkedListInteger> list3 = new LinkedListInteger>();
LinkedListInteger> list4 = new LinkedListInteger>();
LinkedListInteger> list5 = new LinkedListInteger>();
while (rs.next()) {
switch (rs.getString(2)) {
case "单选题":
list1.add(rs.getRow());
break;
case "多选题":
list2.add(rs.getRow());
break;
case "判断题":
list3.add(rs.getRow());
break;
case "填空题":
list4.add(rs.getRow());
break;
case "简答题":
list5.add(rs.getRow());
break;
if (stuAns.equalsIgnoreCase(que.getQ_key())) {
switch (que.getQ_type()) {
case "单选题":
score_sing += Float.parseFloat(que.getQ_score());
break;
case "多选题":
score_muti += Float.parseFloat(que.getQ_score());
break;
case "判断题":
score_jud += Float.parseFloat(que.getQ_score());
break;
case "填空题":
score_fill += Float.parseFloat(que.getQ_score());
break;
default:
break;
}
}
}
} else {
String[] KEY_WORD = que.getQ_key().split("@");
Float totalScore = Float.parseFloat(que.getQ_score());
Float singleScore = 0.0f;
String stuAns = "";
if (stuAnsArr != null) {
for (int j = 0; j stuAnsArr.length; j++) {
stuAns += stuAnsArr[j];
}
}
if (KEY_WORD != null) {
singleScore = totalScore / KEY_WORD.length;
for (int j = 0; j KEY_WORD.length; j++) {
if (stuAns.contains(KEY_WORD[j])) {
System.out.println(stuAns + "包含关键词:" + KEY_WORD[j]);
score_ess += singleScore;
} else {
System.out.println("不包含关键词:" + KEY_WORD[j]);
}
}
}
}
}
score = score_sing + score_muti + score_jud + score_fill + score_ess;
String grade = "";
int f = Math.round(score);
int g = ((f 0) == true ? 1 : 0) + ((f 60) == true ? 1 : 0) + ((f 75) == true ? 1 : 0)
+ ((f 85) == true ? 1 : 0) + ((f 95) == true ? 1 : 0);
switch (g) {
case 0:
grade = "优秀";
Float totalScore = Float.parseFloat(que.getQ_score());
Float singleScore = 0.0f;
String stuAns = "";
if (stuAnsArr != null) {
for (int j = 0; j stuAnsArr.length; j++) {
stuAns += stuAnsArr[j];
}
}
if (KEY_WORD != null) {
singleScore = totalScore / KEY_WORD.length;
for (int j = 0; j KEY_WORD.length; j++) {
if (stuAns.contains(KEY_WORD[j])) {
System.out.println(stuAns + "包含关键词:" + KEY_WORD[j]);
score_ess += singleScore;
} else {
System.out.println("不包含关键词:" + KEY_WORD[j]);
}
}
}
}
}
score = score_sing + score_muti + score_jud + score_fill + score_ess;
String grade = "";
int f = Math.round(score);
int g = ((f 0) == true ? 1 : 0) + ((f 60) == true ? 1 : 0) + ((f 75) == true ? 1 : 0)
+ ((f 85) == true ? 1 : 0) + ((f 95) == true ? 1 : 0);
switch (g) {
case 0:
grade = "优秀";
break;
case 1:
grade = "良好";
break;
case 2:
grade = "中等";
break;
case 3:
grade = "及格";
break;
case 4:
grade = "不及格";
break;
db.modify("update question set type = ? , title = ? , `select` = ? , score = ? , `key` = ? , img = ? where number = ? ;",type,title,select,score,key,fileName,number);
}else {
db.modify("update question set type = ? , title = ? , `select` = ? , score = ? , `key` = ? where number = ? ;",type,title,select,score,key,number);
}
break;
case 2:// 删
db.modify("delete from question where number = ? ;", number);
break;
default:
break;
}
} catch (Exception e) {
}
if (mode==0) {
PrintWriter out = response.getWriter();
}else
response.sendRedirect("ShowQuePage");
}
}
package examservlet.control;
HttpSession session = request.getSession();
session.setAttribute("examTime", examTime);
session.setAttribute("ques", listALL);
response.sendRedirect(request.getContextPath()+"/student/student_exam_paper.jsp");
} catch (Exception e) {
e.printStackTrace();
}
}
public ArrayListQuestionBean> randomQue(LinkedListInteger> list,ResultSet rs,int count) {
int m = -1;
int index = -1;
ArrayListQuestionBean> listA = new ArrayListQuestionBean>();
while (list.size() > 0&&count>0) {
count--;
m = (int) (Math.random() * list.size());
index = list.get(m);
System.out.println(index);
list.remove(m);
tihao++;
try {
rs.absolute(index);
QuestionBean queBean = new QuestionBean();
queBean.setQ_id(String.valueOf(tihao));
queBean.setQ_type(rs.getString(2));
queBean.setQ_title(rs.getString(3));
String selectString = rs.getString(4);
System.out.println(rs.getString(2));
queBean.setQ_score(rs.getString(5));
queBean.setQ_key(rs.getString(6));
queBean.setQ_img(rs.getString(7));
if (selectString != null) {
queBean.setQ_select(selectString);
String[] temp = selectString.split("@");
queBean.setOptions(temp);
}
@WebServlet("/HandleStuInfo")
public class StudentModifyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
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");
String executeMode = request.getParameter("executeMode");
int mode = Integer.parseInt(executeMode);
System.out.println(mode);
int cpage = 0;
int per = 10;
if (request.getParameter("cpage") != null) {
cpage = Integer.parseInt(request.getParameter("cpage"));
}
request.setAttribute("cpage", cpage);
if (request.getParameter("per") != null) {
per = Integer.parseInt(request.getParameter("per"));
case 0:// 增
db.insert("insert into question values (?,?,?,?,?,?,?) ;",number,type,title,select,score,key,fileName);
break;
case 1:// 改
if (fileName!="") {
db.modify("update question set type = ? , title = ? , `select` = ? , score = ? , `key` = ? , img = ? where number = ? ;",type,title,select,score,key,fileName,number);
}else {
db.modify("update question set type = ? , title = ? , `select` = ? , score = ? , `key` = ? where number = ? ;",type,title,select,score,key,number);
}
break;
case 2:// 删
db.modify("delete from question where number = ? ;", number);
break;
default:
break;
}
} catch (Exception e) {
}
if (mode==0) {
PrintWriter out = response.getWriter();
}else
response.sendRedirect("ShowQuePage");
}
}
package examservlet.control;
}
}
}
package examservlet.control;
@WebServlet("/HandlePaper")
public class QuestionExtractServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
int tihao = 0;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ArrayListQuestionBean> listALL = new ArrayListQuestionBean>();
int num1=5,num2=4,num3=5,num4=5,num5=3;
int examTime=30;
try {
DatabassAccessObject db = new DatabassAccessObject();
queBean.getQ_type(), queBean.getQ_title(), queBean.getQ_select(), queBean.getQ_score(),
queBean.getQ_key(), queBean.getQ_img(), queBean.getQ_id());
}
}
System.out.println("数据导入成功");
PrintWriter out = response.getWriter();
out.println("script language=javascript>alert(' 数据导入成功 ');window.location='" + request.getContextPath()
+ "/ShowQuePage';script>");
break;
case 2:
ListStudentInfoBean> stuListExcel = StuInfoExcelService.getAllByExcel(excelSorcePath);
db = new DatabassAccessObject();
for (StudentInfoBean stuBean : stuListExcel) {if (!StuInfoExcelService.isExist(stuBean.getID())) {db.insert("INSERT INTO student (ID,password,name,class,score) VALUES (?,?,?,?,?) ;",
stuBean.getID(), stuBean.getPassword(), stuBean.getName(), stuBean.getCLASS(),
stuBean.getScore());
} else {
db.modify("UPDATE student SET password = ? , name = ? , class = ? , score = ? WHERE ID = ? ;",
stuBean.getPassword(), stuBean.getName(), stuBean.getCLASS(), stuBean.getScore(),
stuBean.getID());
}
}
System.out.println("数据导入成功");
PrintWriter out2 = response.getWriter();
out2.println("script language=javascript>alert(' 数据导入成功 ');window.location='" + request.getContextPath()
+ "/ShowStuPage';script>");
default:
break;
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();}
}
}
package examservlet.control;
}else {
rs = db.query("select score.ID,class,name,score_sing,score_muti,score_jud,score_fill,score_ess,score.score,grade from student join score on student.id=score.id order by ID ;");
}
int total = 0;
while (rs.next()) {
String ID=rs.getString(1);
String CLASS=rs.getString(2);
String name=rs.getString(3);
Float score_sing=Float.valueOf(rs.getString(4));
Float score_muti=Float.valueOf(rs.getString(5));
Float score_jud=Float.valueOf(rs.getString(6));
Float score_fill=Float.valueOf(rs.getString(7));
Float score_ess=Float.valueOf(rs.getString(8));
Float score=Float.valueOf(rs.getString(9));
String grade=rs.getString(10);
stuBeanAllList.add(new StudentInfoBean(ID, CLASS, name, score_sing, score_muti, score_jud, score_fill, score_ess, score,grade));
total++;
}
ArrayListStudentInfoBean> stuTableList = new ArrayListStudentInfoBean>();
for (int i = cpage * per; i cpage * per + per && i total; i++) {
stuTableList.add(stuBeanAllList.get(i));
}
String temp=request.getParameter("modify_id");
System.out.println(temp);
request.setAttribute("modify_id", temp);
request.setAttribute("total", total);
request.setAttribute("stuTableList", stuTableList);
request.getRequestDispatcher("/teacher/teacher_score_manage.jsp").forward(request,
response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package examservlet.control;
@WebServlet("/ScoreModify")
while (rs.next()) {
StudentInfoBean stuBean = new StudentInfoBean();
stuBean.setID(rs.getString("Id"));
stuBean.setPassword(rs.getString("password"));
stuBean.setName(rs.getString("Name"));
stuBean.setCLASS(rs.getString("class"));
stuBean.setScore(rs.getFloat("score"));
stuBeanAllList.add(stuBean);
total++;
}
ArrayListStudentInfoBean> stuTableList = new ArrayListStudentInfoBean>();
for (int i = cpage * per; i cpage * per + per && i total; i++) {
stuTableList.add(stuBeanAllList.get(i));
}
String temp=request.getParameter("modify_id");
System.out.println(temp);
request.setAttribute("modify_id", temp);
request.setAttribute("total", total);
request.setAttribute("stuTableList", stuTableList);
request.getRequestDispatcher("/teacher/teacher_stu_manage.jsp").forward(request,
response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package examservlet.control;
*/
public ArrayListQuestionBean> randomQue(LinkedListInteger> list,ResultSet rs,int count) {
int m = -1;
int index = -1;
ArrayListQuestionBean> listA = new ArrayListQuestionBean>();
while (list.size() > 0&&count>0) {
count--;
m = (int) (Math.random() * list.size());
index = list.get(m);
System.out.println(index);
list.remove(m);
tihao++;
try {
rs.absolute(index);
QuestionBean queBean = new QuestionBean();
queBean.setQ_id(String.valueOf(tihao));
queBean.setQ_type(rs.getString(2));
queBean.setQ_title(rs.getString(3));
String selectString = rs.getString(4);
System.out.println(rs.getString(2));
queBean.setQ_score(rs.getString(5));
queBean.setQ_key(rs.getString(6));
queBean.setQ_img(rs.getString(7));
if (selectString != null) {
queBean.setQ_select(selectString);
String[] temp = selectString.split("@");
queBean.setOptions(temp);
}
listA.add(queBean);
} catch (SQLException e) {
e.printStackTrace();
}
}
return listA;
}
}
package examservlet.control;
@WebServlet("/HandleLogin")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
Connection con;
Statement sql;
String ID = request.getParameter("ID").trim();
* 此外,还可以接受批量上传的图片,并保存到工程目录下
*/
@WebServlet("/HandleBatchAdd")
@MultipartConfig
public class BatchAdditionServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
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");
String excelSorcePath = "";
Integer mode = Integer.valueOf(request.getParameter("mode"));
String savePath = getServletContext().getRealPath("/images");
Part part = request.getPart("excel");
String fileName = part.getSubmittedFileName();
if (fileName.length() > 0) {
savePath = getServletContext().getRealPath("/images");
part.write(savePath + "/" + fileName);
excelSorcePath = savePath + "/" + fileName;
}
for (Part imgPath : request.getParts()) {
if (imgPath.getName().startsWith("img")) {
String fileName1 = imgPath.getSubmittedFileName();
if (fileName1 == null || fileName1.length() == 0)
break;
try {
imgPath.write(savePath + "/" + fileName1);
原文地址: 基于 javaweb mysql 的 jsp servlet 在线考试管理系统 (java jsp jquery servlet mysql)