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