Java实现在线考试系统(老师功能)

在线考试系统老师登录页面
Java实现在线考试系统(老师功能)_第1张图片

//跳转到登录页面
@RequestMapping(value="/login", method = RequestMethod.GET)
    public String userLogin(){

        return "/adminUser/login";
    }

    //实现登录功能
@RequestMapping(value = "/login", method = RequestMethod.POST)
    public String adminLogin(String id, String password,Model model, HttpServletRequest request){
        //在service实现的登录功能校验
        Teacher teacher = teacherService.login(id, password);
        if (teacher != null){
            HttpSession session = request.getSession();
            session.setAttribute("teacherInfo", teacher);
            return "redirect:/index";
        }
        model.addAttribute("message", "用户名或密码错误!");
        return "/adminUser/login";
    }

    //跳转到修改密码页面
    @RequestMapping(value="/updatePassword", method=RequestMethod.GET)
    public String userUpdatePasswordView(){

        return "/adminUser/updatePassword";
    }

    //实现密码修改功能
    @RequestMapping(value="/updatePassword", method=RequestMethod.POST)
    @ResponseBody
    public AjaxResult userUpdatePassword(String id, String password, String newpassword, String renewpassword){

        if (newpassword != null){
            if (newpassword.equals(renewpassword)){
            //在service实现了修改密码功能
                boolean flag = teacherService.updatePassword(id, password, newpassword);
                if (flag){
                    return AjaxResult.successInstance("修改密码成功");
                }else{
                    return AjaxResult.errorInstance("原密码错误");
                }
            }else{
                return AjaxResult.errorInstance("您两次输入的密码不一致");
            }
        }

        return AjaxResult.errorInstance("您两次输入的密码不一致");
    }

//退出系统功能代码
@RequestMapping("/logout")
    public String userLogout(HttpServletRequest request){

        HttpSession session = request.getSession();
        session.setAttribute("teacherInfo", null);
        return "redirect:/adminUser/login";
    }
//实现登录拦截器
@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        //在handle执行之前处理
        //判断用户是否登录
        //1.获取Session
        HttpSession session = request.getSession();
        Teacher teacher = (Teacher) session.getAttribute("teacherInfo");

        if (teacher == null){
            response.sendRedirect("/adminUser/login");
            return false;
        }

        return true;
    }

老师登录系统后可以进行考试管理(老师阅卷为流水阅卷,所有教这门课的老师都会进行阅卷,但是老师不知道自己批阅的是哪个班级的哪个学生试卷)
Java实现在线考试系统(老师功能)_第2张图片
本系统批阅试卷采用半自动阅卷方式(选择题和填空题采用电脑后台阅卷,主观题用电脑去阅卷难度太大,因此我们改为老师手工阅卷;为了方便老师阅卷,会在考试的答案下面显示正确答案)
Java实现在线考试系统(老师功能)_第3张图片
Java实现在线考试系统(老师功能)_第4张图片

批阅完的试卷是可以看到是哪个学生的试卷,也可以查看已批阅试卷,方便检查学生试卷。
Java实现在线考试系统(老师功能)_第5张图片

作为老师可以添加试题模块(比如选择题、填空题等,都有哪些题型,在发布考试的时候也容易选择某几个试题进行发布)
Java实现在线考试系统(老师功能)_第6张图片

有添加试题模块功能当然也会有添加试题的功能(在这里老师只能查看自己所教课程的所有试题,没有教的课程试题是没有权限查看的)
Java实现在线考试系统(老师功能)_第7张图片
添加试题功能(如果是选择题,则有ABCD四个选项框,如果非选择题则没有,在这里我们做了联动功能)
Java实现在线考试系统(老师功能)_第8张图片
Java实现在线考试系统(老师功能)_第9张图片
添加试题时,我们对科目也做了权限控制,老师只能添加自己所授科目的试题,不能添加和自己没有关系科目的试题(并且在这里我们做了表单的二级联动,选择科目,下面的试题章节也会变成该科目所对应的章节)
Java实现在线考试系统(老师功能)_第10张图片

//跳转到添加页面
@RequestMapping(value="/add", method=RequestMethod.GET)
    public String addTextView(HttpServletRequest request,Model model){

        HttpSession session = request.getSession();
        Teacher teacher = (Teacher) session.getAttribute("teacherInfo");
        List textList = subjectService.showList(teacher.getId());
        Subject subject = textList.get(0);
        List chapterList = chapterService.getChapter(subject.getId());
        List textModelList = textModelService.showList();
        model.addAttribute("textList", textList);
        model.addAttribute("textModelList", textModelList);
        model.addAttribute("chapterList", chapterList);
        return "/text/add";
    }
    //添加试题
    @RequestMapping(value="/add", method=RequestMethod.POST)
    @ResponseBody
    public AjaxResult addText(Text text){

        Integer chapterid = text.getChapterid();
        Chapter chapter = chapterService.selectOne(chapterid);
        text.setChaptername(chapter.getName()+"   "+chapter.getTitle());

        Integer subjectid = text.getSubjectid();
        Subject subject = subjectService.selectOne(subjectid);
        text.setSubjectname(subject.getName());

        Integer texId = text.getTexId();
        Textmodel textmodel = textModelService.selectOne(texId);
        text.setModelname(textmodel.getTexttype());

        textService.insert(text);
        return AjaxResult.successInstance("添加成功");
    }
//添加试题模块前端JQuery
<script type="text/javascript">
        $(function(){
            //科目的下拉框change事件
            $("#subjectid").change(function(){
                var subjectid = $("#subjectid").val();
                $.ajax({
                    type:"POST",
                    url:"<%=path%>/text/showChapter",
                    data:{
                        id:subjectid
                    },
                    dataType:"json",
                    success:function(data){
                        $("#chapterid").empty();
                        $.each(data,function(index,item){
                            $("#chapterid").append("+item.name+"   "+item.title+"");
                        })
                    }
                })
            }

            )

        })
    script>

    
    <script type="text/javascript">
        //初始情况
        $(function(){
            var model = $("#texId option:selected").text();
            if (model != "选择题"){
                $("#type1,#type2,#type3,#type4").hide();
            }

            //当试题模块内容改变
            $("#texId").change(function(){
                var model = $("#texId option:selected").text();
                if (model != "选择题"){
                    $("#type1,#type2,#type3,#type4").hide();
                }else{
                    $("#type1,#type2,#type3,#type4").show();
                }
            })

        })
    script>

查询成绩功能和管理员的查询功能是一样的,在这里就不重复去写了(因为代码比较多,因此只是挑选一些代码进行粘贴)

你可能感兴趣的:(Java,Web)