Java项目:jsp在线考试系统

作者主页:夜未央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

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
一、项目简介本课程演示的是一套基于SSM实现的在线考试系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。课程包含:1. 项目源码、项目文档、数据库脚本、软件工具等所有资料2. 带你从零开始部署运行本套系统3. 该项目附带的源码资料可作为毕设使用4. 提供技术答疑二、技术实现后台框架:Spring、SpringMVC、MyBatisUI界面:JSP、jQuery 、BootStrap数据库:MySQL 三、系统功能该在线考试系统基于B/S架构,采用SSM框架,运用JSP网页开发技术,并结合MySQL数据库,搭建一个高效、便捷的网络考试平台。 ​本系统分为前台考试模块和后台管理模块,包含学生、教师和管理员共三个角色,功能如下: 1.前台考试模块 学生注册、学生登陆、考试中心、参加考试、查看考试成绩、查看历史考卷、查看个人信息等功能。 2.后台管理模块 系统后台登陆、学生管理、教师管理、班级管理、年级管理、科目管理、试题管理、添加试题、导入试题、试卷管理、生成试卷、考试安排管理、添加考试计划、查看以往考试信息、考试成绩统计等功能。 教师主要完成试卷管理、试题管理、考试计划管理等一些与考试相关的操作;管理员具有最高权限,可以管理学生、老师、试题、题库、考试等信息,同时也可以与老师一样进行考试相关的操作。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 四、项目截图1)前台首面 2)历史试卷回顾 3)系统后台管理 4)试卷管理 5)试题管理  更多Java毕设项目请关注【毕设系列课程】https://edu.csdn.net/lecturer/2104   

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜未央5788

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值