在线视频点播系统分析与设计.doc

上传人:豆**** 文档编号:24064618 上传时间:2022-07-03 格式:DOC 页数:84 大小:1.33MB
返回 下载 相关 举报
在线视频点播系统分析与设计.doc_第1页
第1页 / 共84页
在线视频点播系统分析与设计.doc_第2页
第2页 / 共84页
点击查看更多>>
资源描述

《在线视频点播系统分析与设计.doc》由会员分享,可在线阅读,更多相关《在线视频点播系统分析与设计.doc(84页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date在线视频点播系统分析与设计【摘要】 随着经济和科技的高速发展,人们的生活水平也迅速的提高,伴随着是人们的生活方式也在潜移默化的改变着,人们的生活节奏在不断的加快,越来越多的时间花在工作和人际上,而相对的自己娱乐时间越来越少。对于这种改变,在线视频点播系统悄然而生,并且迅速被人们所接受和喜爱。 【摘要】 随着经济和科技的高速发展,人们的生活水平也迅速的提高,伴随着是人们

2、的生活方式也在潜移默化的改变着,人们的生活节奏在不断的加快,越来越多的时间花在工作和人际上,而相对的自己娱乐时间越来越少。对于这种改变,在线视频点播系统悄然而生,并且迅速被人们所接受和喜爱。 本课题主要采用的设计语言是java,所设计的在线视频点播系统最终达成包括用户模块、视频文件上传、注册、登录等功能和管理员模块、视频审核,发布、用户管理等功能。【关键词】 视频点播;java;html;SQL server 2005;1绪论1.1 背景及意义伴随着中国经济的快速发展,人们的生活节奏加快,生活方式简单快速化,人们的娱乐休闲时间越来越少,在传统的电视节目中,人们完全是被动的,节目提供者在什么时间

3、段播放什么样的节目,人们就得按照节目提供者给得时间段去看相应的节目。这已经满足不了人们的需求,对于现在的生活节奏,人们已经不可能为了看一个节目而预先安排自己的时间。人们都希望能够随时的看自己想要看的节目。在线视频点播系统就是为了满足现在人们的需求。这种信息服务方式符合现在人们对信息资源的更深层次的要求。2相关技术和开发环境2.1 系统架构本系统主要采用MVC架构的设计模式。这种模式主要是把一个应用分成三部分设计的方式,使用这种模式会让程序设计更加的简单,也让耦合程度减至最小。视图(v)在本系统中也就是页面,用于展示数据和传递数据,没有处理在这里发生作为视图来讲。模型(M)表示企业提供的一些处理

4、数据的逻辑。模型主要用来处理用户从界面传来的数据,它能够处理多个视图提供过的数据,并且能够被重复使用,提高了性能,减少了代码的重复性,有利于后期的维护。控制器(C)可看作第三方,主要是调用视图和模型的作用。它在这个过程中担任的只是指路的作用,看是要选择哪个视图和模型。2.2关键技术2.2.1 JDBC JDBC是为访问数据库而出现的一种JAVA技术,不同的数据库都有其对应的JDBC,不过他们的原理大都是一致的。它的作用就是为了让程序员更容易的去访问数据库和对数据进行增删改查的操作。它包含两部分:第一部分是提供给程序员使用的API,大部分API位于Java.sql包中,扩展的部分API位于Jav

5、ax.sql包中。程序员只要熟悉JDBC API,就可以编写程序访问数据库、操作数据库的记录,而且操作不同的数据库代码几乎相同。当然对于不同的数据库我们需要用的不同数据库驱动包来完成对数据库的连接。2.2.2 Jquery Jquery是对JavaScript的封装,它简化了JavaScript语法具有很好的平台兼容性,因此极大的方便了开发人员操作DOM、更多的制作网页动画的函数、使用Ajax无刷新技术使得网页制作更加的简单功能效果更加的强大。 Jquery具有的优势:轻量级、强大的选择器、出色的DOM操作的封装、可靠的事件处理机制、完善的Ajax、出色的浏览器兼容性、开源等。12.2.3 H

6、TML5 video标签 在html5中,增加了video标签用于在网页中嵌入视频播放功能。通过标签定义在HTML中嵌入的视频的相关属性设置。video 元素支持三种视频格式如图2.2.3: 图2.2.3视频格式2 标签的属性如图2.2.3(1) 图2.2.3(1)标签属性22.3开发环境及平台2.3.1 Eclipse Eclipse是一种免费的开发平台(IDE),现在主要用于开发JAVA 程序的工具,当然它也可以用于开发其他语言程序如C/C+、COBOL等,Eclipse之所以可以做到这样归功于它是开源的并具有众多的插件。Eclipse已经超越了开发环境的概念,它的目标是做成一个通用的平台

7、,让尽量多的软件做为插件集成在上面,成为未来的集成的桌面环境。3Eclipse 环境搭建:JDK的安装在系统变量中添加以下环境变量: a. JAVA_HOME值为:安装JDK的目录; b.CLASSPATH值为:.;%JAVA_HOME%lib; c.PATH值为:%JAVA_HOME%bin;%JAVA_HOME%jrebin2.3.2 MyEclipseMyEclipse是EclipseIDE的扩展,利用它我们能极大的提高工作效率在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面。它通常是用于开发JAVA的工作平台是一种企业级应用。MyEclipse是功能丰富的JavaEE集成

8、开发环境,包括了完备的编码,调试、测试和发布功能,完整支持HTML,Struts,jsp,css,JavaScript,Spring,SQL,Hibernate。4 在本课题设计中,将使用MyEclipse进行开发。2.3.3 Tomcat服务器Web服务器也有很多种,在本系统中只是简单的Web应用,所以选用Tomcat作为服务平台。它占用资源少,稳定且免费并且是独立运行的,有很好的扩展性和安全性,但它对J2EE的EJB程序无法运行,如果你要运行J2EE的EJB程序可使用Weblogic,WebSphere服务器。只要你把做好的项目布置到上面,就能够通过浏览器访问你想要访问的地址网页。2.3.

9、4 SQL Server 2005 SQL Server是一个数据库平台,它的为了解决大数据量时容易出现的数据混乱,容易丢失,不会管理,不好操作等开发的一种软件,它的出现极大的方便了那些需要对大数据量的进行操作的用户。SQL Server 2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。5本系统采用SQL Server 2005版本用于数据的存储、处理和保护数据。3在线视频点播系统分析与设计3.1需求分析3.1.1系统目标 开发出一个功能实用,优秀的网站,为用户提供各种视频信息及交互平台,使用户能够在快节奏的生活环

10、境中,在有条件的情况下能够随时的观看自己想要观看的视频,并且也能够成为视频的提供者,分享自己觉得好的视频。3.1.2可行性分析 随着人们生活节奏的加快,快餐式的文化越来越突出,人们不能够随心的安排自己的时间观看自己想要的视频信息,在线视频点播系统,为人们提供了自主选择的功能,让用户能够随时的观看自己想要的视频,在线视频点播系统,也越来越受人们的喜爱。它符合现在人们快餐式的生活方式。随着视频网站的不断完善,功能的不断增加,用户数也不断的增加,所以在线视频点播系统将有很好的发展空间。3.2在线视频点播系统概要设计系统的概要设计主要对系统的总体功能设计,模块的划分,系统数据库如何设计进行研究。3.2

11、.1模块划分本系统主要分为两部分:1. 视频点播前端(用户)前端主要功能:1.用户选择视频。2.观看视频。3.上传视频。2. 视频点播后端(管理员)后端主要功能:1.用户管理。2.视频管理。3.2.2 功能模块的设计 用户权限和管理员权限,具体包括:1.用户:注册,登录,修改个人资料,上传视频,播放,评论,评分,搜索2.管理员:登录,用户管理,视频管理。3.2.3系统功能层次模块图 图3.2.3系统功能层次模块图3.3用户模块描述3.3.1用户注册模块设计校验功能有:1.验证必填项是否有输入。2.输入的格式是否正确。3.两次密码是否一样,用户名是否可用。注册成功的条件:1.所有必填项都有填。2

12、.相应信息的输入格式符合条件。3.两次密码一样。3.3.2用户登录模块校验功能有:1.验证必填项是否有输入。登录成功的条件:1.用户名已经注册。2.用户名和密码正确。3.输入的验证码与随机产生的验证码一致。 图3.3.1用户注册模块流程图 图3.3.2用户登录模块流程图3.3.3个人中心校验功能有:1.验证必填项是否有输入。信息修改成功的条件:1.用户名无法修改。2. 相应信息的输入格式符合条件3. 所有必填项都有填。 3.3.4视频上传校验功能有:1.验证必填项是否有输入。2.输入的格式是否正确。视频上传成功的条件:1.视频的格式是.MP4 。2.图片格式是.Jpg。 3.视频的大小是否符合

13、上传的大小。 图3.3.3个人中心流程图 图3.3.4视频上传流程图3.3.5视频点播 用户登录完后,跳转到首页,可进行视频的选择和点播。用户选择视频后如果视频需要积分,则用户需扣掉相应的积分,方能观看,如果积分不够则不能观看,用户需要购买积分后再点播方能观看。 图3.3.5视频点播流程图3.3.6评论模块 用户在观看视频的时候可以对该视频进行评论,发表对视频的看法,评论时用户必须是登录状态,评论字数不能大于500字符。图3.3.6视频评论流程图3.3.7视频评分模块 用户可对当前观看的视频进行评分,用户评分是需是登录状态,否则无法进行评分,最高分5分,最低分0分。3.3.8搜索模块 该模块的

14、功能:1.快速搜索定位影片。3.3.9找回密码模块 该模块的作用是:帮助用户找回忘记的密码。 图3.3.7视频评分流程图 图3.3.8搜索模块流程图 图3.3.9找回密码模块流程图3.4管理员功能模块描述3.4.1登录模块校验功能有:1.验证必填项是否有输入。登录成功的条件:1.用户名和密码正确。2.输入的验证码与随机产生的验证码一致。图3.4.1管理员登录模块流程图3.4.2用户管理模块 用户管理模块作用:1.对用户进行删除。2.查看用户的评论。3.查看用户上传的视频。 图3.4.2用户管理模块流程图3.4.3视频管理模块 该模块管理员看查看审核通过的视频和未审核的视频并且管理员需对用户上传

15、的视频进行审核,看是否有不良的信息,审核通过后方能发布视频,前端才能观看到该视频,否则管理员不给以发布且删除视频。4数据库设计4.1系统逻辑结构设计用户表:用户编号,用户名,密码,昵称,性别,手机号,用户积分,头像地址,真实姓名,身份证,邮箱,密保问题,密保答案,状态,权限,备注视频表:视频编号,用户编号,板块编号,视频标题,昵称,视频地址,视频封面,视频简介,视频积分,上传时间,播放次数,评分,视频状态,备注评论表:评论编号,视频编号,用户编号,评论内容,昵称,评论时间播放列表:播放编号,视频编号,用户编号,播放时间板块表:板块编号,板块名,所属主题,备注4.2表设计4.2.1表名的解释Us

16、ers用户表Video视频表Comment评论表Playlist播放列表Board板块表4.2.2用户表解析4.2.3视频表解析4.2.4评论表解析4.3.5播放列表解析4.2.6板块表解析5界面设计5.1前台界面设计5.1.1主界面设计5.1.2前台登录界面设计5.1.3个人中心界面设计5.1.4用户注册界面设计5.1.5视频上传界面设计5.1.6视频播放界面设计5.1.7视频评论界面设计5.2后台界面设计5.2.1登录界面设计5.2.2管理员界面设计6关键代码6.1视频上传代码public class VideoUploadingServlet extends HttpServlet pr

17、ivate static final long serialVersionUID = 1L;private ServletConfig config;public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(utf-8);response.setCharacterEncoding(utf-8);response.setContentType(text/html);Prin

18、tWriter out = response.getWriter();HttpSession session = request.getSession();User user = (User) session.getAttribute(user);int vScore = 0;java.util.Date date = new java.util.Date();SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd);String path = this.getServletContext().getRealPath();/

