作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
本项目是在线模拟考试系统的设计与实现,系统采用浏览器/服务器模式开发,包括登录注册、在线考试、试卷设置、试题管理、分数的统计以及成绩查询等功能。系统运行在Windows操作系统上,以Tomcat作为Web服务器,使用SSH+JSP技术和MySQL数据库实现。
项目主要包含管理员、教师与学生三种角色;
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. 后端:spring+structs+hibernate
2. 前端:JSP+Javascript+css
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
2. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,浏览器中输入http://localhost:8080/ctest 登录

- public class AdminUserAction extends ActionSupport implements ModelDriven<AdminUser> ,SessionAware{
- private AdminUser admin = new AdminUser();
- private AdminUserService adminUserService;
-
- public void setAdminUserService(AdminUserService adminUserService) {
- this.adminUserService = adminUserService;
- }
-
- public AdminUser getModel() {
- return admin;
- }
-
- private String npw;
- public void setNpw(String npw) {
- this.npw = npw;
- }
-
- //管理员登录
- public String alogin(){
- return "alogin";
- }
-
- //验证管理员编号和密码是否正确
- public String login(){
- //接收从数据库中查询的信息
- AdminUser existAdmin = adminUserService.login(admin);
- //判断用户是否存在
- if(existAdmin == null){
- this.addActionError("管理员编号或密码错误");
- return "loginFailadmin";
- }else{
- //如果用户存在,将用户信息存到session中
- ServletActionContext.getRequest().getSession().setAttribute("existAdmin", existAdmin);
- return "loginSuccessadmin";
- }
- }
- //查看管理员信息
- public String ckxx(){
- return "ckxxadmin";
- }
- //修改密码
- public String upw(){
- return "upwadmin";
- }
- public String updatePW(){
- adminUserService.updatePW(admin.getUid(),npw);
- return "updateadminPW";
- }
- //安全退出清除session
- public String sessionDestory(){
- ServletActionContext.getRequest().getSession().invalidate();
- return "sessionDestoryadmin";
- }
-
- public void setSession(Map<String, Object> arg0) {
- }
- }
- public class QuestionAction extends ActionSupport implements ModelDriven<Question>{
-
- private Question question = new Question();
-
- public Question getModel() {
- return question;
- }
- private QuestionService questionService;
-
- public void setQuestionService(QuestionService questionService) {
- this.questionService = questionService;
- }
- private Integer tid;
-
- public void setTid(Integer tid) {
- this.tid = tid;
- }
- private Integer qtid;
- public void setQtid(Integer qtid) {
- this.qtid = qtid;
- }
- private int page;
- public void setPage(int page) {
- this.page = page;
- }
- //选择查找试题的试题类型
- public String ckQuestionAndXZQT(){
- List<QuestionType> listqt = questionService.ckQuestionAndXZQT();
- ActionContext.getContext().getValueStack().set("listqt", listqt);
- return "ckQuestionAndXZQT";
- }
- //选择查找试题的试题类型
- public String ckAdminQuestionAndXZQT(){
- List<QuestionType> listqt = questionService.ckQuestionAndXZQT();
- ActionContext.getContext().getValueStack().set("listqt", listqt);
- return "ckAdminQuestionAndXZQT";
- }
- //查找试题
- public String ckQuestion() throws UnsupportedEncodingException{
- if(question.getQid()!=null){
- question = questionService.selectQuestion(question.getQid());
- }
- PageBean<Question> pageBean = questionService.ckQuestion(question,tid,qtid,page);
- ActionContext.getContext().getValueStack().set("pageBean", pageBean);
- List<QuestionType> listqt = questionService.ckQuestionAndXZQT();
- ActionContext.getContext().getValueStack().set("listqt", listqt);
- ActionContext.getContext().getValueStack().set("pageqtid", qtid);
- return "ckQuestion";
- }
- //管理员查找试题
- public String ckAdminQuestion() throws UnsupportedEncodingException{
- if(question.getQid()!=null){
- //根据试题编号,获取试题详细信息
- question = questionService.selectQuestion(question.getQid());
- }
- //获取符合条件的试题
- PageBean<Question> pageBean = questionService.ckAdminQuestion(question,qtid,page);
- //将符合符合条件的数据存放到值栈中,出入到显示界面
- ActionContext.getContext().getValueStack().set("pageBean", pageBean);
- List<QuestionType> listqt = questionService.ckQuestionAndXZQT();
- ActionContext.getContext().getValueStack().set("listqt", listqt);
- ActionContext.getContext().getValueStack().set("pageqtid", qtid);
- return "ckAdminQuestion";
- }
- //查看相似选择试题
- public String ckXSXZQuestion(){
- List<Question> listxs = questionService.findByOword(question.getOword(), question.getQscope(), question.getQdifficulty(), qtid);
- ActionContext.getContext().getValueStack().set("question", question);
- ActionContext.getContext().getValueStack().set("listxs", listxs);
- return "ckXSXZQuestion";
- }
- public String ckXSXZAdminQuestion(){
- List<Question> listxs = questionService.findByOword(question.getOword(), question.getQscope(), question.getQdifficulty(), qtid);
- ActionContext.getContext().getValueStack().set("question", question);
- ActionContext.getContext().getValueStack().set("listxs", listxs);
- return"ckXSXZAdminQuestion";
- }
- //添加选择题
- public String addQuestionXZ(){
- return "addQuestionXZ";
- }
- public String addAdminQuestionXZ(){
- return "addAdminQuestionXZ";
- }
- //添加选择实现
- public String addQuestionXZSX(){
- Date date = new Date();
- question.setQdate(date);
- questionService.addQuestionXZSX(question,qtid,tid);
- return "addQuestionXZSX";
- }
- public String addAdminQuestionXZSX(){
- Date date = new Date();
- question.setQdate(date);
- questionService.addAdminQuestionXZSX(question,qtid);
- return "addQuestionXZSX";
- }
- //查看相似填空题
- public String ckXSTKQuestion(){
- List<Question> listxs = questionService.findByOword(question.getOword(), question.getQscope(), question.getQdifficulty(), qtid);
- ActionContext.getContext().getValueStack().set("question", question);
- ActionContext.getContext().getValueStack().set("listxs", listxs);
- return"ckXSTKQuestion";
- }
- public String ckXSTKAdminQuestion(){
- List<Question> listxs = questionService.findByOword(question.getOword(), question.getQscope(), question.getQdifficulty(), qtid);
- ActionContext.getContext().getValueStack().set("question", question);
- ActionContext.getContext().getValueStack().set("listxs", listxs);
- return "ckXSTKAdminQuestion";
- }
- //添加填空题
- public String addQuestionTK(){
- return "addQuestionTK";
- }
- public String addAdminQuestionTK(){
- return "addAdminQuestionTK";
- }
- //添加填空实现
- public String addQuestionTKSX(){
- Date date = new Date();
- question.setQdate(date);
- questionService.addQuestionXZSX(question,qtid,tid);
- return "addQuestionTKSX";
- }
- public class AnswerStateAction extends ActionSupport implements ModelDriven<AnswerState>{
- private AnswerState answerState = new AnswerState();
- public AnswerState getModel() {
- return answerState;
- }
- private AnswerStateService asService;
- public void setAsService(AnswerStateService asService) {
- this.asService = asService;
- }
- private Integer qid;
-
- public void setQid(Integer qid) {
- this.qid = qid;
- }
- private Integer tnid;
-
- public void setTnid(Integer tnid) {
- this.tnid = tnid;
- }
- private String qanswer;
-
- public void setQanswer(String qanswer) {
- this.qanswer = qanswer;
- }
- //根据试题编号,记录编号 进行将试题答案保存
- public String saveAnswerState() throws IOException{
- String qas = java.net.URLDecoder.decode(qanswer, "UTF-8");
- asService.saveAnswerState(tnid,qid,qas);
- return NONE;
- }
-
- }
如果也想学习本系统,下面领取。回复:107ssh