Java项目:jsp在线考试系统

发布于:2022-12-18 ⋅ 阅读:(193) ⋅ 点赞:(0)

作者主页:夜未央5788

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

本系统分为两个角色,一个是考生,一个是管理员,
考生功能如下:
登录、选择考试科目、选择考卷、在线考试、提交试卷、并且查询自己的考试成绩

管理员功能如下:
登录、添加试卷、并且添加试卷里的题目、编辑科目、还可以查询所有考生的成绩

由于本程序规模不大,可供课程设计,毕业设计学习演示之用

环境需要

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项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

技术栈

1. 后端:servlet

2. 前端:JSP+bootstrap+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置;

4. 运行项目,在浏览器中输入http://localhost:8080/ 登录

运行截图

 

 

 

 

 

 

 

 

 

 

 

 

相关代码 

ZAdminStuManage

package com.tjzhic.servlet;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.tjzhic.dao.StuDao;
import com.tjzhic.dao.impl.StuDaoImpl;
import com.tjzhic.entity.Stu;
import com.tjzhic.util.Encrypt;

public class ZAdminStuManage extends HttpServlet {

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

  /**
   * Constructor of the object.
   */
  public ZAdminStuManage() {
    super();
  }

  /**
   * Destruction of the servlet. <br>
   */
  public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
  }

  /**
   * The doGet method of the servlet. <br>
   *
   * This method is called when a form has its tag value method equals to get.
   * 
   * @param request the request send by the client to the server
   * @param response the response send by the server to the client
   * @throws ServletException if an error occurred
   * @throws IOException if an error occurred
   */
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    this.doPost(request, response);
  }

  /**
   * The doPost method of the servlet. <br>
   *
   * This method is called when a form has its tag value method equals to post.
   * 
   * @param request the request send by the client to the server
   * @param response the response send by the server to the client
   * @throws ServletException if an error occurred
   * @throws IOException if an error occurred
   */
  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html; charset=utf-8");
    ServletContext servletContext = request.getServletContext();
    StuDao stuDao = new StuDaoImpl();
    String action = request.getParameter("action");
    if("findStusLikeUsername".equals(action)){
      String username = request.getParameter("username").toString();
      ArrayList<Stu> stus = stuDao.findStusLikeUsername(username);
      request.setAttribute("stus", stus);
      request.getRequestDispatcher("/zadmin/stumanage.jsp").forward(request, response);
    }else if("findStusLikeIdcode".equals(action)) {
      String idcode = request.getParameter("idcode").toString();
      ArrayList<Stu> stus = stuDao.findStusLikeIdcode(idcode);
      request.setAttribute("stus", stus);
      request.getRequestDispatcher("/zadmin/stumanage.jsp").forward(request, response);
    }else if ("stuPassReset".equals(action)){
      String username = request.getParameter("username").toString();
      if(stuDao.passModify(username, Encrypt.SHA("000000")) != 0){
        request.setAttribute("stuPassResetMess", "* 用户 " + username + " 的密码已重置为‘000000’!");
        request.getRequestDispatcher("/zadmin/stumanage.jsp").forward(request, response);
      }else{
        request.setAttribute("stuPassResetMess", "* 用户 " + username + " 的密码清零操作失败!");
        request.getRequestDispatcher("/zadmin/stumanage.jsp").forward(request, response);
      }
    }else{
      response.sendRedirect(servletContext.getContextPath()+"/zadmin/stumanage.jsp");
    }
  }

  /**
   * Initialization of the servlet. <br>
   *
   * @throws ServletException if an error occurs
   */
  public void init() throws ServletException {
    // Put your code here
  }

}

ZAdminStageSet

package com.tjzhic.servlet;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


import com.tjzhic.dao.CurrstageDao;
import com.tjzhic.dao.StageDao;
import com.tjzhic.dao.impl.CurrstageDaoImpl;
import com.tjzhic.dao.impl.StageDaoImpl;
import com.tjzhic.entity.Adminuser;
import com.tjzhic.entity.Stage;
import com.tjzhic.util.Message;

public class ZAdminStageSet extends HttpServlet {

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

  /**
   * Constructor of the object.
   */
  public ZAdminStageSet() {
    super();
  }

  /**
   * Destruction of the servlet. <br>
   */
  public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
  }

  /**
   * The doGet method of the servlet. <br>
   *
   * This method is called when a form has its tag value method equals to get.
   * 
   * @param request the request send by the client to the server
   * @param response the response send by the server to the client
   * @throws ServletException if an error occurred
   * @throws IOException if an error occurred
   */
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    this.doPost(request, response);
  }

  /**
   * The doPost method of the servlet. <br>
   *
   * This method is called when a form has its tag value method equals to post.
   * 
   * @param request the request send by the client to the server
   * @param response the response send by the server to the client
   * @throws ServletException if an error occurred
   * @throws IOException if an error occurred
   */
  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    response.setContentType("text/html; charset=utf-8");
    ServletContext servletContext = request.getServletContext();
    HttpSession session = request.getSession();
    String action = request.getParameter("action");
   
    if("stageSet".equals(action)){
      CurrstageDao currstageDao = new CurrstageDaoImpl();
      Adminuser adminuser = (Adminuser)session.getAttribute("adminuser");
      String adminname = adminuser.getAdminname();
      String currstage = request.getParameter("currstage");
      if (currstageDao.set(adminname, currstage) != 0) {
        servletContext.setAttribute("currstage", currstageDao.findCurrent());
        session.setAttribute("mess", new Message("stageSetMess", "阶段设置成功!"));
      }else {
        session.setAttribute("mess", new Message("stageAddMess", "阶段设置失败!"));
      }
      response.sendRedirect(servletContext.getContextPath()+"/zadmin/stageset.jsp");
    }else{
      session.removeAttribute("mess");
      response.sendRedirect(servletContext.getContextPath()+"/zadmin/stageset.jsp");
    }
  }

  /**
   * Initialization of the servlet. <br>
   *
   * @throws ServletException if an error occurs
   */
  public void init() throws ServletException {
    // Put your code here
  }

}

