基于SSM的在线算法教学演示系统

博主主页猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

项目介绍: 

该系统使用ssm整合,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:ssm、在线教学、算法演示、视频网站等。

项目功能:

系统角色分为学生和老师,网站类型,分为前后台。

学生角色:前台学生注册系统后,登录系统进入首页,首页展示不同算法类别的视频,每个类别展示几个,如果点击类别名称可以进入类别页面,查看该类别全部视频。在网站上方有搜索框,可以搜索视频学习,在视频详情界面,视频显示播放量,可以收藏,有视频简介,也可以进行登录后评论,学生可以到达个人中心查看自己的个人信息,或修改个人信息,并查看收藏及评论记录。

老师角色:登录功能,视频内容管理模块(视频的查看,上传,修改,删除),分类管理模块(分类的增加,删除,修改,查看),教师信息管理模块(教师的查看,修改,增加,删除),学生管理模块(增加,删除,修改,查询)。

数据库表结构文档:

系统包含技术:

技术:Spring,SpringMVC,Mybatis
开发工具:eclipse
数据库:mysql 5.7
JDK版本:jdk1.8
服务器:tomcat8

部分截图说明:

下面是首页

算法列表,可以根据分类查看算法

热门排行算法,根据收藏数排行

详情查看,可以查看视频,可以进行评论

个人中心

后台登录

后台首页

后台对学生进行管理

 后台对分类维护

 后台对算法维护

 后台查看评论

部分代码截图:

视频操作

