• 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

    1. package com.tjzhic.servlet;
    2. import java.io.IOException;
    3. import java.util.ArrayList;
    4. import javax.servlet.ServletContext;
    5. import javax.servlet.ServletException;
    6. import javax.servlet.http.HttpServlet;
    7. import javax.servlet.http.HttpServletRequest;
    8. import javax.servlet.http.HttpServletResponse;
    9. import com.tjzhic.dao.StuDao;
    10. import com.tjzhic.dao.impl.StuDaoImpl;
    11. import com.tjzhic.entity.Stu;
    12. import com.tjzhic.util.Encrypt;
    13. public class ZAdminStuManage extends HttpServlet {
    14. /**
    15. *
    16. */
    17. private static final long serialVersionUID = 1L;
    18. /**
    19. * Constructor of the object.
    20. */
    21. public ZAdminStuManage() {
    22. super();
    23. }
    24. /**
    25. * Destruction of the servlet.
    26. */
    27. public void destroy() {
    28. super.destroy(); // Just puts "destroy" string in log
    29. // Put your code here
    30. }
    31. /**
    32. * The doGet method of the servlet.
    33. *
    34. * This method is called when a form has its tag value method equals to get.
    35. *
    36. * @param request the request send by the client to the server
    37. * @param response the response send by the server to the client
    38. * @throws ServletException if an error occurred
    39. * @throws IOException if an error occurred
    40. */
    41. public void doGet(HttpServletRequest request, HttpServletResponse response)
    42. throws ServletException, IOException {
    43. this.doPost(request, response);
    44. }
    45. /**
    46. * The doPost method of the servlet.
    47. *
    48. * This method is called when a form has its tag value method equals to post.
    49. *
    50. * @param request the request send by the client to the server
    51. * @param response the response send by the server to the client
    52. * @throws ServletException if an error occurred
    53. * @throws IOException if an error occurred
    54. */
    55. public void doPost(HttpServletRequest request, HttpServletResponse response)
    56. throws ServletException, IOException {
    57. response.setContentType("text/html; charset=utf-8");
    58. ServletContext servletContext = request.getServletContext();
    59. StuDao stuDao = new StuDaoImpl();
    60. String action = request.getParameter("action");
    61. if("findStusLikeUsername".equals(action)){
    62. String username = request.getParameter("username").toString();
    63. ArrayList stus = stuDao.findStusLikeUsername(username);
    64. request.setAttribute("stus", stus);
    65. request.getRequestDispatcher("/zadmin/stumanage.jsp").forward(request, response);
    66. }else if("findStusLikeIdcode".equals(action)) {
    67. String idcode = request.getParameter("idcode").toString();
    68. ArrayList stus = stuDao.findStusLikeIdcode(idcode);
    69. request.setAttribute("stus", stus);
    70. request.getRequestDispatcher("/zadmin/stumanage.jsp").forward(request, response);
    71. }else if ("stuPassReset".equals(action)){
    72. String username = request.getParameter("username").toString();
    73. if(stuDao.passModify(username, Encrypt.SHA("000000")) != 0){
    74. request.setAttribute("stuPassResetMess", "* 用户 " + username + " 的密码已重置为‘000000’!");
    75. request.getRequestDispatcher("/zadmin/stumanage.jsp").forward(request, response);
    76. }else{
    77. request.setAttribute("stuPassResetMess", "* 用户 " + username + " 的密码清零操作失败!");
    78. request.getRequestDispatcher("/zadmin/stumanage.jsp").forward(request, response);
    79. }
    80. }else{
    81. response.sendRedirect(servletContext.getContextPath()+"/zadmin/stumanage.jsp");
    82. }
    83. }
    84. /**
    85. * Initialization of the servlet.
    86. *
    87. * @throws ServletException if an error occurs
    88. */
    89. public void init() throws ServletException {
    90. // Put your code here
    91. }
    92. }

    ZAdminStageSet

    1. package com.tjzhic.servlet;
    2. import java.io.IOException;
    3. import javax.servlet.ServletContext;
    4. import javax.servlet.ServletException;
    5. import javax.servlet.http.HttpServlet;
    6. import javax.servlet.http.HttpServletRequest;
    7. import javax.servlet.http.HttpServletResponse;
    8. import javax.servlet.http.HttpSession;
    9. import com.tjzhic.dao.CurrstageDao;
    10. import com.tjzhic.dao.StageDao;
    11. import com.tjzhic.dao.impl.CurrstageDaoImpl;
    12. import com.tjzhic.dao.impl.StageDaoImpl;
    13. import com.tjzhic.entity.Adminuser;
    14. import com.tjzhic.entity.Stage;
    15. import com.tjzhic.util.Message;
    16. public class ZAdminStageSet extends HttpServlet {
    17. /**
    18. *
    19. */
    20. private static final long serialVersionUID = 1L;
    21. /**
    22. * Constructor of the object.
    23. */
    24. public ZAdminStageSet() {
    25. super();
    26. }
    27. /**
    28. * Destruction of the servlet.
    29. */
    30. public void destroy() {
    31. super.destroy(); // Just puts "destroy" string in log
    32. // Put your code here
    33. }
    34. /**
    35. * The doGet method of the servlet.
    36. *
    37. * This method is called when a form has its tag value method equals to get.
    38. *
    39. * @param request the request send by the client to the server
    40. * @param response the response send by the server to the client
    41. * @throws ServletException if an error occurred
    42. * @throws IOException if an error occurred
    43. */
    44. public void doGet(HttpServletRequest request, HttpServletResponse response)
    45. throws ServletException, IOException {
    46. this.doPost(request, response);
    47. }
    48. /**
    49. * The doPost method of the servlet.
    50. *
    51. * This method is called when a form has its tag value method equals to post.
    52. *
    53. * @param request the request send by the client to the server
    54. * @param response the response send by the server to the client
    55. * @throws ServletException if an error occurred
    56. * @throws IOException if an error occurred
    57. */
    58. public void doPost(HttpServletRequest request, HttpServletResponse response)
    59. throws ServletException, IOException {
    60. response.setContentType("text/html; charset=utf-8");
    61. ServletContext servletContext = request.getServletContext();
    62. HttpSession session = request.getSession();
    63. String action = request.getParameter("action");
    64. if("stageSet".equals(action)){
    65. CurrstageDao currstageDao = new CurrstageDaoImpl();
    66. Adminuser adminuser = (Adminuser)session.getAttribute("adminuser");
    67. String adminname = adminuser.getAdminname();
    68. String currstage = request.getParameter("currstage");
    69. if (currstageDao.set(adminname, currstage) != 0) {
    70. servletContext.setAttribute("currstage", currstageDao.findCurrent());
    71. session.setAttribute("mess", new Message("stageSetMess", "阶段设置成功!"));
    72. }else {
    73. session.setAttribute("mess", new Message("stageAddMess", "阶段设置失败!"));
    74. }
    75. response.sendRedirect(servletContext.getContextPath()+"/zadmin/stageset.jsp");
    76. }else{
    77. session.removeAttribute("mess");
    78. response.sendRedirect(servletContext.getContextPath()+"/zadmin/stageset.jsp");
    79. }
    80. }
    81. /**
    82. * Initialization of the servlet.
    83. *
    84. * @throws ServletException if an error occurs
    85. */
    86. public void init() throws ServletException {
    87. // Put your code here
    88. }
    89. }

    ZAdminRelease

    1. package com.tjzhic.servlet;
    2. import java.io.IOException;
    3. import javax.servlet.ServletContext;
    4. import javax.servlet.ServletException;
    5. import javax.servlet.http.HttpServlet;
    6. import javax.servlet.http.HttpServletRequest;
    7. import javax.servlet.http.HttpServletResponse;
    8. import javax.servlet.http.HttpSession;
    9. import com.tjzhic.dao.CourseDao;
    10. import com.tjzhic.dao.MajorDao;
    11. import com.tjzhic.dao.SchoolDao;
    12. import com.tjzhic.dao.impl.CourseDaoImpl;
    13. import com.tjzhic.dao.impl.MajorDaoImpl;
    14. import com.tjzhic.dao.impl.SchoolDaoImpl;
    15. import com.tjzhic.entity.Course;
    16. import com.tjzhic.entity.Major;
    17. import com.tjzhic.entity.School;
    18. import com.tjzhic.util.Message;
    19. public class ZAdminRelease extends HttpServlet {
    20. /**
    21. *
    22. */
    23. private static final long serialVersionUID = 1L;
    24. /**
    25. * Constructor of the object.
    26. */
    27. public ZAdminRelease() {
    28. super();
    29. }
    30. /**
    31. * Destruction of the servlet.
    32. */
    33. public void destroy() {
    34. super.destroy();
    35. }
    36. public void doGet(HttpServletRequest request, HttpServletResponse response)
    37. throws ServletException, IOException {
    38. this.doPost(request, response);
    39. }
    40. public void doPost(HttpServletRequest request, HttpServletResponse response)
    41. throws ServletException, IOException {
    42. response.setContentType("text/html; charset=utf-8");
    43. ServletContext servletContext = request.getServletContext();
    44. HttpSession session = request.getSession();
    45. SchoolDao schoolDao = new SchoolDaoImpl();
    46. MajorDao majorDao = new MajorDaoImpl();
    47. CourseDao courseDao = new CourseDaoImpl();
    48. String action = request.getParameter("action");
    49. //添加院校基本信息
    50. if("schoolAdd".equals(action)){
    51. School school = new School();
    52. school.setShcode(request.getParameter("shcode"));
    53. school.setShname(request.getParameter("shname"));
    54. school.setShaddr(request.getParameter("shaddr"));
    55. school.setShzip(request.getParameter("shzip"));
    56. school.setShtel(request.getParameter("shtel"));
    57. school.setShtest(request.getParameter("shtest"));
    58. school.setShyear(request.getParameter("shyear"));
    59. if(schoolDao.add(school) != 0){
    60. servletContext.setAttribute("school", school);
    61. session.setAttribute("mess", new Message("schoolAddMess", "学校基本信息设置成功!"));
    62. }else{
    63. session.setAttribute("mess", new Message("schoolAddMess", "学校基本信息设置失败!"));
    64. }
    65. response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp");
    66. //添加新的专业
    67. }else if("majorAdd".equals(action)){
    68. String mcode = request.getParameter("mcode");
    69. Major major = new Major();
    70. major.setMcode(mcode);
    71. major.setMname(request.getParameter("mname"));
    72. major.setPlannum(Integer.parseInt(request.getParameter("plannum")));
    73. if(majorDao.findByMcode(mcode) != null){
    74. session.setAttribute("mess", new Message("majorAddMess", "专业代码不能重复!"));
    75. }else if(majorDao.add(major) != 0){
    76. servletContext.setAttribute("majors", majorDao.findAll());
    77. session.setAttribute("mess", new Message("majorAddMess", "专业添加成功!"));
    78. }else{
    79. session.setAttribute("mess", new Message("majorAddMess", "专业添加失败!"));
    80. }
    81. response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp#major");
    82. //删除已有专业
    83. }else if("majorDelete".equals(action)){
    84. String mcode = request.getParameter("mcode");
    85. Major major = majorDao.findByMcode(mcode);
    86. if (major != null && !courseDao.findByCmname(major.getMname()).isEmpty()){
    87. session.setAttribute("mess", new Message("majorDeleteMess", "请先删除'"+major.getMname()+"'专业的所有课程!"));
    88. }
    89. else if(majorDao.deleteByMcode(mcode) != 0){
    90. servletContext.setAttribute("majors", majorDao.findAll());
    91. session.setAttribute("mess", new Message("majorDeleteMess", "专业删除成功!"));
    92. }else{
    93. session.setAttribute("mess", new Message("majorDeleteMess", "专业删除失败!"));
    94. }
    95. response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp#major");
    96. //添加新的课程
    97. }else if ("courseAdd".equals(action)){
    98. String ccode = request.getParameter("ccode");
    99. Course course = new Course();
    100. course.setCcode(ccode);
    101. course.setCname(request.getParameter("cname"));
    102. course.setCmname(request.getParameter("cmname"));
    103. course.setCstarttime(request.getParameter("cstarttime"));
    104. course.setCendtime(request.getParameter("cendtime"));
    105. if(courseDao.findByCcode(ccode) != null){
    106. session.setAttribute("mess", new Message("courseAddMess", "课程代码不能重复!"));
    107. }else if(courseDao.add(course) != 0){
    108. servletContext.setAttribute("courses", courseDao.findAll());
    109. session.setAttribute("mess", new Message("courseAddMess", "课程添加成功!"));
    110. }else{
    111. session.setAttribute("mess", new Message("courseAddMess", "课程添加失败!"));
    112. }
    113. response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp#course");
    114. //删除已有课程
    115. }else if("courseDelete".equals(action)){
    116. String ccode = request.getParameter("ccode");
    117. if(courseDao.deleteByCcode(ccode) != 0){
    118. servletContext.setAttribute("courses", courseDao.findAll());
    119. session.setAttribute("mess", new Message("courseDeleteMess", "课程删除成功!"));
    120. }else{
    121. session.setAttribute("mess", new Message("courseDeleteMess", "课程删除失败!"));
    122. }
    123. response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp#course");
    124. //其他情况
    125. }else{
    126. session.removeAttribute("mess");
    127. response.sendRedirect(servletContext.getContextPath()+"/zadmin/release.jsp");
    128. }
    129. }
    130. /**
    131. * Initialization of the servlet.
    132. *
    133. * @throws ServletException if an error occurs
    134. */
    135. public void init() throws ServletException {
    136. // Put your code here
    137. }
    138. }

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

  • 相关阅读:
    const char *p,char const *p和char *const p区别
    Feature Pyramid Networks for Object Detection
    动作捕捉技术识别细小错位 机械外骨骼适应性升级
    13uec++多人游戏【创建和使用自定义组件】
    【数模智能算法】BP神经网络基本算法原理
    C++中的继承
    计算机网络---概述
    31、成语大全API接口,免费好用
    全国职业技能大赛云计算--高职组赛题卷④(容器云)
    Ubuntu 安装 Docker Engine
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/126844941