19、得到path=D:apache-tomcat-6.0.29webappsVideoOnlinepath = path + upload/; / 生成文件夹File f = new File(path);f.mkdirs(); / 生成文件夹uploadString relativePath = upload/; / 没有文件名的相对路径,上传时用SmartUpload su = new SmartUpload();su.initialize(getServletConfig(), request, response);try su.upload();/ 加载上传的文件 catch (Excep

20、tion e1) out.println(alert(你传的视频太大了,重新上传!);location.replace(./uploadVideo.jsp);try String vCover = , vURL = ;String vTitle = su.getRequest().getParameter(vTitle);String vPresentation = su.getRequest().getParameter(vPresentation);String bTheme = su.getRequest().getParameter(bTheme);String bName = su.

21、getRequest().getParameter(bName);String txtvScore = su.getRequest().getParameter(vScore);if (txtvScore != null & !txtvScore.equals() try vScore = Integer.parseInt(txtvScore); catch (Exception e) out.println(alert(只允许输入整数,系统将进行int强转);try vScore = (int) Double.parseDouble(txtvScore); catch (Exception

22、e1) out.println(alert(Sorry!转换失败,请正确输入!);location.replace(./uploadVideo.jsp);return;if (vScore 0) out.println(alert(Sorry!请输入一个大于零的整数!);location.replace(./uploadVideo.jsp);return;String SQL = select * from Board where bTheme= + bTheme+ and bName= + bName + ;List listbID = BoardDao.selectBoardBySQL(S

23、QL);if (listbID.size() = 0) out.println(alert(未填写模块主题!);location.replace(./uploadVideo.jsp); return;int bID = listbID.get(0).getbID();for (int i = 0; i su.getFiles().getCount(); i+) / 循环输出加载文件com.jspsmart.upload.File file = su.getFiles().getFile(i);if (file.getFieldName().equals(vURL) / 判断文件是哪个文本框传过

24、来的if (!file.getFileExt().equals(mp4) / 判断文件格式out.println(alert(只允许添加mp4格式的视频!);location.replace(./uploadVideo.jsp);return;String ext = file.getFileExt();/ 获取文件格式 String saveVurlUrl = ;/ 保存地址 Stringfilename=String.valueOf(Calendar.getInstance().getTimeInMillis();/ 获取当前毫秒数saveVurlUrl = relativePath +

25、filename + bID + . + ext; / 保存路径String sql = select * from Video where vURL=upload/+ saveVurlUrl + ;/ System.out.println(sql= + sql);List list = VideoDao.selectVideoBySQL(sql);/ System.out.println(list= + list.size();if (list.size() 0) out.println(alert(您上传的视频已存在,请重新上传!);location.replace(./uploadVid

26、eo.jsp);return;/ System.out.println(saveVurlUrl=+saveVurlUrl);file.saveAs(saveVurlUrl, su.SAVE_VIRTUAL); / 文件另存为vURL = saveVurlUrl;/ 有文件名的相对路径,播放时用,要保存到VIDEO表中的VURL字段 else if (file.getFieldName().equals(vCover) if (!file.getFileExt().equals(jpg) out.println(alert(只允许添加jpg格式的图片!);location.replace(./u

27、ploadVideo.jsp);return;String ext = file.getFileExt();/ 获取文件格式String savevCoverUrl = ;/ 保存地址Stringfilename=String.valueOf(Calendar.getInstance().getTimeInMillis();/ 获取当前毫秒数savevCoverUrl = relativePath + filename + bID + . + ext; / 保存路径 file.saveAs(savevCoverUrl, su.SAVE_VIRTUAL); / 图片另存为vCover = sav

28、evCoverUrl;/ 有文件名的相对路径,播放时用,要保存到VIDEO表中的VURL字段 System.out.println(vScore= + vScore);Video video = new Video(user.getuID(), bID, vTitle, user.getNickname(), vURL, vCover, vPresentation, vScore, Date.valueOf(dateFormat.format(date), 0, 0, 1, null);if (VideoDao.addVideo(video) out.println(alert(视频上传成功!

29、!);location.replace(./index.jsp); else out.println(alert(视频上传失败!!);location.replace(./uploadVideo.jsp); catch (SmartUploadException e) e.printStackTrace();public final ServletConfig getServletConfig() return config;public final void init(ServletConfig servletconfig) config = servletconfig;6.2视频点播代码p

30、ublic class VideoVODServlet extends HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(utf-8); response.setCharacterEncoding(utf-8);response.setContentType(text/html);PrintWriter out = response.get

31、Writer();String uID= request.getParameter(uID).trim();String vID= request.getParameter(vID).trim();String vScore= request.getParameter(vScore).trim();Video video= VideoDao.selectVideoByID(Integer.parseInt(vID); if(!uID.equals()&uID!=null&!vScore.equals()&vScore!=null&!vID.equals()&vID!=null) User us

32、er=UserDao.selectUserByID(Integer.parseInt(uID); if(user=null) out.print(非法用户); return; if(Integer.parseInt(uID)=video.getuID() out.print(您是视频上传者,可以免费观看!); return; int uscore= user.getuScore();String sql=select * from Playlist where vID=+Integer.parseInt(vID)+ and uID=+Integer.parseInt(uID); List li

33、st= PlaylistDao.selectPlaylistBySQL(sql); if( list.size()0) video.setpCount(video.getpCount()+1); VideoDao.updateVideo(video);Playlist playlist=new Playlist(Integer.parseInt(vID), Integer.parseInt(uID),Date.valueOf(new SimpleDateFormat(yyyy-MM-dd).format(new java.util.Date(); PlaylistDao.addPlaylist

34、(playlist); out.print(您播放过此影片,可免费观看!); return; if(uscore=Integer.parseInt(vScore) user.setuScore(uscore-Integer.parseInt(vScore);/扣除观看视频用户积分 UserDao.updateUser(user); /添加视频观看历史记录Playlist playlist=new Playlist(Integer.parseInt(vID), Integer.parseInt(uID),Date.valueOf(new SimpleDateFormat(yyyy-MM-dd).

35、format(new java.util.Date();/给视频上传者加积分(只加视频积分的一半,另一半给网站管理员) User videoUser=UserDao.selectUserByID(video.getuID();int videoUserScore= (int)(Integer.parseInt(vScore)/2);/视频上传者获得的积分int videoAdminScore=Integer.parseInt(vScore)-videoUserScore;/网站管理员获得的积分 videoUser.setuScore(videoUser.getuScore()+videoUse

36、rScore); UserDao.updateUser(videoUser); /给网站管理员加积分 List adminUserList=UserDao.selectUserBySQL(select * from Users where permission=2); if(adminUserList.size()0) for (User u:adminUserList) u.setuScore(u.getuScore()+videoAdminScore);UserDao.updateUser(u); if(PlaylistDao.addPlaylist(playlist) video.set

37、pCount(video.getpCount()+1); VideoDao.updateVideo(video); out.print(积分已经扣除,视频可以观看!); return; elseout.print(积分不足,请充值后观看该影片。); else out.print(出错啦,请登入后在观看视频。);【 abstract 】 with the rapid development of economy and science and technology, peoples living standards also improved rapidly, is accompanied by

38、 are also exert a subtle influence on changing the way of life, peoples life rhythm is speeding up, more and more time spent on work and human, and relatively your entertainment time less and less. For this kind of change, quietly and online video on demand system, and quickly be accepted and loved.

39、This topic mainly adopts the design language is Java, the design of the online video on demand system ultimately achieve including user module, the video file upload, register, login, and other functions, and the administrator module, the video review, release, user management, etc.【 key words 】 video on demand. Java; HTML; SQL server 2005.结语随着IT技术的发展,将来将有更加完善的技术,让随着节奏加快的人们能够用到更加强大的系统,让人们的生活体验不会随着节奏的加快而降低,反之IT技术将让人们体验更加的好,带给人们将是更加丰富多彩的生活。参考文献 1单东林,张晓菲,魏然. 锋利的jQueryM. 北京:人民邮电出版社,2009,3-4.2HTML 5 视频 w3schoolS3陈刚. Eclipse从入门到精通M.北京:清华大学出版社,2007.4hibernate详解李岩的博客S5百度百科S-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com