IDEA+Java+SSH+Bootstrap+Mysql to realize online examination system (including thesis)

1, System introduction


1. Development environment

Development tool: IDEA2018.2

JDK version: jdk1.8

Mysql version: 8.0.13


2. Technology selection

1. Back end: Java+SSH is used for development, filter is used to verify whether the user logs in, and MVC is used for layering.

2. Database: using Hibernate as data persistence framework.

3. Front end: using Bootstrap as the front-end framework to develop, using jstl to traverse the data. jsp to display the page.

3. System function

1. Students

1. Start online

2. Score inquiry

3. Change the password

2. Administrator

1. Student information management

Adding, deleting, changing and checking examinee information

2. Examination results inquiry

3. Examination paper information management

Adding, deleting, modifying and checking of examination papers

4. Question information management

Adding, deleting, changing and checking the information of examination questions

4. Database

/*
 Navicat Premium Data Transfer

 Source Server         : Mysql
 Source Server Type    : MySQL
 Source Server Version : 80013
 Source Host           : localhost:3306
 Source Schema         : ssh_online_exam

 Target Server Type    : MySQL
 Target Server Version : 80013
 File Encoding         : 65001

 Date: 11/07/2021 02:00:10
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_exam
-- ----------------------------
DROP TABLE IF EXISTS `t_exam`;
CREATE TABLE `t_exam`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `examDate` datetime(0) NULL DEFAULT NULL,
  `moreScore` int(11) NOT NULL,
  `score` int(11) NOT NULL,
  `singleScore` int(11) NOT NULL,
  `paperId` int(11) NULL DEFAULT NULL,
  `studentId` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `FK_l14kkd2w86mpy8v2snw37hskx`(`paperId`) USING BTREE,
  INDEX `FK_sl2v4qucyp0qe9yvnk6icka10`(`studentId`) USING BTREE,
  CONSTRAINT `FK_l14kkd2w86mpy8v2snw37hskx` FOREIGN KEY (`paperId`) REFERENCES `t_paper` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `FK_sl2v4qucyp0qe9yvnk6icka10` FOREIGN KEY (`studentId`) REFERENCES `t_student` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of t_exam
-- ----------------------------
INSERT INTO `t_exam` VALUES (25, '2021-06-30 15:42:37', 0, 40, 40, 1, 'JS1001');

-- ----------------------------
-- Table structure for t_manager
-- ----------------------------
DROP TABLE IF EXISTS `t_manager`;
CREATE TABLE `t_manager`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `userName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of t_manager
-- ----------------------------
INSERT INTO `t_manager` VALUES (1, 'administrators', 'admin', 'admin');

-- ----------------------------
-- Table structure for t_paper
-- ----------------------------
DROP TABLE IF EXISTS `t_paper`;
CREATE TABLE `t_paper`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `joinDate` datetime(0) NULL DEFAULT NULL,
  `paperName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of t_paper
-- ----------------------------
INSERT INTO `t_paper` VALUES (1, '2014-01-01 00:00:00', 'Java Test paper 1');
INSERT INTO `t_paper` VALUES (2, '2014-02-01 00:00:00', 'Chinese test paper 2');
INSERT INTO `t_paper` VALUES (3, '2014-01-01 00:00:00', 'Mathematics test paper 1');

-- ----------------------------
-- Table structure for t_question
-- ----------------------------
DROP TABLE IF EXISTS `t_question`;
CREATE TABLE `t_question`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `answer` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `joinTime` datetime(0) NULL DEFAULT NULL,
  `optionA` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `optionB` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `optionC` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `optionD` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `subject` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `paperId` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `FK_ebouwob97chiilpjmc6gtgwkw`(`paperId`) USING BTREE,
  CONSTRAINT `FK_ebouwob97chiilpjmc6gtgwkw` FOREIGN KEY (`paperId`) REFERENCES `t_paper` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of t_question
-- ----------------------------
INSERT INTO `t_question` VALUES (1, 'D', '2014-01-01 00:00:00', 'A. a1', 'B. $1', 'C. _1', 'D .11', 'The following can not be taken as java What are the language modifiers?', '1', 1);
INSERT INTO `t_question` VALUES (2, 'A', '2014-01-01 00:00:00', 'A. a1.java', 'B. a.class', 'C. a1', 'D. Fine', 'There is a passage java Application, whose main class name is a1,What is the name of the source file to save it?', '1', 1);
INSERT INTO `t_question` VALUES (3, 'A,B', '2014-01-01 00:00:00', 'A. String []a', 'B. String a[]', 'C. char a[][]', 'D. String a[10]', 'What is the correct way to declare a one-dimensional array?', '2', 1);
INSERT INTO `t_question` VALUES (4, 'A,D', '2014-01-01 00:00:00', 'A. stay java Only single inheritance is allowed in.', 'B. stay java Only one interface can be implemented by a class in.', 'C. stay java A class in cannot inherit a class and implement an interface at the same time.', 'D. java The single inheritance of makes the code more reliable.', 'Which of the following statements about inheritance are correct?', '2', 1);
INSERT INTO `t_question` VALUES (5, 'C', '2014-01-01 00:00:00', 'A. A subclass can have more than one parent class, and a parent class can also have more than one subclass', 'B. A subclass can have more than one parent class, but a parent class can only have one child class', 'C. A subclass can have one parent, but a parent can have multiple subclasses', 'D. None of the above is true', 'stay Java Chinese?', '1', 1);
INSERT INTO `t_question` VALUES (6, 'A,D', '2014-01-01 00:00:00', 'A. The declaration of the package must be the first line of code in the source file.', 'B. The declaration of the package must follow import After the statement.', 'C. Only public classes can be placed in packages.', 'D. You can put classes in multiple source files in the same package.', 'Can you put classes in multiple source files in the same package?', '2', 1);
INSERT INTO `t_question` VALUES (7, 'C', '2014-01-01 00:00:00', 'A. Java It's a cross platform programming language', 'B. Java Support distributed computing', 'C. Java Is a process oriented programming language', 'D. Java Is an object-oriented programming language', 'The following is about Java What is the wrong description of the characteristics of language?', '1', 1);
INSERT INTO `t_question` VALUES (21, 'D', '2021-06-29 16:00:00', '1', '2', '3', '4', 'Java How many basic classes are there?', '1', 1);

-- ----------------------------
-- Table structure for t_student
-- ----------------------------
DROP TABLE IF EXISTS `t_student`;
CREATE TABLE `t_student`  (
  `id` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `cardNo` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `password` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `prefession` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `sex` varchar(5) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of t_student
-- ----------------------------
INSERT INTO `t_student` VALUES ('JS1001', '1001', 'Zhang San', '123456', 'computer science', 'male');
INSERT INTO `t_student` VALUES ('JS1002', '1002', 'Li Si', '123456', 'software engineering', 'male');
INSERT INTO `t_student` VALUES ('JS1003', '1003', 'Wang Wu', '123456', 'Network attack and defense', 'female');

SET FOREIGN_KEY_CHECKS = 1;

5. Project screenshot

2, System display

1. Student - login page

2. Students - main page

3. Students - online examination

4. Student - grade query

5. Student - change password

6. Administrator - login page

7. Administrator - main page

8. Administrator - examinee information management

9. Administrator - examinee score query

10. Administrator - test paper management

11. Administrator - topic management

3, Part code

ExamAction

package com.java.yzl.action;
//Exam Action class

import com.java.yzl.actionInter.ExamActionInter;
import com.java.yzl.bean.Exam;
import com.java.yzl.bean.PageBean;
import com.java.yzl.bean.Question;
import com.java.yzl.dao.ExamDao;
import com.java.yzl.dao.QuestionDao;
import com.java.yzl.util.PageUtil;
import com.java.yzl.util.PropertiesUtil;
import com.java.yzl.util.StringUtil;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.ServletRequestAware;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.*;
import java.util.Map.Entry;

public class ExamAction extends ActionSupport implements ServletRequestAware, ExamActionInter {

    private static final long serialVersionUID = 1L;

    private ExamDao examDao = new ExamDao();
    private QuestionDao questionDao = new QuestionDao();
    private HttpServletRequest request;

    private String mainPage;
    private Exam exam;
    private Exam s_exam;
    private List<Exam> examList;
    private String page;
    private int total;
    private String pageCode;

    public String getMainPage() {
        return mainPage;
    }

    public void setMainPage(String mainPage) {
        this.mainPage = mainPage;
    }

    public Exam getExam() {
        return exam;
    }

    public void setExam(Exam exam) {
        this.exam = exam;
    }


    public List<Exam> getExamList() {
        return examList;
    }

    public void setExamList(List<Exam> examList) {
        this.examList = examList;
    }


    public Exam getS_exam() {
        return s_exam;
    }

    public void setS_exam(Exam s_exam) {
        this.s_exam = s_exam;
    }


    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public String getPageCode() {
        return pageCode;
    }

    public void setPageCode(String pageCode) {
        this.pageCode = pageCode;
    }

    /**
     * Calculate / add test scores
     *
     * @return
     * @throws Exception
     */
    public String add() throws Exception {
        Map<String, String[]> keyMap = new HashMap<String, String[]>();
        keyMap = request.getParameterMap();
        Iterator<Entry<String, String[]>> it2 = keyMap.entrySet().iterator();
        int totalScore = 0;
        int singleScore = 0;
        int moreScore = 0;
        while (it2.hasNext()) {
            Entry<String, String[]> entry = it2.next();
            String keyStr = entry.getKey();
            String values[] = entry.getValue();
            String key;
            String value = "";
            if (keyStr.equals("exam.student.id") || keyStr.equals("exam.paper.id")) {
                continue;
            }
            if (keyStr.split("-")[1].equals("r")) {  // Single choice
                key = keyStr.split("-")[2];
                value = values[0];
                singleScore += this.calScore(key, value, "1");
            } else {  // Multiple choice
                key = keyStr.split("-")[2];
                for (String s : values) {
                    value += s + ",";
                }
                value = value.substring(0, value.length() - 1);
                moreScore += this.calScore(key, value, "2");
            }
        }
        totalScore = singleScore + moreScore;
        exam.setSingleScore(singleScore);
        exam.setMoreScore(moreScore);
        exam.setScore(totalScore);
        exam.setExamDate(new Date());
        examDao.saveExam(exam);
        mainPage = "exam/examResult.jsp";
        return SUCCESS;
    }

    /**
     * Calculate the score of each question
     *
     * @param questionId
     * @param userAnswer
     * @return
     */
    private int calScore(String questionId, String userAnswer, String type) throws Exception {
        Question question = questionDao.getQuestion(questionId);
        if (userAnswer.equals(question.getAnswer())) {
            if ("1".equals(type)) {
                return 20;
            } else {
                return 30;
            }
        } else {
            return 0;
        }
    }

    /**
     * Get test scores
     *
     * @return
     * @throws Exception
     */
    public String getExams() throws Exception {
        examList = examDao.getExams(s_exam, null);
        mainPage = "exam/myExam.jsp";
        return SUCCESS;
    }

    /**
     * Get all test scores
     *
     * @return
     * @throws Exception
     */
    public String examList() throws Exception {
        HttpSession session = request.getSession();
        if (StringUtil.isEmpty(page)) {
            page = "1";
        }
        if (s_exam != null) {
            session.setAttribute("s_exam", s_exam);
        } else {
            Object o = session.getAttribute("s_exam");
            if (o != null) {
                s_exam = (Exam) o;
            } else {
                s_exam = new Exam();
            }
        }
        PageBean pageBean = new PageBean(Integer.parseInt(page), Integer.parseInt(PropertiesUtil.getValue("pageSize")));
        examList = examDao.getExams(s_exam, pageBean);
        total = examDao.examCount(s_exam);
        pageCode = PageUtil.genPagation(request.getContextPath() + "/exam!examList", total, Integer.parseInt(page), Integer.parseInt(PropertiesUtil.getValue("pageSize")));
        mainPage = "exam/examList.jsp";
        return SUCCESS;
    }

    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
    }
}

