基于springboot的智慧学习(在线学习考试)系统

简介: 该系统创作于2022年5月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:智慧学习、在线学习、在线考试、学习系统、考试系统等。

项目介绍:



该系统创作于2022年5月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:智慧学习、在线学习、在线考试、学习系统、考试系统等。


项目功能:



c7dd8d8f8f1c498a8fe724386223b710.png0e0d670a0fc0402d92010a8ea983c932.png

95d5fd72f44e4b979bcdb22a27e99b02.png


数据库表结构文档:



8bb7552e8b5e455081435cb8401ba71b.png


系统包含技术:



后端:springBoot、mybatis

前端:bootstrap、js、css等,html页面

开发工具:idea

数据库:mysql 5.7

JDK版本:jdk1.8


部分截图说明:



下面是登录页面


6e0e6f32fd8f4714bedc9853721018b7.png


登录可以选择角色,我们先看管理员的功能


aec7fb34eeeb455c8d6eb4665d7da93a.png


管理员可以对学生进行管理


e06b0de98f7e4ddea2a21e06adcc7db0.png


 管理员也可以对教师进行管理


7061a556dba24fe9a3fe31f2bf8eb771.png


 管理员查看视频资源


4a497c57c06d458ba5a44ca310e756ee.png


 管理员对课程进行管理


43c562005bad43d1b83e52da13cb8219.png


教师对试题管理


4930d7e22b7a43daaf744ac39d5a198d.png


教师对试卷进行管理


6758ae61fa4c4c52b35d16c9b042685f.png


教师查看考试结果


36d7e2629b4f4450abd195075bd3849f.png


学生可以进行考试


e0f5a98f6ab04b7db79402de473c9717.png


学生也可以查看学习视频


21067d1fbb9d49559322846386997ece.png


学生修改个人信息


d9ba40e459f2468a86525609a762e610.png


部分代码:



拦截器配置


 @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        HttpSession session = request.getSession();
        if(session.getAttribute("ad") != null){
            return true;
        }
        // 不符合条件的给出提示信息,并转发到主页面
        request.setAttribute("msg", "您还没有登录,请先登录!");
        request.getRequestDispatcher("/gologin.jsp").forward(request, response);
        //返回true通过,返回false拦截
        return false;
    }


注册拦截器


 @Override
    public void addInterceptors(InterceptorRegistry registry)
    {
        //注册自己的拦截器并设置拦截的请求路径
        registry.addInterceptor(new AuthInterceptor()).addPathPatterns("/**")//拦截的访问路径,拦截所有
                .excludePathPatterns("/static/*","/**/**/*.css","/**/**/*.js","/**/**/**/*.css","/**/**/**/*.js","/**/**/**/*.jpg")
                .excludePathPatterns("/gologin","/login","/loginOut","/register","/registerSub","/upload/*");//排除的请求路径,排除静态资源路径
        super.addInterceptors(registry);
    }


上传文件地址映射


@Value("${uploadDir}")
    private String uploadDir;
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/upload/**").addResourceLocations("file:" + uploadDir);
        super.addResourceHandlers(registry);
    }


文件上传


 /**
     * 文件上传
     */
    @RequestMapping(value = "/uploadFile")
    @ResponseBody
    public JSONObject uploadFile(HttpServletRequest request) throws IOException {
        JSONObject jsonObject = new JSONObject();
        try {
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            //使用UUID给图片重命名,并去掉四个“-”
            // 获取上传的文件
            MultipartFile multiFile = multipartRequest.getFile("file");
            SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
            String name = sf.format(new Date());
            //获取文件的扩展名
            String ext = FilenameUtils.getExtension(multiFile.getOriginalFilename());
            //以绝对路径保存重名命后的图片
            multiFile.transferTo(new File(uploadDir+"/"+name + "." + ext));
            jsonObject.put("code",name + "." + ext);
            return jsonObject;
        } catch (Exception e) {
            e.printStackTrace();
            jsonObject.put("code", 0);
            return jsonObject;
        }
    }



