毕业论文范文——在线视频学习系统_第1页
毕业论文范文——在线视频学习系统_第2页
毕业论文范文——在线视频学习系统_第3页
毕业论文范文——在线视频学习系统_第4页
毕业论文范文——在线视频学习系统_第5页
免费预览已结束,剩余38页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Southwest university of science and technology本科毕业设计(论文)在线视频学习系统学院名称计算机科学与技术学院专业名称 学生姓名学号指导教师 年 月 西南科技大学本科生毕业论文 V在线视频学习系统摘要:在线视频教育网站目前同质化严重,视频的分类不完善,视频管理不科学,学员的考核与统计没有科学的方法,网站权限简单等诸多问题。系统在涪城区远程教育系统的基础上,为方便用户更好的了解自身的学习情况,提供了更加安全可靠的系统环境、增加更人性化的交互体验。采用J2EE开发技术实现在线视频网站的建设。使用AXURE RP工具设计系统原始模型;采用Photoshop完成设计系统的UI界面设计;使用springmvc+hibernate技术实现MVC控制,完成视频播放、视频控制、视频统计、视频发布、新闻展示、用户管理、后台管理、数据备份、搜索等功能;提出了一种新的API路径权限控制方法,减少了系统开发成本;采用MYSQL数据库进行数据的存储和统筹。通过Javascript、Ajax、Jquery技术完成页面数据绑定。测试证明,系统实现了设计任务的功能、性能需求。在“互联网+”的时代背景下,系统能有效发挥远程教育在基层党员中的价值。关键词:在线视频,远程教育,J2EE,springMVC,hibernate;Online Video Education SystemsAbstract:Online video education site is currently homogeneity, video classification imperfect, video management unscientific, student assessment and statistics is no scientific way, site permissions simple and many other issues. System based on distance education system Fucheng District on, to facilitate the users to better understand their own learning, and to provide a more secure and reliable system environment, increased more humane interactive experience.Developed using J2EE technology proposed construction of online video sites. AXURE RP tools to design systems using the original model; use Photoshop to complete the design of the system UI interface design; use springmvc + hibernate technology MVC control, complete video playback, video control, video statistics, video releases, news shows, user management, management background, data backup, search and other functions; propose a new path API access control methods to reduce the cost of system development; with MYSQL database storage and integrated data. By Javascript, Ajax, Jquery technology to complete page data binding. Tests proved the system to achieve the functionality, performance requirements, design tasks. Under the Internet + in the background, the system can effectively play the value of distance education at the grassroots party members in.Key words: Online video, Distance Education,Education,J2EE,springMVC,hibernate;目 录第一章 绪论11.1 概述11.2 国内外研究现状21.3 问题的定义与约束2第二章 系统关键技术的选择与比较32.1 视频播放架构设计与选择32.2 MVC架构选择42.3 数据库系统和数据绑定方式的选择42.4 数据库访问技术选择52.5 本章小结6第三章 系统的分析与设计73.1 系统设计73.1.1 系统物理架构73.1.2 软件逻辑架构83.1.3 系统安全设计93.1.4 数据模型设计93.2 数据库设计103.3 系统功能分析与设计123.4 用户界面设计与实现133.4.1 主界面143.4.2 注册登陆界面143.4.3 视频播放界面163.4.4 后台管理界面163.4.5 学习记录图173.5 本章小结17第四章 系统关键技术的设计与实现184.1 hibernate访问数据库184.1.1 XML文件配置184.1.2 数据库操作实现194.2 权限管理模块的设计204.2.1 描述204.2.2 传统的基于java语言的角色访问控制方案204.2.3 api路径角色访问控制214.2.4 访问控制检验224.3 视频播放实时在线检测234.3.1 描述234.3.2 设计思想234.3.3 具体的实现方式244.4 本章小结27第五章 应用与测试275.1 软件测试的必要性和重要性275.2 测试环境285.3 测试目的285.4 测试结果及分析295.4.1功能测试295.4.2性能测试305.4.3测试结果分析305.5本章小结30第六章 系统部署316.1软件部署316.2网络安全技术部署326.2.1 基于VLAN的端口隔离326.2.2 端口安全326.2.3 防IP伪装33 6.3系统备份33第七章 总结与展望347.1 全文总结347.2 研究展望35致 谢36参考文献37西南科技大学本科生毕业论文第一章 绪论1.1 概述互联网的兴起,远程教育发展变得迅速起来,数据显示,国内在线教育用户人数在2013年达6720万人,预计到2017年将达到12032.6万人。2014年在线教育市场总额1200亿人民币,市场年度复合增长率高达19%。淘宝、网易、新浪、腾讯等一大批互联网企业在其中投入了大量的精力,也存在一些明显的问题: 1.交互方式简单大部分在线教育网站内容资源投入很多,但教学互动重视不足,其中大部分只有留言区一个交互功能。这种简单的交互方式不利于提高用户的学习吸收率。 2.学习记录管理单调大部分在线教育网站的对学习记录的管理做得很简单,只单纯的记录用户的学习记录,没有做横向比较,也没有复合比较。对于学习记录的利用率很低,用户学习完过后没有深刻理解自己的学习轨道。 3.用户在线检测教育网站很少做用户在线检测,网站可以确定视频在播放,但是没办法确定视频是否一直有人在学习。导致的后果是没有办法准确统计用户的学习情况。其带来更严重的影响是大部分网站的学习统计是有错误的,不是真实的。 4.视频质量的把控不够由于每个网站对于视频的审核方式不同,对于视频质量的检测方式也不同,但是大部分网站采取由机器录入,人工审核的方式。这种方式可能会在大规模视频录入时夹杂“有问题”的视频。针对以上问题,本文提出在线视频学习系统的建设方案。按照以视频学习、学习记录、在线检测为核心来设计本系统。1.2 国内外研究现状学术界在在线视频学习领域有两个最为突出的研究方向,一是如何在技术上进一步加强在线视频的高清性和流畅性,即如何不断开发技术以便使同样带宽获取更高清的视频资源;二是如何不断提高实现在线视频学习的可信性。当前学术界的最新热点逐渐转移至利用移动终端、人脑逻辑、实时视频等方案实现高可信度认证。 比如网易公司的在线课堂,就利用学习者的摄像头来实时认证。中国大部分的驾校考试学习系统也是通过在线摄像完成实名认证的。北美科技数字线上调查报告发现,在线视频教育已成为美国成人教育的主要方式,67%的美国成人教育者习惯在网上利用视频学习。Courser上线四个月,就形成了100万量级的用户数。1.3 问题的定义与约束本设计课题是“在线视频学习系统”,设计的整体目标是实现一个符合软件工程结构的视频学习系统。1、设计目标约束: (1) 系统实现功能:视频资源功能、学习记录功能、学用成果功能、创优争先功能、后台管理功能; (2) 系统建模:使用AXURER RP 构建系统的软件原型; (3) 核心视频播放设计:使用最新的HTML5技术,采用MPEG 4标准视频格式; (4) 数据库系统设计:设计一个高解耦的可扩展的MYSQL数据库,使用程序来约定数据一致性。 2、性能目标约束: (1) 多用户,多线程,稳定稳定访问; (2) 数据库保证正确性和完整性; (3) 权限安全,数据安全。实现这些目标的关键技术问题主要包括: (1) WEB服务器设计:使用TOMCAT8搭建一个多线程非阻塞应用服务器,对服务器开启GZIP数据压缩、使用Spring+redis搭建全局应用缓存、开启hibernate cache持久层缓存。 (2) 数据库设计:使用最新的InnoDB MySql数据库表类型,搭建一个支持高效事务和索性的数据库系统。在关键字段上使用唯一性索引,配合程序约束一致性,使数据在效率和安全稳定达到一个近似完美的节点。 (3) 系统软件结构设计:从软件复用的角度分析,整个系统采用整体设计,层层继承、分布实现的原则。 (4) 数据库信息访问:采用Hibernate框架技术对数据库中的信息进行管理。 第二章 系统关键技术的选择与比较2.1 视频播放架构设计与选择在线视频播放在浏览器兼容和播放效率都有很高的要求,目前架构设计与实现主要有两种选择: (1)FLASH视频:FLASH视频需要在用户浏览器安装一个FLASH PLAYER来支持视频的解析和播放,网页加载flash插件过后将视频源,主要是flv格式,加载到用户浏览器缓存区,解析视频图层,以帧的方式,在时间线上播放。只要帧率达到16的话,人眼就会观看的流畅的“视频”;(2)HTML5视频:HTML5视频W3C和WHATWG合作产生的第五代html标准,HTML5新增了重要的video和audio元素,使得浏览器在无需外部插件的情况下就可以解析视频。1、FLASH视频的设计具有如下优点: (1) 普及度高,基本上每台电脑都会安装FLASH解析器; (2) 拥有丰富的资源和解决方案、社区活跃。 (3) FLASH是嵌入式的虚拟机,不存在兼容性问题2、HTML5视频的设计具有如下的优点: (1) 无需插件,轻巧灵活; (2) HTML5应用范围广泛: 原生的视频音频API,2D绘图Canvas,3DWebGL,即时通信WebSockets,Local Storage等都具有出色的发挥; (3) 系统直接嵌入到浏览器的安全沙箱中,不会访问本地文件系统,保障了系统的安全性; (4) 兼容全平台的移动设备;本文在设计系统架构的时候,根据用户的需求,要求播放快速,使用流畅,兼容性广,且必须保证数据的安全性。因此,本系统在设计时选用了HTML5视频播放架构设计。2.2 MVC架构选择目前基于JAVA的MVC架构主要有两种:(1) S2SH:使用APACHE组织下的struts2+spring+hibernate,这是传统的且经典的MVC架构。(2) SH:使用现在社区最活跃的spring mvc + hibernate,这是一站式开发的方式,由Springmvc 搭建前端交流模型。Spring ioc 负责松耦合连接显示层和持久层。Spring date负责维护hibernate的数据访问。1、S2SH的特点: (1) 需要使用大量的配置文件,但是对于单个请求的控制可以做到细粒度到JAVABEAN的属性; (2) 严格的MVC传输流程。2、SH的特点: (1) 配置文件小巧,使用全注解; (2) 支持REST ful接口。 (3) 效率更高,springmvc使用了对servlet的封装、单例模式。本系统在设计时,考虑到开发效率、执行效率、后期维护等情况,采用了SH的MVC架构。2.3 数据库系统和数据绑定方式的选择(1) 数据库系统作为BS系统的数据核心,在性能,安全,易用性,可维护性上要求很高,流行的数据存储有以下几种:SqlServer:Microsoft公司的一个关系数据库管理系统,具有可视化操作界面、功能强大等优点,适用于中、大型数据量的存储;MySql:MySql是多用户、多线程的SQL数据库服务器,具有快速、健壮、易用的优点,适用于中、小型数据量的存储;Oracle:Oracle数据库是美国Oracle公司提供的以分布式数据库为核心的一组软件产品,它具有数据存储量大、数据存储可靠性高等特点,适用于大数据量的存储;SqlServer、MySql、Oracle等。它们都具有一些公共的特性:性能出众、扩展性好、都支持集群搭建、读写分离等。对于三个数据库而言,都有适用于范围。本系统是一个数据总量较小,关系表简单的系统。作者决定采用mysql5.6。(2) 数据绑定方式:数据绑定是将后端处理后的数据返回给前端显示的一种方式,现在主要有标签绑定、Json绑定: A 标签绑定:jsp系统可以使用多种标签绑定方式,比较流行的有spring标签、el表达式、JSTL标签、第三方模板; B Json绑定:json绑定变得越来越流行,它的工作流程是用户访问网页,Js动态查找rest api,获取数据过后,通过操作DOM修改网页数据完成数据绑定,这种方式的另一个好处是支持多平台共用一个接口,一套Service支持多种client;本系统在数据存储时,对于数据库的选择来说,要求数据存储量大、数据存储过程安全可靠。在前端开发的时候采用面向接口的开发模式,后端开发人员和前端开发人员可以尽可能的安全原型图独立的完成系统的编码,后期添加手机APP时可以兼容前期的API接口。只有json才能满足这样的开发要求。结合开源软件要求,最终综合考虑,选择MYSQL+JSON。2.4 数据库访问技术选择数据库访问技术是高级语言与数据库沟通的通道技术,直接关系到系统的性能、效率、稳定性。Java语言的主要方案有:(1) Jdbc:sun公司推出的标准数据库api,可以为多种关系数据库提供统一的访问接口。但是在方言处理,表和实体映射上面处理复杂。 (2) MyBatis:是由Clinton Begin发起开发的源代码项目,是一个基于java的持久化框架。它在设计和使用方面具有如下的优势: A、能够对10种以上的数据库进行操作,包括Orcale、MySql、DB2等; B、支持可配置的缓存; C、支持DataSource、Local Transaction Management和Global Transaction; D、简单的XML配置文档; E、支持Map、Collection、List和简单类型包装类的映射; F、支持复杂的对象映射; G、对象模型不需要修改; H、数据模型不需要修改。 (3) Hibernate:一个开源代码的ORM框架,是对JDBC的轻量级别对象封装,使开发人员能随个性化使用面向对象思想操纵数据库。其优点包括: A、实现了对象/关系数据库映射; B、具有透明持久化功能; C、具有强大的事务管理功能; D、很优秀的方言处理机制; E、有良好的缓存机制,能提供一级缓存和二级缓存; F、简洁的HQL编程。本系统的设计中,要求能够随机操作数据库,能够使用一套泛型api访问所有的数据表,综合考虑,采用Hibernate框架技术,就能方便的完成实体映射,泛型控制,有效地实现了对数据库的轻松访问。2.5 本章小结本章主要通过对实现在线视频学习系统的相关技术的分析与比较,说明选择这些技术对系统实现的意义。第三章 系统的分析与设计3.1 系统设计3.1.1 系统物理架构系统在设计的时候充分考虑系统面临的数据访问压力,同时兼顾了系统安全性,最后选择采用分布式的物理架构。图3-1 在线学习系统物理架构图图中的各个服务器设备的说明如下:负载均衡服务器:是进行负载分配的服务器。通过负载均衡服务器,将服务请求均衡分配到实际执行的服务中,从而保证整个系统的响应速度;WEB服务器:驻留于因特网上的计算机程序,可以向浏览器等Web客户端提供文档,只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应,也是整个架构里面直接负责处理用户请求的中心节点。静态资源服务器:静态资源服务器负责对静态的文件资源分发请求,例如图片、js、css等。内存数据库服务器:提供全局的系统缓存、登陆持久化、访问控制功能,此服务器属于整个系统在性能和安全的核心服务器。关系数据库服务器:此服务器负责处理和运行数据库系统,提供数据访问,数据存储,双机热备份,读写分离。文件服务器:文件服务器负责保存整个系统的其他文件,用户上传的视频,数据库备份文件,图片备份文件,以及其他重要文件。3.1.2 软件逻辑架构该系统设计主要是考虑到分布式的设计,软件逻辑架构图如图3-2,实现交互的过程如下:用户访问负载均衡服务器,如果命中到Nginx cache则返回缓存数据,没有命中则分配到负载较轻的TOMCAT服务器去请求资源,tomcat服务请求响应的静态资源和动态资源,优先命中缓存资源。没有查找到应用缓存则到数据库系统里查找响应的资源。将查询QUERY作为key存储到缓存中去。返回给用户。图3-2 软件逻辑结构图3.1.3 系统安全设计对于在线学习系统来说,安全性的要求是非常高的,保证安全是系统生存的前提。在本系统的设计中,保证系统安全的措施如下1艾瑞咨询.2015年中国在线语言教育行业研究报告.2015.2 朱信忠,赵建民.基于WEB交互式视频点播系统的设计与实现M.北京:机械工业出版社,2003.3 曹岩.网络宽带交互式视频点播系统的设计与实现M.计算机工程与应用.西安:机械工业出版社,2012.4 沈时军,李三立.基于P2P的视频点播系统的存储设计J.计算机应用.2011,(3).5 张天宇,许建礼.视频点播系统的设计和应用N.西安科技大学学报.2006,(4).6 张恒.校园视频点播系统研究J.电力系统通信.2002,(3).7 M.A.Sportack,F.C.Pappas,E.Rensing,et al.高性能网络技术教程M.北京:清华大学出版社,1998.8 王庆忠.JSP运行原理及其Windows下环境的实现M.黑龙江:中国科技信息出版社,2005.9 李国涛.SQL SERVER 2000数据库开发M.北京:机械工业出版社,2004.10 钟玉琢,李树青.多媒体计算机技术M.北京:清华大学出版社,1995.11 吴炜.多媒体通信技术M.西安:西安电子科技大学,2003.12 Lin Z, Wu J, Zhang Q, et al.Research on web applications using ajax new technologiesC/MultiMedia and Information Technology,2008.MMIT08. International Conference on. IEEE, 2008: 139-142.13 Ritchie P. The security risks of AJAX/web 2.0 applicationsJ. Network Security, 2007, 2007(3): 4-8.:(1) 所有数据开启开启应用层加密;(2) 采用Https协议,保证数据传输通道;(3) 严格的权限管理,基于角色的用户管理。对每个REST接口都检查是否具有访问权限;(4) 对每次请求都进行数据验证,防范SQL注入;(5) 对HTTP报文的头文件验证Referer域,只有可信的前域才能进入到下一步访问;(6) 独立的登陆系统,采用REDIS缓存用户的登陆权限,ip验证。对DDOS攻击设置黑名单。3.1.4 数据模型设计数据模型作为SERVICE与CLIENT进行信息交互的载体,在数据绑定中发挥着重要的意义。本系统中,浏览器客户端通过HTTP向服务器发送请求命令,SERVICE处理客户端发送的请求,并生成响应内容,请求和响应数据的结构包括:(1) HTTP header(2) Request General(3) Response Header(4) Response Body 响应模块的JSON整体结构见表3-1:表3-1 响应报文格式标记说明DATA响应数据的主体FLAG请求状态,是否成功LOGIN用户的登陆状态MSG请求的详细说明3.2 数据库设计数据库是信息管理系统的核心内容之一,也是系统设计的精髓所在。设计数据库时应该遵循一致性、完整性、安全性、可伸缩性、范式化原则。基于以上原则本系统的核心数据表如下:表3-2 用户信息表数据字段字段名称字段类型主键外键缺省值允许为空描述idInt主-否用户ID编号,自动递增usernamevarchar-是用户名passwordvarchar-null是用户密码createtimedatetime-null是用户创建时间updatetimedatetime-null是用户更新时间表3-3 新闻信息表数据字段字段名称字段类型主键外键缺省值允许为空描述idInt主-否用户ID编号,自动递增newstitlevarchar-是新闻标题newstexttext-null是新闻内容timedatetime-null是新闻发布时间click_timeInt-null是点击次数news_typevarchar-null是新闻类型zuozhevarchar-null是新闻作者datasourcevarchar-null是新闻来源表3-4 视频信息表数据字段字段名称字段类型主键外键缺省值允许为空描述idInt主-否视频ID编号,自动递增video_typevarchar-是视频类型video_urlvarchar-是视频地址create_timedatetime-null是用户创建时间add_useriddatetime-null是添加用户3.3 系统功能分析与设计本系统的软件开发模块主要可以分成两个,包括服务器和客户端,结构图见图3-3。图3-3 在线学习系统功能结构图其中,对每个系统功能模块的描述如下:登陆验证:负责登陆注册、登陆权限登陆功能。权限验证:负责系统之间相互访问的权限验证、包括用户的访问可信验证。数据处理:负责系统全局的数据接收,数据处理,数据分发,数据修改,数据存储,数据访问等全部的系统数据逻辑部分。视频模块:视频的录入,视频的审核,视频播放,视频时长统计,视频管理登陆所有跟视频相关的功能。学习记录:负责对系统中的个人和组织的学习记录分析出报表来。后台管理:负责系统的学用成果管理、添加站点、添加组织、成员审核、新闻管理功能。3.4 用户界面设计与实现用户界面的设计是整个在线学习系统的核心点之一,用户能够接触到首先就是页面。UI在整个系统里面尤为重要,它能够激发用户使用的热情。3.4.1 主界面主界面是用户进入系统时首先接触到界面,它的美观和设计合理会极大的影响到用户对整个系统的评价。在设计主界面的时候,作者遵循了以用户为中心的唯一设计原则,使用了白色+红色的设计风格,力求使网站的大方热情。主界面主要由今日头条、通知公告、热门视频、信息资源、学习动态、用户反馈、友情链接、学习标兵、专题介绍等模块构成,提供管理员登陆到后台的功能等功能。效果如图所示。图3-4在线视频学习系统主界面3.4.2 注册登陆界面注册登陆是用户决定加入网站所要进行的必要操作,在注册上,保持两个准则,第一收集系统必须的资料、第二不让用户重复输入。作者弃用很流行的表单提交方式,使用AJAX异步提交方式来完成注册,用户注册成功后跳转到主界面,注册失败后给予相应错误提示,方便用户修改。在登陆上也使用同样的异步登陆流程。为了使用户在登陆和注册之间相互能够方便切换,在两个页面上使用相互链接的方式优化用户体验。在本系统中,注册收集必要的用户名和密码,以及用户选择要注册到的站点。等待站点管理员审核通过后,用户就可以正常使用系统了。图3-5在线视频学习系统注册图3.4.3 视频播放界面视屏播放是在线学习系统的核心页面,这个界面的可操作性,功能关系系统的核心。页面采用1024的窄屏设计,使用THML5视频播放,页面上有在线答题,答题检测,视频笔记,留言评论等功能。 图3-6 在线视频学习系统视频播放图3.4.4 后台管理界面后台管理提供了对系统的数据完整性维护,数据的增加删除,审核等功能。后台管理包括业务信息管理、组织关系转接、视频教育、学用成果、信息资源管理等五个模块,视频发布模块的界面如图所示。管理员要发布视频时,要先选择发布到哪个栏目,同时要填写视频的标题、来源、内容,点击发布才能将视频发布出去。系统构件如图示图3-7。图3-7 在线视频学习系统后台管理图3.4.5 学习记录图学习记录要记录用户和用户所属组织的学习情况,列出当月,当季,当年的学习统计,参学人数,站点参学率、累计学习时间。同时使用Echat生成学习记录统计图。图3-8 在线视频学习系统学习统计图3.5 本章小结本章主要是对在线视频学习系统的技术架构进行分析与设计,分模块对系统的功能进行详细地说明和描述。第四章 系统关键技术的设计与实现4.1 hibernate访问数据库4.1.1 XML文件配置 采用hibernate技术访问数据库时,XML配置文件主要是用于对数据库中的信息进行描述,最终利用关系映射将信息存储到一个Map集合、List集合或者是包装类中。本系统中,访问数据库需要的XML配置文件主要有以下两个:(1) spring-common.xml文件,负责配置数据库的连接和相关数据库SQL配置文件导入。(2)Spring-date.xml文件,主要负责对hibernate本身进行配置:org.hibernate.dialect.MySQLDialectnonetruetrueentity4.1.2 数据库操作实现配置好XML文件后,则通过sessionFactory生成具体的操作注解DAO对象的事务管理器,事务管理在执行SERVICE创建,在执行结束的时候COMMIT请求,执行update或者回滚。具体的实现代码如下:通过上面的实现,就可以得到sessionFactory对象,然后调用sessionFactory类的操作数据库的方法:update()、save()、saveorupdate()、delete(),就可以实现对数据库的更新、添加、持久化、删除。4.2 权限管理模块的设计4.2.1 描述本系统采用RABC权限访问控制,经典的RABC实现具有配置复杂、效率低下、维护困难等缺点,为此作者提出了一种新的API路径权限控制实现方式,可以减少系统的开发成本,维护难度。该算法也可以抽象出一个权限控制框架,应用在其他BS系统里面。4.2.2 传统的基于java语言的角色访问控制方案比较流行的控制实现有spring 旗下的SpringSecurity、APACHE基金会下面的shiro、甲骨文官方的JAVA SE Security。SpringSecurity:Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,但是具有学习难度大,配置文件多,对权限管理都是硬编码等诸多缺点。Apache shiro :是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企业应用。其缺点是shiro没有缓存,需要每次去数据库或者配置文件中查找。学习难度大。JAVA SE Security:是一个Java以用户为中心的安全框架,作为Java以代码为中心的安全的补充。自Java运行环境(JRE)1.4起,JAAS就被集成到JRE,而之前是作为一个扩展库由Sun公司提供的。缺点是功能太弱,硬编码严重。4.2.3 api路径角色访问控制路径访问控制的核心是api路径,通过路径就可以做到颗粒度到按钮的权限管理。里面有两个核心设计:1、用户角色数据库表:用户角色表定义了用户的角色、等级、上下级关系。通过表结构可以很清楚的列出系统的用户的树状结构图。表4-1 用户角色表列名描述id表id,自增INT型userLevelName用户角色名,VARCHAR型userLevel用户角色等级,INT型managerUserLevelName当前用户角色的管理员角色名managerUserName当前用户角色的管理员的用户名info当前角色的详细说明用户登陆的时候,往缓存服务器里写入当前登陆用户的用户名、用户id、用户角色、用户角色等级、用户的直属上级列表。2、API路径设置:API路径设置是实现整个角色管理的关键点。路径由角色路径,命中路径组成。角色路径的关键代码/*/*角色路径的核心代码 */*/ControllerRequestMapping(/青义镇-桃花村)public class NewsController 上面的“/青义镇-桃花村”就是角色路径,表示的意思是此接口允许青义镇和桃花村本级和其直属上级角色访问此API.命中路径的代码如下:/*/*命中路径的代码结构 */*/RequestMapping(/auth/addComment)ResponseBodypublic RestResult addComment(Valid TNewsComment commentM,RequestParam(defaultValue = 0, required = false) Integer commentid,BindingResult bindingResult, HttpServletRequest request) 上面的“/auth/addComment”就是命中路径,表示的意思是访问此接口就可以命中这个方法。综合起来一个API的路径是这样子的。“/青义镇-桃花村/auth/addComment”。4.2.4 访问控制检验在过滤器里面,对每个API地址路径进行解析,例如“/青义镇-桃花村/auth/addComment”。再将当前登陆角色的直属上级列表与api需要的角色进行匹配。如果可以命中则通过验证。关键代码: /* * 以下路径开头的验证管理员身份 */if (path.startsWith(/manager/)|path.startsWith(/super_manager/) if (username = null) if (requestType = null)/普通请求 response.sendRedirect(loginUrl); else/异步请求 returnLoginJson(response); return ; filterChain.doFilter(request, response); return ; 4.2.5 权限控制全局流程API路径权限控制整体流程简单,可以划分为三个阶段、数据准备阶段、接口准备阶段、权限检查阶段。权限控制的全局流程如图 4-1图 4-1 权限控制流程4.3 视频播放实时在线检测4.3.1 描述用户点击播放视频后,系统为了追踪到到用户是否真实的在观看视频,需要采取一些检测措施。作者的思路是用户在点击播放视频的时候,生成一个随机时间,在随机时间触发答题事件来检测用户是否真实在线观看视频。4.3.2 设计思想检测用户是否在线的核心点是检测用户是否真的的学习视频,作者考虑了很多思路,在综合讨论的结论下确定了几大思路,第一是在视频播放的时长里加入一个随机时间,用户没有办法知道随机时间,在这个随机时间让用户回答具有逻辑思维的问题。如果用户可以回答正确,就证明用户还在在线观看。在视频播放结束时确定用户是观看结束了的。4.3.3 具体的实现方式具体的实现方式需要完成几个设计点,第一获取视频播放时长,时长由js来获取比较方便,设置触发事件,通过时间来触发。触发事件后获取题目,设置题目的存在的时长。在时长内答对题目即可获得观看时长记录。图4-2 视频播放控制图该图中的箭头详细地描述了整个视频播放实时在线的流程,从播放开始到生成随机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论