校教学资源共享平台前端设计与实现毕业论文目录摘要 (2)Abstract (3)1 绪论 (6)1.1平台设计来源及研究意义 (6)1.2模块设计的容 (6)1.3平台设计要达到的目标 (7)2 模块分析 (8)2.1模块需求分析 (8)2.2开发技术路线 (9)2.2.1平台技术概述 (9)2.2.2前端技术概述 (9)2.2.3后端技术概述 (12)2.3可行性分析 (13)3 模块概要设计 (15)3.1模块功能总体设计 (15)3.2模块流程分析 (15)3.2.1整体的流程分析 (15)3.2.2各用户流程分析 (17)3.3数据库概要设计 (20)4 模块详细设计 (21)4.1模块功能详细设计 (21)4.1.1公告模块 (21)WORD版本.校内教学资源共享平台——前端设计与实现4.1.2课程资源模块 (21)4.1.3留言模块 (21)4.1.4站信模块 (21)4.2系统主要界面详细设计 (21)4.3数据库详细设计 (27)5 编码调试与测试分析 (35)5.1设计实现中的问题 (35)5.2调试测试中的问题 (35)心得与体会 (38)参考文献 (39)谢辞 (40)41绪论1.1平台设计来源及研究意义设计资源共享平台的时候,是以学习资源(电子书类、音频类、视频类、软件类)的共享为切入点。
满足学生之间的资源共享的需求。
学生们每个人手里都会有一些资源,但是如果能降这些资源进行整合,并且共享起来,那么所有同学都将受益匪浅,本系统就是本着为同学提供高效的共享平台而开发的。
系统以课程为单位,进行围绕课程的资源共享。
同学们在寻找自己需要的资源的时候都是以课程为单位的,这样又能满足老师的教学需求。
老师可以在自己的课程下面添加资源,同时也可以发布一些课程的公告。
还可以进行点对点的站信,可以说将资源的共享进行了细化。
而且同学也可以进行资源的共享。
但是我们已经有了一个BB平台,那你们做的那个资源共享平台还有意义吗?是很有意义。
BB平台这种开放式的环境及对行业标准的适应性与协同性,为的是能够帮助教育机构实现互联互动的教学环境。
而在我们学校师生对BB平台的使用情况大家都有目共睹,大部分的学生经常使用BB平台看一些老师发布的公告、老师的个人信息、课程的简介信息、下载一些相关课程的学习资料、将完成的作业上传到数字收发箱,而实际情况是很多学生都不是积极主动的使用BB平台;大部分的老师经常使用BB平台发布一些公告,上传课程的简介信息和要求以及课程相关的学习资料、查阅学生上传的作业,而可能是学校网络环境的问题,老师反映说有时上传的资料会出现问题。
BB系统的确强大,但是好多功能其实已经几乎都不在使用了,而且和本校开发的其他平台整合的时候会比较困难,所以我们进行了这个平台的开发,值做资源的共享,而将这个功能的可用性做好。
而对以后进一步扩充其他功能留有接口方便给整合其他的平台。
1.2模块设计的容凡是注册成功的用户登录到该平台后,都能够根据自己所属用户组的权限对平台上的系统公告、课程公告、课程资源、站信、留言、用户、用户组等容进行合法的操作(增、删、改、查)。
.专业.专注.校内教学资源共享平台——前端设计与实现1.3平台设计要达到的目标我们的目标就是希望通过大家的努力,能够让我们的这个资源共享平台成为一个以课程为中心,围绕课程的一个共享平台。
在学校中实用和适用的平台,主要是面向全校的老师和学生,使其能够在自身受益的同时,还可以通过相互的交流使更多人受益。
但是我们能够清楚地认识到要想达到这个目标会遇到很多困难,不论是在开发、测试过程中,以及后期的性能优化、管理与维护阶段,肯定会遇到很多技术上难题。
42模块分析2.1模块需求分析目前平台默认有四个用户组,分别为:超级管理员组、管理员组、老师组、学生组。
凡是注册成功的用户登录到该平台后,都能够根据自己所属用户组的权限对平台上的系统公告、课程公告、课程资源、站信、留言、用户、用户组等容进行合法的操作(增、删、改、查)。
目前平台默认有39个操作,分别为:添加一个行为、删除一个行为、更改用户组行为、添加用户组、删除用户组、更换用户分组、更改用户信息、添加新用户到普通用户、删除用户、添加系统公告、更改系统公告、删除系统公告、添加任意班级公告、更改任意班级公告、删除任意班级公告、添加所属班级公告、更改所属班级公告、删除所属班级公告、添加留言、更改留言信息、删除所属留言、删除所有课程资源留言、编辑所有资源专辑、删除所有资源专辑、编辑自己资源专辑、删除资源专辑、发送站信、删除所有站信、删除自己所收站信、上传资源无限制、上传资源2G限制、上传资源1G限制、上传资源500M限制、上传资源200M限制、上传资源100M限制、上传资源50M限制、上传资源30M限制、上传资源20M限制、上传资源10M限制。
这些操作将会合理的分配给各个用户组,当用户进行相应的操作之前,都会对该用户所属的用户组的权限进行检测,确认其所拥有的权限并进行相关的操作,一下为各用户组的所持有的相关权限。
超级管理员:查看、发布、修改、删除系统公告;查看、发布、修改、删除课程公告;查看、上传、下载、删除课程资源,上传资源大小限制;查看、发送、删除站信;查看、发送、删除留言;查看、创建、修改、删除用户信息;查看、创建、修改、删除用户组信息,添加、修改、分配用户权限。
(如图3.3所示)管理员:查看、发布、修改、删除系统公告;查看、发布、修改、删除课程公告;查看、上传、下载、删除课程资源,上传资源大小限制;查看、发送、删除站信;查看、发送、删除留言;查看、修改个人基本信息,查看相关师生基本信息;查看所属用户组的基本信息。
老师:查看系统公告;查看课程公告;查看、上传、下载课程资源;查看、发送、删除站信;查看、发送、删除留言;查看、修改个人基本信息,查看相关学生基本信息;查看所属用户组的基本信息。
.专业.专注.校内教学资源共享平台——前端设计与实现学生:查看系统公告;查看课程公告;查看、上传、下载课程资源;查看、发送、删除站信;查看、发送、删除留言;查看、修改个人基本信息;查看所属用户组的基本信息。
2.2开发技术路线2.2.1平台技术概述后端整合Struts2、Spring2、Hibernate3框架开发多层架构的JavaEE应用。
前端开发脚本方面使用JQuery框架为基础开发库,布局应用CSS。
数据库开发使用Oracle11g。
文件上传方面的通信协议主要通过HTTP、Flex置协议、自定义协议三种方式实现。
服务器环境为Linux(SUSE)操作系统。
开发环境为Window操作系统。
服务器使用Tomcat服务器。
开发工具:MyEclipse。
版本管理工具:CVS。
2.2.2前端技术概述前端页面基于HTML4.0.1,CSS1.0的960栅格化进行设计,页面脚本架构基于jQuery进行开发。
其中大量是用同源下的Ajax进行交互来增强用户体验。
文件上传部分有部分功能基于Flex进行开发。
其中大量使用了前端优化策略。
对Ajax 请求进行相应的安全优化。
(1) 栅格系统的设计原理及应用4.专业.专注. 图2.1 栅格计算示意图在网页设计中,我们把宽度为“W”的页面分割成n个网格单元“a”,每个单元与单元之间的间隙设为“i”,此时我们把“a+i”定义“A”。
他们之间的关系如下:W =(a×n)+(n-1)i由于a+i=A,可得:(A×n) - i = W如以上原理,在本站的设计中,采用了类似如下960栅格设计:校内教学资源共享平台——前端设计与实现图2.2 栅格化明细示意图(2) 前端优化方案描述:①减少HTTP请求,使用expires头②采用gzip压缩组件③将样式表放在顶部④将脚本放在底部⑤禁止使用CSS表达式,简化css选择符⑥尽量使用外部的JavaScript和CSS⑦精简JavaScript代码⑧尽量不适用重定向⑨对JavaScript进行并行加载,对JavaScript使用预加载⑩进行图片的优化,合理的合并图层4(3) JQuery是一个前端的框架,其是由javascript编写而成的,其中提供了很多的置方法方便前端脚本的编写。
而且之中置了很多前端方面的性能优化,是的响应的减少了由于导入脚本库增加页面首次载入的下载量导致的页面的渲染速度问题。
Flex是一种基于浏览器插件的技术,也就是说浏览器必须安装了adobe的flashplayer 插件才能播放。
也正因如此,它是夸平台的,不会因为浏览器对页面的解析不同而显示出不同的效果。
本系统使用Flex主要是因为HTTP不能满足上传中大型文件的需求,如果用户有一个需求是这样的:想上传一个较大的文件,但是又不想安装客户端,而传统的HTTP方式又不可以实现,这是就要用到Flex上传。
Flex方式可以上传300M一下的文件。
2.2.3后端技术概述Struts2的简单处理流程如下:(1)浏览器发送请求;(2)中心处理器根据struts .xml配置文件查找对应的处理请求的 Action类;(3)Struts2的拦截器链自动对请求应用通用功能,例如:WorkFlow、Validation等功能;(4)如果struts .xml配置文件中配置了method参数,则调用 method参数对应的Action类中的method方法,否则调用通用的execute方法来处理用户请求;(5)将Action类中的对应方法返回的结果响应给浏览器。
Spring的核心是IOC(控制反转)和AOP(面向切面编程),IOC是用来管理所有的业务对象,当你需要一个对象的时候它会帮你自动的通过Java的反射机制来创建,而不是通过以前传统的new的方式;AOP是允许在调用的方法前后附加另外的行为,可以为某一类对象进行监督和控制,从而达到对一个模块扩充的功能,这些都是通过配置类达到的。
Spring目的:就是让对象与对象(模块与模块)之间的关系不通过代码来关联,都是通过配置类说明进行管理(Spring根据这些配置,部通过Java的反射机制动态的组装对象),Spring的哲学是在不影响Java 对象的设计的情况下将Java对象加入到框架中。
Hibernate是一个开源的对象关系映射框架,它对JDBC进行了轻量级的对象封装,对 Java类和关系数据库进行mapping,使得Java程序员可以随心所欲的.专业.专注.校内教学资源共享平台——前端设计与实现使用面向对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,Hibernate还可以在应用EJB的JavaEE架构中取代CMP,完成数据持久化的重任。