ManagerAction

package com.java.yzl.action;

import com.java.yzl.bean.Manager;
import com.java.yzl.dao.ManagerDao;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.ServletRequestAware;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

public class ManagerAction extends ActionSupport implements ServletRequestAware {

    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private HttpServletRequest request;

    private ManagerDao managerDao = new ManagerDao();

    private Manager manager;
    private String error;

    public Manager getManager() {
        return manager;
    }

    public void setManager(Manager manager) {
        this.manager = manager;
    }


    public String getError() {
        return error;
    }

    public void setError(String error) {
        this.error = error;
    }

    /**
     * validate logon
     *
     * @return
     * @throws Exception
     */
    public String login() throws Exception {
        HttpSession session = request.getSession();
        Manager currentUser = managerDao.login(manager);
        if (currentUser == null) {
            error = "Wrong user name or password!";
            return ERROR;
        } else {
            session.setAttribute("currentUser", currentUser);
            return SUCCESS;
        }
    }

    /**
     * Log off user
     *
     * @throws Exception
     */
    public String logout() throws Exception {
        request.getSession().invalidate();
        return "logout";
    }

    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
    }

}

PaperAction

package com.java.yzl.action;

import com.java.yzl.bean.Paper;
import com.java.yzl.bean.Question;
import com.java.yzl.dao.PaperDao;
import com.java.yzl.dao.QuestionDao;
import com.java.yzl.util.ResponseUtil;
import com.java.yzl.util.StringUtil;
import com.opensymphony.xwork2.ActionSupport;
import net.sf.json.JSONObject;
import org.apache.struts2.ServletActionContext;

