基于JSP的视频点播系统MVC模式,源码下载

╄→гoц情女王★ 提交于 2019-11-29 17:55:45

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT)、PYTHON、PHP、C#、安卓等多项技术。

今天将为大家分析一个视频点播系统(VoD(视频点播)是以“用户自主”的崭新概念为基础的双向视音频信息系统,它实现了用户按需播放视音频节目的愿望。该文介绍了视频点播系统与流媒体技术的基本组成和功能。提出了一个视频点播系统的具体设计与实现方案,并详细探讨了系统在设计与实现中所采用的相关技术与方法。系统经实际使用证明是可行的。),该项目使用框架为SSM(MYECLIPSE),选用开发工具为MYECLIPSE。视频点播系统为一个 后台项目。

为了完成该系统,我们首先需要对该系统进行需求分析。一个视频点播系统应包含用户角色有管理员、学生。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。

为了完成系统的功能需要为学生设置视频表,记录视频信息。在视频表中定义了两者的关联关系,其中视频的发布人与学生的mingzi字段对应、视频的发布人id与学生的id字段对应

。为了完成系统的功能需要为视频、学生设置收藏表,记录收藏信息。在收藏表中定义了两者的关联关系,其中收藏的视频与视频的biaoti字段对应、收藏的视频id与视频的id字段对应、收藏的学生与学生的mingzi字段对应、收藏的学生id与学生的id字段对应

 

 

总结得出该系统所有数据为:管理员(admin)、学生(xuesheng)、视频(shipin)、收藏(shoucang)

 

 

管理员表

字段名 | 类型 | 属性 | 描述    id | INT(11) | PRIMARY KEY | 管理员id    username | VARCHAR(255) |  | 账号    password | VARCHAR(255) |  | 密码

 

 

 

学生表

字段名 | 类型 | 属性 | 描述    id | INT(11) | PRIMARY KEY | 学生id    mingzi | VARCHAR(255) |  | 名字    username | VARCHAR(255) |  | 账号    password | VARCHAR(255) |  | 密码    nianling | VARCHAR(255) |  | 年龄

 

 

 

视频表

字段名 | 类型 | 属性 | 描述    id | INT(11) | PRIMARY KEY | 视频id    biaoti | VARCHAR(255) |  | 标题    wenjian | VARCHAR(255) |  | 文件    jieshao | VARCHAR(255) |  | 介绍    xuesheng | VARCHAR(255) |  | 发布人    xueshengid | VARCHAR(255) |  | 发布人id

 

 

 

收藏表

字段名 | 类型 | 属性 | 描述    id | INT(11) | PRIMARY KEY | 收藏id    shipin | VARCHAR(255) |  | 视频    shipinid | VARCHAR(255) |  | 视频id    xuesheng | VARCHAR(255) |  | 学生    xueshengid | VARCHAR(255) |  | 学生id

 

sql建表语句

SET FOREIGN_KEY_CHECKS=0;    -- ----------------------------    -- ----------------------------    -- Table structure for ggshipingdianbo    -- ----------------------------    DROP TABLE IF EXISTS `t_admin`;    CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`)    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员';    -- ----------------------------    DROP TABLE IF EXISTS `t_xuesheng`;    CREATE TABLE `t_xuesheng` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '学生id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`nianling` VARCHAR(255) DEFAULT NULL COMMENT '年龄',PRIMARY KEY (`id`)    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='学生';    -- ----------------------------    DROP TABLE IF EXISTS `t_shipin`;    CREATE TABLE `t_shipin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '视频id',`biaoti` VARCHAR(255) DEFAULT NULL COMMENT '标题',`wenjian` VARCHAR(255) DEFAULT NULL COMMENT '文件',`jieshao` VARCHAR(255) DEFAULT NULL COMMENT '介绍',`xuesheng` VARCHAR(255) DEFAULT NULL COMMENT '发布人',`xueshengid` INT(11) DEFAULT NULL COMMENT '发布人id',PRIMARY KEY (`id`)    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='视频';    -- ----------------------------    DROP TABLE IF EXISTS `t_shoucang`;    CREATE TABLE `t_shoucang` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '收藏id',`shipin` VARCHAR(255) DEFAULT NULL COMMENT '视频',`shipinid` INT(11) DEFAULT NULL COMMENT '视频id',`xuesheng` VARCHAR(255) DEFAULT NULL COMMENT '学生',`xueshengid` INT(11) DEFAULT NULL COMMENT '学生id',PRIMARY KEY (`id`)    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='收藏';

 

 