ZAdminRelease

package com.tjzhic.servlet;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.tjzhic.dao.CourseDao;
import com.tjzhic.dao.MajorDao;
import com.tjzhic.dao.SchoolDao;
import com.tjzhic.dao.impl.CourseDaoImpl;
import com.tjzhic.dao.impl.MajorDaoImpl;
import com.tjzhic.dao.impl.SchoolDaoImpl;
import com.tjzhic.entity.Course;
import com.tjzhic.entity.Major;
import com.tjzhic.entity.School;
import com.tjzhic.util.Message;

public class ZAdminRelease extends HttpServlet {

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

  /**
   * Constructor of the object.
   */
  public ZAdminRelease() {
    super();
  }

  /**
   * Destruction of the servlet. <br>
   */
  public void destroy() {
    super.destroy(); 
  }


  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

   this.doPost(request, response);
  }

 
  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html; charset=utf-8");
    ServletContext servletContext = request.getServletContext();
    HttpSession session = request.getSession();
    SchoolDao schoolDao = new SchoolDaoImpl();
    MajorDao majorDao = new MajorDaoImpl();
    CourseDao courseDao = new CourseDaoImpl();
    String action = request.getParameter("action");
    //添加院校基本信息
    if("schoolAdd".equals(action)){
      School school = new School();
      school.setShcode(request.getParameter("shcode"));
      school.setShname(request.getParameter("shname"));
      school.setShaddr(request.getParameter("shaddr"));
      school.setShzip(request.getParameter("shzip"));
      school.setShtel(request.getParameter("shtel"));
      school.setShtest(request.getParameter("shtest"));
      school.setShyear(request.getParameter("shyear"));
      if(schoolDao.add(school) != 0){
        servletContext.setAttribute("school", school);
        session.setAttribute("mess", new Message("schoolAddMess", "学校基本信息设置成功!"));
      }else{
        session.setAttribute("mess", new Message("schoolAddMess", "学校基本信息设置失败!"));
      }
      response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp");
     //添加新的专业
    }else if("majorAdd".equals(action)){
      String mcode = request.getParameter("mcode");
      Major major = new Major();
      major.setMcode(mcode);
      major.setMname(request.getParameter("mname"));
      major.setPlannum(Integer.parseInt(request.getParameter("plannum")));
      if(majorDao.findByMcode(mcode) != null){
        session.setAttribute("mess", new Message("majorAddMess", "专业代码不能重复!"));
      }else if(majorDao.add(major) != 0){
        servletContext.setAttribute("majors", majorDao.findAll());
        session.setAttribute("mess", new Message("majorAddMess", "专业添加成功!"));
      }else{
        session.setAttribute("mess", new Message("majorAddMess", "专业添加失败!"));
      }
      response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp#major");
    //删除已有专业
    }else if("majorDelete".equals(action)){
      String mcode = request.getParameter("mcode");
      Major major = majorDao.findByMcode(mcode);
      if (major != null && !courseDao.findByCmname(major.getMname()).isEmpty()){
        session.setAttribute("mess", new Message("majorDeleteMess", "请先删除'"+major.getMname()+"'专业的所有课程!"));
      }
      else if(majorDao.deleteByMcode(mcode) != 0){
        servletContext.setAttribute("majors", majorDao.findAll());
        session.setAttribute("mess", new Message("majorDeleteMess", "专业删除成功!"));
      }else{
        session.setAttribute("mess", new Message("majorDeleteMess", "专业删除失败!"));
      }
      response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp#major");
    //添加新的课程
    }else if ("courseAdd".equals(action)){
      String ccode = request.getParameter("ccode");
      Course course = new Course();
      course.setCcode(ccode);
      course.setCname(request.getParameter("cname"));
      course.setCmname(request.getParameter("cmname"));
      course.setCstarttime(request.getParameter("cstarttime"));
      course.setCendtime(request.getParameter("cendtime"));
      if(courseDao.findByCcode(ccode) != null){
        session.setAttribute("mess", new Message("courseAddMess", "课程代码不能重复!"));
      }else if(courseDao.add(course) != 0){
        servletContext.setAttribute("courses", courseDao.findAll());
        session.setAttribute("mess", new Message("courseAddMess", "课程添加成功!"));
      }else{
        session.setAttribute("mess", new Message("courseAddMess", "课程添加失败!"));
      }
      response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp#course");
    //删除已有课程
    }else if("courseDelete".equals(action)){
      String ccode = request.getParameter("ccode");
      if(courseDao.deleteByCcode(ccode) != 0){
        servletContext.setAttribute("courses", courseDao.findAll());
        session.setAttribute("mess", new Message("courseDeleteMess", "课程删除成功!"));
      }else{
        session.setAttribute("mess", new Message("courseDeleteMess", "课程删除失败!"));
      }
      response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp#course");
    //其他情况
    }else{
      session.removeAttribute("mess");
      response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp");
    }
  }

  /**
   * Initialization of the servlet. <br>
   *
   * @throws ServletException if an error occurs
   */
  public void init() throws ServletException {
    // Put your code here
  }

}

如果也想学习本系统,下面领取。关注并回复:126jsp