import java.util.*;

/**
 * Test paper Action class
 *
 * @author Administrator
 */
public class PaperAction extends ActionSupport {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    private PaperDao paperDao = new PaperDao();
    private QuestionDao questionDao = new QuestionDao();

    private String mainPage;
    private String paperId;

    private List<Paper> paperList = new ArrayList<Paper>();
    private List<Question> squestionList = new ArrayList<Question>();
    private List<Question> mquestionList = new ArrayList<Question>();

    private String title; // title


    private Paper paper;

    public List<Paper> getPaperList() {
        return paperList;
    }

    public void setPaperList(List<Paper> paperList) {
        this.paperList = paperList;
    }


    public List<Question> getSquestionList() {
        return squestionList;
    }

    public void setSquestionList(List<Question> squestionList) {
        this.squestionList = squestionList;
    }

    public List<Question> getMquestionList() {
        return mquestionList;
    }

    public void setMquestionList(List<Question> mquestionList) {
        this.mquestionList = mquestionList;
    }

    public Paper getPaper() {
        return paper;
    }

    public void setPaper(Paper paper) {
        this.paper = paper;
    }

    public String getPaperId() {
        return paperId;
    }

    public void setPaperId(String paperId) {
        this.paperId = paperId;
    }

    public String getMainPage() {
        return mainPage;
    }

    public void setMainPage(String mainPage) {
        this.mainPage = mainPage;
    }


    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * Get all papers
     *
     * @return
     * @throws Exception
     */
    public String list() throws Exception {
        paperList = paperDao.getPapers();
        mainPage = "exam/selectPaper.jsp";
        return SUCCESS;
    }

    /**
     * Get all test papers (Management)
     *
     * @return
     * @throws Exception
     */
    public String paperList() throws Exception {
        paperList = paperDao.getPapers();
        mainPage = "paper/paperList.jsp";
        return SUCCESS;
    }

    /**
     * Get test paper entity by id
     *
     * @return
     * @throws Exception
     */
    public String getPaperById() throws Exception {
        paper = paperDao.getPaper(paperId);
        mainPage = "paper/paperSave.jsp";
        return SUCCESS;
    }

    /**
     * Save pre operation
     *
     * @return
     * @throws Exception
     */
    public String preSave() throws Exception {
        if (StringUtil.isNotEmpty(paperId)) {
            paper = paperDao.getPaper(paperId);
            title = "Revise the test paper";
        } else {
            title = "Add test paper";
        }
        mainPage = "paper/paperSave.jsp";
        return SUCCESS;
    }