学生处理控制层

package org.mypro.front;    import java.io.File;    import java.io.IOException;    import java.math.BigDecimal;    import java.text.SimpleDateFormat;    import java.util.ArrayList;    import java.util.Calendar;    import java.util.Collections;    import java.util.Date;    import java.util.List;    import javax.jms.Session;    import javax.servlet.http.HttpServletRequest;    import javax.servlet.http.HttpServletResponse;    import javax.servlet.http.HttpSession;    import org.apache.commons.lang3.StringUtils;    import org.apache.commons.logging.Log;    import org.apache.commons.logging.LogFactory;    import org.mypro.dao.XueshengMapper;    import org.mypro.entity.Xuesheng;    import org.mypro.entity.XueshengExample;    import org.springframework.beans.factory.annotation.Autowired;    import org.springframework.stereotype.Controller;    import org.springframework.web.bind.annotation.RequestMapping;    import org.springframework.web.bind.annotation.RequestMethod;    import org.springframework.web.multipart.MultipartFile;    @Controller    @RequestMapping(value = "/")    public class XueshengController {    private static final Log logger = LogFactory.getLog(XueshengController.class);    @Autowired  private XueshengMapper xueshengdao;    //定义方法tianjiaxuesheng,响应页面tianjiaxuesheng请求    @RequestMapping(value = "tianjiaxuesheng")    public String tianjiaxuesheng(HttpServletRequest request, HttpServletResponse response,HttpSession session,String backurl) {    logger.debug("XueshengController.tianjiaxuesheng ......");    if(backurl != null && backurl.indexOf("tianjiaxuesheng.action") == -1){    return "forward:/" + backurl; }    return "tianjiaxuesheng";    }    @RequestMapping(value = "tianjiaxueshengact")    public String tianjiaxueshengact(HttpServletRequest request,HttpSession session, HttpServletResponse response,Xuesheng xuesheng,String backurl) throws IOException {    logger.debug("XueshengController.tianjiaxueshengact ......");    xueshengdao.insert(xuesheng);    request.setAttribute("message", "添加学生成功");    if(backurl != null && backurl.indexOf("tianjiaxueshengact.action") == -1){    return "forward:/" + backurl; }    //返回tianjiaxuesheng方法    return "forward:/tianjiaxuesheng.action";    }    //定义xueshengguanli方法响应页面请求    @RequestMapping(value = "xueshengguanli")    public String xueshengguanli(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {    logger.debug("XueshengController.xueshengguanli ......");    XueshengExample example = new XueshengExample();    List xueshengall = xueshengdao.selectByExample(example);    request.setAttribute("xueshengall", xueshengall);    if(backurl != null && backurl.indexOf("xueshengguanli.action") == -1){    return "forward:/" + backurl; }    return "xueshengguanli";    }    // 定义 xueshengchakan方法    @RequestMapping(value = "xueshengchakan")    public String xueshengchakan(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {    logger.debug("XueshengController.xueshengchakan ......");    XueshengExample example = new XueshengExample();    List xueshengall = xueshengdao.selectByExample(example);    request.setAttribute("xueshengall", xueshengall);    if(backurl != null && backurl.indexOf("xueshengchakan.action") == -1){    return "forward:/" + backurl; }    return "xueshengchakan";    }    // 定义 xiugaixuesheng方法    @RequestMapping(value = "xiugaixuesheng")    public String xiugaixuesheng(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){    logger.debug("XueshengController.xiugaixuesheng ......");    Xuesheng xuesheng = xueshengdao.selectByPrimaryKey(id);    request.setAttribute("xuesheng", xuesheng);    if(backurl != null && backurl.indexOf("xiugaixuesheng.action") == -1){    return "forward:/" + backurl; }    return "xiugaixuesheng";    }    // 定义xiugaixueshengact处理学生修改    @RequestMapping(value = "xiugaixueshengact")    public String xiugaixueshengact(HttpServletRequest request, HttpServletResponse response,Xuesheng xuesheng,HttpSession session,String backurl) throws IOException {    logger.debug("XueshengController.xiugaixueshengact ......");    xueshengdao.updateByPrimaryKeySelective(xuesheng);    request.setAttribute("message", "修改学生信息成功");    if(backurl != null && backurl.indexOf("xiugaixueshengact.action") == -1){    return "forward:/" + backurl; }    return "forward:/xueshengguanli.action";    }    // 定义shanchuxuesheng,处理删除学生    @RequestMapping(value = "shanchuxuesheng")    public String shanchuxuesheng(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){    logger.debug("XueshengController.shanchuxuesheng ......");    xueshengdao.deleteByPrimaryKey(id);    request.setAttribute("message", "删除学生成功");    if(backurl != null && backurl.indexOf("shanchuxuesheng.action") == -1){    return "forward:/" + backurl; }    return "forward:/xueshengguanli.action";    }    // 定义sousuoxuesheng方法,处理搜索操作    @RequestMapping(value = "sousuoxuesheng")    public String sousuoxuesheng(HttpServletRequest request, HttpServletResponse response,HttpSession session,String search,String backurl) {    logger.debug("XueshengController.sousuoxuesheng ......");    XueshengExample example = new XueshengExample();    XueshengExample.Criteria criteria = example.createCriteria();    if(search != null){    criteria.andMingziLike("%" + search + "%");    }    List xueshengall = xueshengdao.selectByExample(example);    request.setAttribute("xueshengall", xueshengall);    if(backurl != null && backurl.indexOf("sousuoxuesheng.action") == -1){    return "forward:/" + backurl; }    return "sousuoxuesheng";    }    // 定义XueshengpinglunMapper@RequestMapping    (value = "xueshengxiangqing")    public String xueshengxiangqing(HttpServletRequest request,HttpSession session, HttpServletResponse response,int id,String backurl) {logger.    debug("XueshengController.xueshengxiangqing ......");Xuesheng xuesheng     = xueshengdao.selectByPrimaryKey(id);request.    setAttribute("xuesheng", xuesheng);    if(backurl != null && backurl.indexOf("xueshengxiangqing.action") == -1){    return "forward:/" + backurl; }    return "xueshengxiangqing";    }    // 上传文件图片等    public String uploadUtile(MultipartFile file, HttpServletRequest request) throws IOException {    // 根据当前时间生成时间字符串    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSS");    String res = sdf.format(new Date());    // uploads文件夹位置    String rootPath = request.getSession().getServletContext().getRealPath("resource/uploads/");    // 原始名称    String originalFileName = file.getOriginalFilename();    // 新文件名    String newFileName = "sliver" + res + originalFileName.substring(originalFileName.lastIndexOf("."));    // 创建年月文件夹    Calendar date = Calendar.getInstance();    File dateDirs = new File(date.get(Calendar.YEAR) + File.separator + (date.get(Calendar.MONTH)+1));    // 新文件    File newFile = new File(rootPath + File.separator + dateDirs + File.separator + newFileName);    // 判断目标文件所在目录是否存在    if( !newFile.getParentFile().exists()) {    // 如果目标文件所在的目录不存在,则创建父目录newFile.    getParentFile().mkdirs();    }    System.out.println(newFile);    // 将内存中的数据写入磁盘file.    transferTo(newFile);    // 完整的url    String fileUrl = date.get(Calendar.YEAR) + "/" + (date.get(Calendar.MONTH)+1) + "/" + newFileName;    return fileUrl;    }}

 

源码下载

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!