课程对应操作


 /**
     * 分页查询
     * pageIndex 当前页码
     * pageSize  显示条数
     */
    @RequestMapping(value = "/findCourse")
    public String findCourse(Integer pageIndex, Integer pageSize,String cname, Model model,HttpServletRequest request) {
        HttpSession session = request.getSession();
        if(session.getAttribute("ad") == null){
            session.setAttribute("msg", "对不起,请登录!");
            return "login";
        }
        Map mp = new HashMap();
        mp.put("cname",cname);
        String type = (String)session.getAttribute("type");
        if(type.equals("02")){
            Teacher teacher = (Teacher)session.getAttribute("ad");
            mp.put("tid",teacher.getId());
        }
        PageInfo<Course> pageList = courseService.findPageInfo(pageIndex,pageSize,mp);
        model.addAttribute("pageList",pageList);
        if(type.equals("02")){
            Map mps = new HashMap();
            Teacher teacher = (Teacher)session.getAttribute("ad");
            mps.put("id",teacher.getId());
            List<Teacher> teacherList = teacherService.queryFilter(mps);
            model.addAttribute("teacherList",teacherList);
        }else{
            List<Teacher> teacherList = teacherService.getAll();
            model.addAttribute("teacherList",teacherList);
        }
        return "CourseList";
    }
    /**
     * 添加
     */
    @RequestMapping(value = "/addCourse" ,method = RequestMethod.POST)
    @ResponseBody
    public String addCourse( @RequestBody Course course) {
        try{
            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            course.setCreateTime(sf.format(new Date()));
            courseService.addCourse(course);
            return "200";
        }catch (Exception e){
            e.printStackTrace();
            return "201";
        }
    }
    /**
     * 删除
     */
    @RequestMapping( "/deleteCourse")
    @ResponseBody
    public String deleteCourse(String id) {
        int d = courseService.deleteCourse(id);
        return "CourseList";
    }
    /**
     * 修改
     */
    @RequestMapping( "/updateCourse")
    @ResponseBody
    public String updateCourse(@RequestBody  Course course) {
        try{
            courseService.updateCourse(course);
            return "200";
        }catch (Exception e){
            e.printStackTrace();
            return "201";
        }
    }


以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。


好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

相关文章
|
2天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的音乐推荐管理系统
基于Java+Springboot+Vue开发的音乐推荐管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的音乐推荐管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
31 8
基于Java+Springboot+Vue开发的音乐推荐管理系统
|
2天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的母婴商城管理系统
基于Java+Springboot+Vue开发的母婴商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的网上母婴商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
19 7
基于Java+Springboot+Vue开发的母婴商城管理系统
|
3天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的在线摄影预约管理系统
基于Java+Springboot+Vue开发的在线摄影预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的在线摄影管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
18 8
基于Java+Springboot+Vue开发的在线摄影预约管理系统
|
3天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的农产品商城管理系统
基于Java+Springboot+Vue开发的农产品商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。 通过学习基于Java的农产品商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
17 5
基于Java+Springboot+Vue开发的农产品商城管理系统
|
3天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的新闻管理系统
基于Java+Springboot+Vue开发的新闻管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的新闻管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
16 3
基于Java+Springboot+Vue开发的新闻管理系统
|
4天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的体育用品商城管理系统
基于Java+Springboot+Vue开发的体育用品商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的体育用品商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
15 2
基于Java+Springboot+Vue开发的体育用品商城管理系统
|
4天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统
基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的口腔预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
15 1
基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统
|
4天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的旅游景区管理系统
基于Java+Springboot+Vue开发的旅游景区管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的旅游景区管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
17 4
基于Java+Springboot+Vue开发的旅游景区管理系统
|
4天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的体育场馆预约管理系统
基于Java+Springboot+Vue开发的体育场馆预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的体育场馆管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
12 2
基于Java+Springboot+Vue开发的体育场馆预约管理系统
|
5天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的鲜花商城管理系统
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
17 2