    /**
     * Save test paper
     *
     * @return
     * @throws Exception
     */
    public String savePaper() throws Exception {
        if (StringUtil.isNotEmpty(paperId)) {
            paper.setId(Integer.parseInt(paperId));
        } else {
            paper.setJoinDate(new Date());
        }
        paperDao.savePaper(paper);
        return "save";
    }

    /**
     * Delete test paper
     *
     * @return
     * @throws Exception
     */
    public String deletePaper() throws Exception {
        paper = paperDao.getPaper(paperId);
        JSONObject resultJson = new JSONObject();
        if (questionDao.existQuestionByPaperId(paperId)) {
            resultJson.put("error", "There is a question at the bottom of the test paper. It can't be deleted");
        } else {
            paperDao.paperDelete(paper);
            resultJson.put("success", true);
        }
        ResponseUtil.write(resultJson, ServletActionContext.getResponse());
        return null;
    }

    /**
     * Get the specified test paper
     *
     * @return
     * @throws Exception
     */
    public String getDetailPaper() throws Exception {
        paper = paperDao.getPaper(paperId);
        Set<Question> questionList = paper.getQuestions();
        Iterator<Question> it = questionList.iterator();
        while (it.hasNext()) {
            Question q = it.next();
            if ("1".equals(q.getType())) {
                squestionList.add(q);
            } else {
                mquestionList.add(q);
            }
        }
        squestionList = this.getRandomQuestion(squestionList, 3);
        mquestionList = this.getRandomQuestion(mquestionList, 2);
        mainPage = "exam/paper.jsp";
        return SUCCESS;
    }

    /**
     * Get random questions
     *
     * @param questionList
     * @param num
     * @return
     */
    private List<Question> getRandomQuestion(List<Question> questionList, int num) {
        List<Question> resultList = new ArrayList<Question>();
        Random random = new Random();
        if (num > 0) {
            for (int i = 1; i <= num; i++) {
                int n = random.nextInt(questionList.size());
                Question q = questionList.get(n);
                if (resultList.contains(q)) {
                    i--;
                } else {
                    resultList.add(questionList.get(n));
                }
            }
        }
        return resultList;
    }

}

QuestionAction

package com.java.yzl.action;


import com.java.yzl.bean.PageBean;
import com.java.yzl.bean.Paper;
import com.java.yzl.bean.Question;
import com.java.yzl.dao.PaperDao;
import com.java.yzl.dao.QuestionDao;
import com.java.yzl.util.PageUtil;
import com.java.yzl.util.PropertiesUtil;
import com.java.yzl.util.ResponseUtil;
import com.java.yzl.util.StringUtil;
import com.opensymphony.xwork2.ActionSupport;
import net.sf.json.JSONObject;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;

public class QuestionAction extends ActionSupport implements ServletRequestAware {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    private HttpServletRequest request;

    private QuestionDao questionDao = new QuestionDao();
    private PaperDao paperDao = new PaperDao();

    private List<Question> questionList;
    private List<Paper> paperList;
    private String mainPage;

    private String questionId;
    private Question question;
    private String title;

    private String page;
    private int total;
    private String pageCode;

    private Question s_question;


    public List<Paper> getPaperList() {
        return paperList;
    }

    public void setPaperList(List<Paper> paperList) {
        this.paperList = paperList;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public List<Question> getQuestionList() {
        return questionList;
    }

    public void setQuestionList(List<Question> questionList) {
        this.questionList = questionList;
    }

    public String getMainPage() {
        return mainPage;
    }

    public void setMainPage(String mainPage) {
        this.mainPage = mainPage;
    }

    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public String getPageCode() {
        return pageCode;
    }

    public void setPageCode(String pageCode) {
        this.pageCode = pageCode;
    }


    public Question getS_question() {
        return s_question;
    }

    public void setS_question(Question s_question) {
        this.s_question = s_question;
    }


    public String getQuestionId() {
        return questionId;
    }

    public void setQuestionId(String questionId) {
        this.questionId = questionId;
    }

    public Question getQuestion() {
        return question;
    }

    public void setQuestion(Question question) {
        this.question = question;
    }

    /**
     * Query question information
     *
     * @return
     * @throws Exception
     */
    public String list() throws Exception {
        HttpSession session = request.getSession();
        if (StringUtil.isEmpty(page)) {
            page = "1";
        }
        if (s_question != null) {
            session.setAttribute("s_question", s_question);
        } else {
            Object o = session.getAttribute("s_question");
            if (o != null) {
                s_question = (Question) o;
            } else {
                s_question = new Question();
            }
        }
        PageBean pageBean = new PageBean(Integer.parseInt(page), Integer.parseInt(PropertiesUtil.getValue("pageSize")));
        questionList = questionDao.getQuestions(s_question, pageBean);
        total = questionDao.questionCount(s_question);
        pageCode = PageUtil.genPagation(request.getContextPath() + "/question!list", total, Integer.parseInt(page), Integer.parseInt(PropertiesUtil.getValue("pageSize")));
        mainPage = "question/questionList.jsp";
        return SUCCESS;
    }

    /**
     * Get test questions by id
     *
     * @return
     * @throws Exception
     */
    public String getQuestionById() throws Exception {
        question = questionDao.getQuestion(questionId);
        mainPage = "question/questionShow.jsp";
        return SUCCESS;
    }

    /**
     * Pre edit operation
     *
     * @return
     * @throws Exception
     */
    public String preSave() throws Exception {
        paperList = paperDao.getPapers();
        if (StringUtil.isNotEmpty(questionId)) {
            question = questionDao.getQuestion(questionId);
            title = "Modify the test information";
        } else {
            title = "Add question information";
        }
        mainPage = "question/questionSave.jsp";
        return SUCCESS;
    }

    /**
     * Delete test questions
     *
     * @return
     * @throws Exception
     */
    public String delete() throws Exception {
        question = questionDao.getQuestion(questionId);
        questionDao.deleteQuestion(question);
        JSONObject resultJson = new JSONObject();
        resultJson.put("success", true);
        ResponseUtil.write(resultJson, ServletActionContext.getResponse());
        return null;
    }

    /**
     * Save test questions
     *
     * @return
     * @throws Exception
     */
    public String saveQuestion() throws Exception {
        if (StringUtil.isNotEmpty(questionId)) {
            question.setId(Integer.parseInt(questionId));
        }
        questionDao.saveQuestion(question);
        return "save";
    }

    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
    }

}