//返回到前台首页 	@RequestMapping(value = "/index") 	public String index(HttpServletRequest request,ModelMap model) { 		String path = request.getContextPath(); 		System.out.println(path); 		List<Video> allvideo=videoService.ReadByProperty(); 		List<Guanggao> guanggaolist=guanggaoService.queryImg(1); 		List<Category> allcategory=categoryService.queryAll(); 		//System.out.println(allvideo); 		//图片数量		 		model.addAttribute("guanggaolist", guanggaolist); 		model.addAttribute("allcategory", allcategory); 		model.addAttribute("resultvideovod", allvideo); 		model.addAttribute("pre", "/OnlineMovie"); 		return "front/videomain"; 	} 	 	//按照ID查询视频 	@RequestMapping("/videobyId/{videoid}") 	public ModelAndView videobyId(@PathVariable("videoid") Integer id,ModelMap model,HttpServletRequest request) throws Exception{ 		ModelAndView mv = new ModelAndView(); 		HttpSession session = request.getSession(); 		int s = 0; 		if(session.getAttribute("uid") == null){ 			s=1; 		}else{ 			String uid = session.getAttribute("uid").toString(); 	        int userid =  Integer.parseInt(uid); 	        List<Star> ss = starService.queryUidVid(userid,id); 	        if(ss.size() == 0){ 	        	s=1; 	        }else{ 	        	s=2; 	        } 		} 		Video video=videoService.queryByID(id); 		List<Comments> comments=commentsService.queryById(id); 		int total = comments.size(); 		Category category = categoryService.queryById(video.getCategoryid()); 		model.addAttribute("video", video); 		model.addAttribute("comments", comments); 		model.addAttribute("total", total); 		model.addAttribute("ss", s); 		model.addAttribute("categoryname", category.getName()); 	    mv.setViewName("front/videodetail");	 	    model.addAttribute("pre", "/OnlineMovie"); 	    return mv;   	} 	 	 	//留言成功后界面按照ID查询视频 		@RequestMapping("/videobyIdCC/{videoid}") 		public ModelAndView videobyIdCC(@PathVariable("videoid") Integer id,HttpServletRequest request,ModelMap model) throws Exception{ 			ModelAndView mv = new ModelAndView(); 			HttpSession session = request.getSession(); 			int s = 0; 			if(session.getAttribute("uid") == null){ 				s=1; 			}else{ 				String uid = session.getAttribute("uid").toString(); 		        int userid =  Integer.parseInt(uid); 		        List<Star> ss = starService.queryUidVid(userid,id); 		        if(ss.size() == 0){ 		        	s=1; 		        }else{ 		        	s=2; 		        } 			} 			Video video=videoService.queryByID(id); 			List<Comments> comments=commentsService.queryById(id); 			int total = comments.size(); 			Category category = categoryService.queryById(video.getCategoryid()); 			model.addAttribute("video", video); 			model.addAttribute("comments", comments); 			model.addAttribute("total", total); 			model.addAttribute("ss", s); 			model.addAttribute("categoryname", category.getName()); 		    mv.setViewName("front/videodetail");	 		    model.addAttribute("pre", "/OnlineMovie"); 		    return mv;   		} 	 	 	 	//跳转到算法列表 	@RequestMapping("/list") 	public ModelAndView video(ModelMap model) throws Exception{ 		ModelAndView mv = new ModelAndView(); 		List<Category> allcategory=categoryService.queryAll(); 		model.addAttribute("allcategory", allcategory); 	    mv.setViewName("front/movieList");	 	    return mv;   	} 	 	 	    //按照分类查找算法 		@RequestMapping("/queryByCategory/{cid}/{aid}") 		public ModelAndView queryByCategory(@PathVariable("cid") Integer cid,@PathVariable("aid") Integer aid,ModelMap model) throws Exception{			 			ModelAndView mv = new ModelAndView(); 			int pageSize=18; 			int pageCode=aid;	    	 	    	PageBean<Video> videoPageBean = videoService.queryAllbycat(cid,pageCode, pageSize); 	    	int tt = videoPageBean.getTotalPage(); 	    	model.addAttribute("videoPageBean", videoPageBean);	    	 			List<Category> allcategory=categoryService.queryAll(); 			model.addAttribute("allcategory", allcategory); 		    mv.setViewName("front/movieList");	 		    return mv;  		} 		 		 //按照分类显示全部算法 		@RequestMapping("/queryByCategory2/{cid}/{aid}") 		public ModelAndView queryByCategory2(@PathVariable("cid") Integer cid,@PathVariable("aid") Integer aid,ModelMap model) throws Exception{ 			ModelAndView mv = new ModelAndView(); 			int pageSize=18; 			int pageCode=aid;	    	 	    	PageBean<Video> videoPageBean = videoService.findAllarticleByPage(cid, pageCode, pageSize); 	    	int tt = videoPageBean.getTotalPage(); 	    	model.addAttribute("videoPageBean", videoPageBean);	    	 			List<Category> allcategory=categoryService.queryAll(); 			model.addAttribute("allcategory", allcategory); 		    mv.setViewName("front/movieList");	 		    return mv;   		} 		 		 //模糊查询算法算法 		@RequestMapping("/queryVideo") 		public ModelAndView queryVideo(ModelMap model,HttpServletRequest request) throws Exception{ 			ModelAndView mv = new ModelAndView(); 			String search = request.getParameter("searchMovie"); 			List<Video> videobycategory=videoService.queryVideo(search); 			model.addAttribute("videobycategory", videobycategory); 		    mv.setViewName("front/movieSearch");	 		    return mv;  		    		} 		 		//下载算法 		@RequestMapping("/upload/{id}") 		public  ResponseEntity<byte[]> upload(@PathVariable("id") Integer id,HttpServletRequest request, HttpServletResponse response,ModelMap model) throws Exception{ 			ModelAndView mv = new ModelAndView(); 			Video video = videoService.queryByID(id); 			// 文件保存路径               String filePath = "D:/upload" + video.getUrl();               // 转存文件             String fileNames = video.getUrl().substring(video.getUrl().lastIndexOf("/")+1);             String downloadFileName = URLEncoder.encode(fileNames,"UTF-8"); 			File file = new File(filePath); 		    byte[] body = null; 		    InputStream is = new FileInputStream(file); 		    body = new byte[is.available()]; 		    is.read(body); 		    HttpHeaders headers = new HttpHeaders(); 		    headers.add("Content-Disposition", "attchement;filename="+downloadFileName); 		    HttpStatus statusCode = HttpStatus.OK; 		    ResponseEntity<byte[]> entity = new ResponseEntity<byte[]>(body, headers, statusCode); 		    return entity; 		} 	 		 //热门排行 		@RequestMapping("/rank") 		public ModelAndView rank(ModelMap model) throws Exception{ 			ModelAndView mv = new ModelAndView(); 			List<Video> videorank = videoService.videorank(); 			model.addAttribute("videorank", videorank); 		    mv.setViewName("front/movieRank");	 		    return mv;   		}

学生登录

//学生登录 	@RequestMapping(value = "/userLogin") 	public ModelAndView userLogin(String email, String password ,ModelMap map,HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException  { 		 		HttpSession session = request.getSession(); 		ModelAndView modelAndView = new ModelAndView(); 		User user = userService.check(email); 		if(user==null) { 			session.setAttribute("msg", "对不起,登录名错误,请重试!"); 			modelAndView.setViewName("front/login");		 			return modelAndView; 		}else { 			if(user.getPassword().equals(password)) { 				String uname = user.getName(); 				int uid = user.getUid(); 				session.setAttribute("uname", uname); 				session.setAttribute("uid", uid); 				modelAndView.setViewName("redirect:/video/index"); 				return modelAndView; 			}else {				 				session.setAttribute("msg", "对不起,密码错误,请重试!"); 				modelAndView.setViewName("front/login");		 				return modelAndView; 			} 			 		}	 		 	}

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值