StudentAction

package com.java.yzl.action;


import com.java.yzl.bean.PageBean;
import com.java.yzl.bean.Student;
import com.java.yzl.dao.StudentDao;
import com.java.yzl.util.*;
import com.opensymphony.xwork2.ActionSupport;
import net.sf.json.JSONObject;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * Student Action class
 *
 * @author Administrator
 */
public class StudentAction extends ActionSupport implements ServletRequestAware {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    private StudentDao studentDao = new StudentDao();
    private HttpServletRequest request;

    private String mainPage;

    private Student student;
    private String error;

    private String page;
    private int total;
    private String pageCode;

    private List<Student> studentList;

    private Student s_student;

    private String id;  // Student number

    private String title; // title

    public Student getStudent() {
        return student;
    }

    public void setStudent(Student student) {
        this.student = student;
    }

    public String getError() {
        return error;
    }

    public void setError(String error) {
        this.error = error;
    }

    public String getMainPage() {
        return mainPage;
    }

    public void setMainPage(String mainPage) {
        this.mainPage = mainPage;
    }


    public String getPageCode() {
        return pageCode;
    }

    public void setPageCode(String pageCode) {
        this.pageCode = pageCode;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }

    public Student getS_student() {
        return s_student;
    }

    public void setS_student(Student s_student) {
        this.s_student = s_student;
    }

    public List<Student> getStudentList() {
        return studentList;
    }

    public void setStudentList(List<Student> studentList) {
        this.studentList = studentList;
    }


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }


    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * validate logon
     *
     * @return
     * @throws Exception
     */
    public String login() throws Exception {
        HttpSession session = request.getSession();
        Student currentUser = studentDao.login(student);
        if (currentUser == null) {
            error = "The admission number or password is wrong!";
            return ERROR;
        } else {
            session.setAttribute("currentUser", currentUser);
            return SUCCESS;
        }
    }

    /**
     * Password modification pre operation
     *
     * @return
     * @throws Exception
     */
    public String preUpdatePassword() throws Exception {
        mainPage = "student/updatePassword.jsp";
        return SUCCESS;
    }

    /**
     * Change Password
     *
     * @return
     * @throws Exception
     */
    public String updatePassword() throws Exception {
        Student s = studentDao.getStudentById(student.getId());
        s.setPassword(student.getPassword());
        studentDao.saveStudent(s);
        mainPage = "student/updateSuccess.jsp";
        return SUCCESS;
    }

    /**
     * Query student information
     *
     * @return
     * @throws Exception
     */
    public String list() throws Exception {
        HttpSession session = request.getSession();
        if (StringUtil.isEmpty(page)) {
            page = "1";
        }
        if (s_student != null) {
            session.setAttribute("s_student", s_student);
        } else {
            Object o = session.getAttribute("s_student");
            if (o != null) {
                s_student = (Student) o;
            } else {
                s_student = new Student();
            }
        }
        PageBean pageBean = new PageBean(Integer.parseInt(page), Integer.parseInt(PropertiesUtil.getValue("pageSize")));
        studentList = studentDao.getStudents(s_student, pageBean);
        total = studentDao.studentCount(s_student);
        pageCode = PageUtil.genPagation(request.getContextPath() + "/student!list", total, Integer.parseInt(page), Integer.parseInt(PropertiesUtil.getValue("pageSize")));
        mainPage = "student/studentList.jsp";
        return SUCCESS;
    }

    /**
     * Access to students
     *
     * @return
     * @throws Exception
     */
    public String getStudentById() throws Exception {
        student = studentDao.getStudent(id);
        mainPage = "student/studentSave.jsp";
        return SUCCESS;
    }

    /**
     * Save students
     *
     * @return
     * @throws Exception
     */
    public String saveStudent() throws Exception {
        if (StringUtil.isEmpty(student.getId())) {
            student.setId("JS" + DateUtil.getCurrentDateStr());
        }
        studentDao.saveStudent(student);
        return "save";
    }

    /**
     * Delete students
     *
     * @return
     * @throws Exception
     */
    public String deleteStudent() throws Exception {
        student = studentDao.getStudent(id);
        studentDao.studentDelete(student);
        JSONObject resultJson = new JSONObject();
        resultJson.put("success", true);
        ResponseUtil.write(resultJson, ServletActionContext.getResponse());
        return null;
    }

    /**
     * Pre addition operation
     *
     * @return
     * @throws Exception
     */
    public String preSave() throws Exception {
        if (StringUtil.isNotEmpty(id)) {
            student = studentDao.getStudent(id);
            title = "Modify student information";
        } else {
            title = "Add student information";
        }
        mainPage = "student/studentSave.jsp";
        return SUCCESS;
    }

    /**
     * Log off user
     *
     * @throws Exception
     */
    public String logout() throws Exception {
        request.getSession().invalidate();
        return "logout";
    }

    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
    }


}

ExamDao

package com.java.yzl.dao;

import com.java.yzl.bean.Exam;
import com.java.yzl.bean.PageBean;
import com.java.yzl.daoInter.ExamDaoInter;
import com.java.yzl.util.HibernateUtil;
import com.java.yzl.util.StringUtil;
import org.hibernate.Query;
import org.hibernate.Session;

import java.math.BigInteger;
import java.util.List;


public class ExamDao implements ExamDaoInter {

    // Save test information
    public void saveExam(Exam exam) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.merge(exam);
        session.getTransaction().commit();
    }

    //Get test information
    public List<Exam> getExams(Exam s_exam, PageBean pageBean) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        StringBuffer hql = new StringBuffer("from Exam exam");
        if (s_exam.getStudent() != null && StringUtil.isNotEmpty(s_exam.getStudent().getId())) {
            hql.append(" and exam.student.id like '%" + s_exam.getStudent().getId() + "%'");
        }
        if (s_exam.getStudent() != null && StringUtil.isNotEmpty(s_exam.getStudent().getName())) {
            hql.append(" and exam.student.name like '%" + s_exam.getStudent().getName() + "%'");
        }
        Query query = session.createQuery(hql.toString().replaceFirst("and", "where"));
        if (pageBean != null) {
            query.setFirstResult(pageBean.getStart());
            query.setMaxResults(pageBean.getPageSize());
        }
        @SuppressWarnings("unchecked")
        List<Exam> examList = (List<Exam>) query.list();
        session.getTransaction().commit();
        return examList;
    }

    //Query the number of test information records
    public int examCount(Exam s_exam) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        StringBuffer sql = new StringBuffer("select count(*) from t_exam t1 ,t_student t2 where t1.studentId=t2.id ");
        if (s_exam.getStudent() != null && StringUtil.isNotEmpty(s_exam.getStudent().getId())) {
            sql.append(" and t2.id like '%" + s_exam.getStudent().getId() + "%'");
        }
        if (s_exam.getStudent() != null && StringUtil.isNotEmpty(s_exam.getStudent().getName())) {
            sql.append(" and t2.name like '%" + s_exam.getStudent().getName() + "%'");
        }
        Query query = session.createSQLQuery(sql.toString());
        int count = ((BigInteger) query.uniqueResult()).intValue();
        session.getTransaction().commit();
        return count;
    }
}

ManagerDao

package com.java.yzl.dao;

import com.java.yzl.bean.Manager;
import com.java.yzl.daoInter.ManagerDaoInter;
import com.java.yzl.util.HibernateUtil;
import org.hibernate.Query;
import org.hibernate.Session;


public class ManagerDao implements ManagerDaoInter {

    //Administrator login verification
    public Manager login(Manager manager) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Query query = session.createQuery("from Manager as m where m.userName=:userName and m.password=:password ");
        query.setString("userName", manager.getUserName());
        query.setString("password", manager.getPassword());
        Manager resultManager = (Manager) query.uniqueResult();
        session.getTransaction().commit();
        return resultManager;
    }
}

PaperDao

package com.java.yzl.dao;

import com.java.yzl.bean.Paper;
import com.java.yzl.daoInter.PaperDaoInter;
import com.java.yzl.util.HibernateUtil;
import org.hibernate.Query;
import org.hibernate.Session;

import java.util.List;


public class PaperDao implements PaperDaoInter {

    //Get all papers
    public List<Paper> getPapers() throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Query query = session.createQuery("from Paper");
        @SuppressWarnings("unchecked")
        List<Paper> paperList = (List<Paper>) query.list();
        session.getTransaction().commit();
        return paperList;
    }

    //Get the specified test paper
    public Paper getPaper(String paperId) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Paper paper = (Paper) session.get(Paper.class, Integer.parseInt(paperId));
        session.getTransaction().commit();
        return paper;
    }

    //Save test paper entity
    public void savePaper(Paper paper) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.merge(paper);
        session.getTransaction().commit();
    }

    //Delete test paper
    public void paperDelete(Paper paper) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.delete(paper);
        session.getTransaction().commit();
    }
}

QuestionDao

package com.java.yzl.dao;
//Problem DAO class

import com.java.yzl.bean.PageBean;
import com.java.yzl.bean.Question;
import com.java.yzl.bean.Student;
import com.java.yzl.daoInter.QuestionDaoInter;
import com.java.yzl.util.HibernateUtil;
import com.java.yzl.util.StringUtil;
import org.hibernate.Query;
import org.hibernate.Session;

import java.math.BigInteger;
import java.util.List;


public class QuestionDao implements QuestionDaoInter {

    //Get the problem entity through the problem id
    public Question getQuestion(String questionId) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Question question = (Question) session.get(Question.class, Integer.parseInt(questionId));
        session.getTransaction().commit();
        return question;
    }

    //Judge whether there are questions under the test paper
    public boolean existQuestionByPaperId(String paperId) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Query query = session.createQuery("from Question as q where q.paper.id=:paperId");
        query.setString("paperId", paperId);
        @SuppressWarnings("unchecked")
        List<Student> studentList = (List<Student>) query.list();
        session.getTransaction().commit();
        if (studentList.size() > 0) {
            return true;
        } else {
            return false;
        }
    }

    //Get all topics
    public List<Question> getQuestions(Question s_question, PageBean pageBean) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        StringBuffer hql = new StringBuffer("from Question");
        if (StringUtil.isNotEmpty(s_question.getSubject())) {
            hql.append(" and subject like '%" + s_question.getSubject() + "%'");
        }
        Query query = session.createQuery(hql.toString().replaceFirst("and", "where"));
        if (pageBean != null) {
            query.setFirstResult(pageBean.getStart());
            query.setMaxResults(pageBean.getPageSize());
        }
        @SuppressWarnings("unchecked")
        List<Question> questionList = (List<Question>) query.list();
        session.getTransaction().commit();
        return questionList;
    }

    //Number of query question records
    public int questionCount(Question s_question) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        StringBuffer sql = new StringBuffer("select count(*) from t_question");
        if (StringUtil.isNotEmpty(s_question.getSubject())) {
            sql.append(" and subject like '%" + s_question.getSubject() + "%'");
        }
        Query query = session.createSQLQuery(sql.toString().replaceFirst("and", "where"));
        int count = ((BigInteger) query.uniqueResult()).intValue();
        session.getTransaction().commit();
        return count;
    }

    //Save question entity
    public void saveQuestion(Question question) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.merge(question);
        session.getTransaction().commit();
    }

    //Delete test questions
    public void deleteQuestion(Question question) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.delete(question);
        session.getTransaction().commit();
    }
}

StudentDao

package com.java.yzl.dao;

import com.java.yzl.bean.PageBean;
import com.java.yzl.bean.Student;
import com.java.yzl.daoInter.StudentDaoInter;
import com.java.yzl.util.HibernateUtil;
import com.java.yzl.util.StringUtil;
import org.hibernate.Query;
import org.hibernate.Session;

import java.math.BigInteger;
import java.util.List;

public class StudentDao implements StudentDaoInter {

    //Student login
    public Student login(Student student) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Query query = session.createQuery("from Student as s where s.id=:id and s.password=:password ");
        query.setString("id", student.getId());
        query.setString("password", student.getPassword());
        Student resultStu = (Student) query.uniqueResult();
        session.getTransaction().commit();
        return resultStu;
    }

    //Get student entity through id
    public Student getStudentById(String id) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Student student = (Student) session.get(Student.class, id);
        session.getTransaction().commit();
        return student;
    }

    //Save student entity
    public void saveStudent(Student student) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.merge(student);
        session.getTransaction().commit();
    }

    //Get all students
    public List<Student> getStudents(Student s_student, PageBean pageBean) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        StringBuffer hql = new StringBuffer("from Student");
        if (StringUtil.isNotEmpty(s_student.getId())) {
            hql.append(" and id like '%" + s_student.getId() + "%'");
        }
        if (StringUtil.isNotEmpty(s_student.getName())) {
            hql.append(" and name like '%" + s_student.getName() + "%'");
        }
        Query query = session.createQuery(hql.toString().replaceFirst("and", "where"));
        if (pageBean != null) {
            query.setFirstResult(pageBean.getStart());
            query.setMaxResults(pageBean.getPageSize());
        }
        @SuppressWarnings("unchecked")
        List<Student> studentList = (List<Student>) query.list();
        session.getTransaction().commit();
        return studentList;
    }

    //Query the number of student records
    public int studentCount(Student s_student) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        StringBuffer sql = new StringBuffer("select count(*) from t_student");
        if (StringUtil.isNotEmpty(s_student.getId())) {
            sql.append(" and id like '%" + s_student.getId() + "%'");
        }
        if (StringUtil.isNotEmpty(s_student.getName())) {
            sql.append(" and name like '%" + s_student.getName() + "%'");
        }
        Query query = session.createSQLQuery(sql.toString().replaceFirst("and", "where"));
        int count = ((BigInteger) query.uniqueResult()).intValue();
        session.getTransaction().commit();
        return count;
    }

    //Save students
    public void studentSave(Student student) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.merge(student);
        session.getTransaction().commit();
    }

    //Delete students
    public void studentDelete(Student student) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.delete(student);
        session.getTransaction().commit();
    }

    //Get students through id
    public Student getStudent(String id) throws Exception {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Student student = (Student) session.get(Student.class, id);
        session.getTransaction().commit();
        return student;
    }
}

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Online examination (examinee login)</title>
    <link href="${pageContext.request.contextPath}/style/studentInfo.css" rel="stylesheet">
    <link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="${pageContext.request.contextPath}/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
    <script src="${pageContext.request.contextPath}/bootstrap/js/jQuery.js"></script>
    <script src="${pageContext.request.contextPath}/bootstrap/js/bootstrap.js"></script>
    <script type="text/javascript">
        if ('${error}' != '') {
            alert('${error}');
        }
    </script>

    <script type="text/javascript">
        function checkForm() {
            var id = document.getElementById("id").value;
            var password = document.getElementById("password").value;
            if (id == null || id == "") {
                alert("Admission number cannot be empty!");
                return false;
            }
            if (password == null || password == "") {
                alert("Login password cannot be empty!");
                return false;
            }
            return true;
        }

        function resetValue() {
            document.getElementById("id").value = "";
            document.getElementById("password").value = "";
        }
    </script>
</head>
<body>
<div align="center" style="padding-top: 20px;">
    <form action="student!login" method="post" onsubmit="return checkForm()">
        <table width="1004" height="584" background="image/login.jpg">
            <tr height="200">
                <td colspan="4"></td>
            </tr>
            <tr height="10">
                <td width="68%"></td>
                <td width="10%"><label>Admission number:</label></td>
                <td><input type="text" id="id" name="student.id" value="${student.id }"/></td>
                <td width="30%"></td>
            </tr>
            <tr height="10">
                <td width="40%"></td>
                <td width="10%"><label>Login password:</label></td>
                <td><input type="password" id="password" name="student.password" value="${student.password }"/></td>
                <td width="30%"></td>
            </tr>
            <tr height="10">
                <td width="40%"></td>
                <td width="10%">
                    <button class="btn btn-primary" type="submit">Sign in</button>
                </td>
                <td>
                    <button class="btn btn-primary" type="button" onclick="resetValue()">Reset</button>
                </td>
                <td><a href="login-admin.jsp" class="btn btn-primary">back-stage management</a></td>
                <td width="30%"></td>
            </tr>
        </table>
    </form>
</div>
</body>
</html>

menu.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<script type="text/javascript">
	function logout(){
		if(confirm('Are you sure you want to exit the system?')){
			window.location.href='student!logout';
		}
	}
	function logout2(){
		if(confirm('Are you sure you want to exit the system?')){
			window.location.href='manager!logout';
		}
	}
	
</script>
<div class="navbar">
  <div class="navbar-inner">
    <a class="brand" href="main.jsp">home page</a>
    <ul class="nav">
    	<c:choose>
    		<c:when test="${currentUser.flag==1}">
    			<li><a href="${pageContext.request.contextPath}/student!list">Examinee information management</a></li>
    			<li><a href="${pageContext.request.contextPath}/exam!examList">Examinee score inquiry</a></li>
    			<li><a href="${pageContext.request.contextPath}/paper!paperList">Examination paper management</a></li>
    			<li><a href="${pageContext.request.contextPath}/question!list">Topic management</a></li>
    			<li><a href="javascript:logout2()">Exit the system</a></li>
    		</c:when>
    		<c:otherwise>
		    	<li><a href="${pageContext.request.contextPath}/paper!list">Online examination</a></li>
		    	<li><a href="${pageContext.request.contextPath}/exam!getExams?s_exam.student.id=${currentUser.id}">Score inquiry</a></li>
		    	<li><a href="${pageContext.request.contextPath}/student!preUpdatePassword">Change Password</a></li>
		    	<li><a href="javascript:logout()">Exit the system</a></li>
    		</c:otherwise>
    	</c:choose>
    </ul>
  </div>
</div>

head.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<div align="center">
	<div style="background: url('${pageContext.request.contextPath}/image/banner.jpg');
				height:90px;width:1000px;float:right;" >
		<font style="float: right;padding: 65px 20px 20px 10px;">welcome:<strong>${currentUser.name }</strong></font>
	</div>
</div>
				

foot.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<div align="center">
		<div class="foot">Copyright © 2021-2021 Wumin Technology</div>
</div>

default.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<div class="defaultPage">
	<p>Welcome to the online examination system!</p>
</div>

4, Others

1. Other system implementation

1. Implementation of Java Web system series

Implementation of student library management system with Java+JSP

Realization of student information management system with Java+JSP

Implementation of user information management system with Java+JSP

Realization of air booking system with Java+Servlet+JSP

Java+Servlet+JSP implementation of student course selection management system

Implementation of pet clinic management system with Java+Servlet+JSP

Java+Servlet+JSP implementation of student achievement management System-1

Java+Servlet+JSP implementation of student achievement management System-2

Implementation of online examination system with Java+SSM+Easyui

Java+Springboot+Mybatis+Bootstrap+Maven to realize online mall system

2. Implementation of JavaSwing system series

Realization of landlords fighting game with Java+Swing

Implementation of library management system with Java+Swing

Implementation of hospital management system with Java+Swing

Implementation of warehouse management System-1 with Java+Swing

Implementation of warehouse management System-2 with Java+Swing

Implementation of examination management system with Java+Swing

Implementation of address book management system with Java+Swing

Implementation of parking management system with Java+Swing

Implementation of student information management system with Java+Swing

Implementation of student dormitory management system with Java+Swing

Java+Swing implementation of student course selection management system

Implementation of student achievement management system with Java+Swing

Implementation of school textbook management system with Java+Swing

Implementation of school educational administration management system with Java+Swing

Implementation of enterprise personnel management system with Java+Swing

Implementation of electronic photo album management system with Java+Swing

Realization of supermarket management system with Java+Swing

Realization of ATM system with Java+Swing

Implementation of pet store management system with Java+Swing

2. Get the source code

Pay attention to the official account number.

3. Operation project

Please click the link below to deploy your project.

How to import Java Web project into IDEA

4. Remarks

If there is any infringement, please contact me to delete it.

5. Support bloggers

If you think this article is helpful, please pay attention to it. I wish you a happy life! For other resources, you can focus on the official account of the left WeChat public.

6. Chicken soup

With big self in mind, achieve self!

Tags: Java MySQL bootstrap JSP ssh

Posted by digitalmarks on Sun, 11 Jul 2021 07:15:24 +0930