综合案例_基于SSH框架的教学资源库系统设计与实现_第1页
综合案例_基于SSH框架的教学资源库系统设计与实现_第2页
综合案例_基于SSH框架的教学资源库系统设计与实现_第3页
综合案例_基于SSH框架的教学资源库系统设计与实现_第4页
综合案例_基于SSH框架的教学资源库系统设计与实现_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、软件开发与项目管理课程案例基于SSH框架的教学资源库系统设计与实现一、项目简介1.1 项目背景随着网络信息时代的到来,使用网络进行办公学习已经成为了主流趋势,在此背景下,常州信息职业技术学院建设了智慧校园项目,其中的教学资源库管理系统作为网络学习平台的主要组成部分,是教学资源数字化建设的重点。传统的人工资源管理往往是使用U盘、移动硬盘的移动存储介质,共享资源时限制条件比较多,效率低下,资料不准确、保密性差,繁杂等诸多缺点。随着信息化的软硬件设备的成熟,建设一个符合常州信息职业技术学院特点的教学资源库管理系统已经成为了一个迫切的需要。而快捷、科学的教学资源库管理系统,可以为学校网络学习平台提供安

2、全高效的资源存储管理。为使用者提供方便快捷的存取功能。从而提高教学资源利用率,促进教学资源更好的为教学系统服务。使用信息化教学资源和现代信息技术作为教学的有力支持,具有其他教学手段无法比拟的优势,充当着更多的教与学的中介和角色,对于培养学生的信息素养、实践能力和创新能力起着至关重要的作用。教学资源管理可以实出资源共享的特点,对资源的充分利用,对资源的进一步开发,不断促进教学改革,提高教学质量,资源管理系统更显得尤为重要。一个成功的资源管理系统,在于提高学校教学的质量,增强学校的综合竞争能力。随着信息技术的发展和国内信息技术应用水平的提高,在工作过程中,传统的工作方式和审批模式己经难以满足新的需

3、求,规范化的信息资源管理成为必然趋势。1.2项目功能教学资源库管理系统是为学校的各类数字教学资源提供有效的管理整合,满足学生与教师对教学资源的获取与阅读,它已经越来越广泛的应用到各大学校,并随着不断的完善发挥着越来越重要的作用。研究教学资源的特点及其在课堂教学,课外教学的有效应用,研究教学资源在学校教学过程当中的信息能力的发展,探索并构建在网络环境下教学资源的共享模式,形成较为有效的教学模式。而本人的课题研究内容主要是在资源管理模块和用户管理模块,如下详述: 资源的录入:此部分包括所有种类的数字资源上传管理。 资源的查询:此部分包括资源信息在前台和后台的各种条件查询。 资源操作管理:此部分包括

4、资源的删除、修改、禁用管理。 资源预览管理:此部分包括文档类的格式转换、包括视频类资源在线预览管理。 用户信息管理:此部分包括用户个人信息的基础操作管理。 审核管理:此部分包括用户注册信息以及资源的审核管理。二、开发技术主要介绍了教学资源库管理系统在开发过程中运用到的相关开发技术,主要有Struts2技术,Spring技术,Hibernate技术,JQuery技术、Ajax技术、SWFUpload技术、FlashPaper技术及SSH框架设计。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台

5、的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java ServletAPI、JSP(Java Server Pages)以及XML技术的全面支持。2.1 JQuery 随着WEB2.0的到来,JQuery已经变成了目前最流行的Javascript框架。它作为一个轻量级的js库 ,是一个可以兼容多浏览器的javascript库,核心理念就是write less,do m

6、ore(写得更少,做得更多)。JQuery是免费并且开源的,使用MIT许可协议,JQuery的语法设计使得开发更加便捷,他具有许多优秀的功能:时间处理、制作动画效果、操作文档对象、选择DOM元素、使用AJAX等。JQuery提供了API让开发者编写插件,这也使得其变得更加强大。JQuery另一个比较大的优势是文档说明很全,各种应用也说明详细,同时还有许多成熟的扩展插件可供选择。JQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。2.2 AJAX AJAX即“Asynchronous Javascript An

7、d XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax 使用的核心是 JavaScript 对象 XmlHttpRequest。该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest 使用户可以使用 JavaScript 向服务器提出请求并处理响应,而不阻塞用户。AJAX 并不是一种新的编程语言,而仅仅是一种新的技术,它可以创建更好、更快且交互性更强的 web 应用程序。AJAX 使用 JavaScript 在 web 浏览器与 web 服务器之间来发送和接收数据。通过在幕后

8、与 web 服务器交换数据,而无需刷新重载整个 web 页面,AJAX 技术可以使网页更迅速地响应。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX 可使因特网应用程序更小、更快,更友好。AJAX 应用程序独立于浏览器和平台。通过 AJAX,web 应用程序无需重载网页,就可以发送并取回数据。完成这项工作,需要通过向服务器发送 HTTP 请求(在幕后),并通过当服务器返回数据时使用 JavaScript 仅仅修改网页的某部分。图2-1 AJAX工作原理2.3 SWFUpload SWFUpload是一个文

9、件上传插件,它由Vinterwebb.se开发,通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统<input type="file" />标签的文件上传模式。以及良好的用户使用体验。SWFUpload具有特性有:文件浏览对话框中可以选择多个文件同时上传多个文件、类似AJAX的无刷新上传、可以显示上传进度、良好的浏览器兼容性、兼容其他JavaScript库 (例如:jQuery, Prototype等)、支持Flash 8和Flash 9等特点。SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设

10、计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的在文件上传过程中更新页面内容来营造各种动态效果。2.4 FlashPaper FlashPaper 是Macromedia推出的一款电子文档类工具,通过使用本程序,你可以将需要的文档通过简单的设置转换为SWF格式的Flash文件,原文档的排版样式和字体显示不会受到影响,这样做的好处是不论对方的平台和语言版本是什么,都可以自由的观看你所制作的电子文档动画,并可以进行自由的放大,缩小和打印,翻页等操作,对文档的传播非常有好处,而且由于F

11、lash文件的在各大浏览器中的普及性和强大的可调节性。FlashPaper的工作原理就是用FlashPaper虚拟打印机将可打印文档转换为SWF或PDF文档。FlashPaper允许我们将任何类型的可打印文档转换为SWF或PDF文档,可以通过各种平台来查看生成的FlashPaper文档,包括文档的格式、文档中的图像、字体、特殊符号、源文档的颜色,而不必理会这个文档原来是由哪个平台、哪个应用程序创建的。例如,我们可以在Windows XP中创建一个Excel电子表格,然后使用FlashPaper将其转换为SWF文件,再将这个SWF文件传给一个Macintosh用户。FlashPaper所生成的S

12、WF文件与Macromedia Flash所生成的SWF文件格式是相同的。FlashPaper SWF文件通常比其它格式的文档要小得多,我们可以使用任何支持Flash的浏览器查看它们,或者可以直接使用Macromedia的Flash Player来查看。还可以将FlashPaper SWF文件嵌入到一个网页中,这样就能够使得许多用户通过网格查看原来不容易查看的一些文件类型,如Microsoft Project、Microsoft Visio、QuarkXPress、AutoCAD文件。当用户打开这样的网页时,FlashPaper SWF文件能够立即打开,用户不必离开网页就能查看文档内容。2.5

13、 SSH框架 SSH 是指Struts + Spring + Hibernate的一个集成框架,是当今Web开发中比较的流行的一种开源框架。SSH框架系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,原来帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务的跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基

14、本的DAO(Data Access Object)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理Struts和hibernate。系统的基本业务流程是:在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后struts根据配置文件(Struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Mo

15、del)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据交互,处理DAO组件请求的数据,并返回处理结果。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。SSH架构设计图如图2-2所示:图2-2 SSH框架架构图由SSH框架构建的系统工作流

16、程:(1)通过JSP页面负责传送请求(Request)和接收响应(Response),将Struts2视图层产生的请求提交给控制层,控制层根据配置文件决定使用哪些拦截器、Action类。(2)请求经过一系列拦截器,根据不同的请求级别拦截器做出不同的处理。(3)调用Struts2的Action,Spring容器通过配置文件中Bean 的ID自动装配Action。(4)Spring容器定位Action并提供业务模型(Model)组件及数据处理(DAO)组件对应的业务逻辑,以及事务处理、缓冲池等容器组件来提升系统性能并保证数据的完整性。(5)业务逻辑层把对应的业务处理请求转发给DAO层。(6)DAO

17、层将业务逻辑层的数据封装完成后,通过持久层的Hibernate框架映射的POJO对象与数据进行交互。应用SSH架构设计可以充分发挥它们的优势,实现了多层系统开发的低偶合,让视图、控制器与模型彻底分离不仅减少了重复开发工作量,有利于团队成员并行工作,缩短开发时间,降低开发成本,让项目设计变得更合理,运行更为稳定。三、需求分析主要详述了教学资源库管理系统的需求设计,系统业务的流程,资源系统的结构框架,对其中模块的功能分析及非功能需求说明。3.1系统业务概述教学资源库管理系统主要包括:院系与资源库分类管理、用户管理、资源管理、门户管理、权限管理、资源统计与日志管理。本人负责的是用户管理与资源管理模块

18、。这两个模块是系统的核心模块之一,其主要功能有:资源的添加(包括资源文件上传)、删除、修改、查询(包括多条件查询)、在线预览资源(包括文档类型转换)、审核。用户的增加、删除、修改、查询、审核。3.2 业务流程教学资源库的用户要求必须由系统管理员分配子管理员,从而实现对资源目录的权限进行层层梯度管理。管理员用户生成后对下级目录进行子管理员用户权限分配,以此类推,将资源节点的资源管理进行细化,互不干扰。管理员用户上传资源文件后,将资源通过文件服务器上传至指定的文件服务器。应用程序每天在指定时间对文件服务器上的文档文件定时扫描,转换为可及时预览的文件,提高用户使用体验。前台用户查看资源时将可预览的文

19、档资源进行展示、供使用者学习/下载。3.2.1 管理员业务流程管理员在网站的后台上进行登录,登录成功后,对后台的资源模块,用户模块,信息审核模块进行相关操作。图3-1 管理员业务流程图3.2.2普通用户业务流程普通用户直接在前台界面进行对专业资源的查看,浏览,下载资源等操作。图3-2 用户业务流程图3.3系统结构功能此系统主要由6大模块组成:院系与资源库分类管理、用户管理、资源管理、门户管理、权限管理、资源统计与日志管理。系统结构功能结构图如图3-3所示:图3-3 系统功能结构图3.4功能分析本系统应能够方便的实现资源信息的录入、更新、修改和查询等功能,高效地完成资源信息的上传共享,下面针对本

20、人所做模块进行模块功能分析:3.4.1资源管理模块功能分析资源管理模块主要是进行资源的管理(展示资源信息、添加、修改、删除、条件查询资源),查看资源时,文档类资源格式转换为可在线预览的Flash格式。管理员角色有:系统管理员、学院管理员、专业管理员、资源管理员。其中专业管理员以上级别的可审核管理当前权限下的所有资源,而资源管理只能上传并维护当前权限节点下的资源,无审核资源权限。未通过的资源及设置禁用状态的资源无法再前台显示。管理员用例图如下图3-4所示。图3-4 系统管理用例图功能描述:资源管理中后台以表格形式展示资源信息,可以添加、修改、删除资源。添加资源时,系统可自行根据上传资源的节点生成

21、具有指定规则的唯一资源编码。上传文件后,根据文件属性自动填充表单信息,可二次修改。在添加资源信息时,需要输入如下信息如表3-1所示。表3-1资源信息属性名称设定值限制备注资源标题输入资源标题,默认文件名不能为空前台显示内容资源类别选择下拉菜单资源类别列表中某项,该资源类别列表为资源类别中添加过的内容只能从下拉列表中选择资源编码根据选择的资源类别自动生成不能自行输入、修改便于资源整理引用资源简介该资源的简介信息资源关键字由于方便用户进行检索空格或“,”隔开3.4.2用户管理模块功能分析用户管理模块主要是对使用系统的用户进行基础管理,包括添加、修改、删除用户。给用户赋值权限等。本人负责的用户管理模

22、块主要是对使用系统的用户进行基础管理,权限部分不计算在内。管理员用例图如下图3-5所示。图3-5 用户管理用例图功能描述:用户管理中,每一级别的管理员可对赋予当前权限下的用户低于本权限的权限设置。例:系统管理员可以添加任意学院用户并赋予其二级学院管理员角色,同时可以分配该用户可以对哪些学院拥有操作权限。在添加用户信息时,需要输入如下信息如表3-2所示。表3-2资源信息属性名称设定值限制备注用户身份“教师用户”与“学生用户”单选、必选姓名用户输入姓名不为空部门选择下拉院系列表中某项,该院系列表为院系管理中添加过的内容不能自行输入、修改邮箱邮箱格式校验账号教师工号/学生学号不为空密码不为空是否为管

23、理员单选框,默认否可不勾选,若勾选将进入权限配置选项3.5非功能需求3.5.1性能需求分析(1) 响应速度较快,在短时间内计算或查询出用户所需的数据。(2) 有正确可行性效率,尽可能避免错误的出现。并在出错后给出错误提示,进行补救措施。(3) 在XP系统或win7上稳定运行3.5.2安全需求分析(1) 系统采用B/S模型,客户端与服务端数据源分离,保证了数据的物理独立性。(2)采取的用户授权权限机制,控制用户权限,保证数据的安全性。四、系统设计主要介绍教学资源库管理系统的整体设计并详述系统的资源管理模块和用户管理模块的架构设计,对应的数据库表的设计,多表之间的联系,以及相对的模块详细设计分析。

24、4.1 总体设计系统整体功能架构图:图4-1 系统整体框架图本人负责的是资源管理模块与用户管理基础操作模块:其中资源管理模块与用户管理模块主要实现了:(1) 资源的录入功能(2) 资源的修改功能(3) 资源的删除功能(4) 资源的检索功能(5) 资源的(定时)转换预览功能(6) 用户的录入(7) 用户的删除(8) 用户的修改(9) 用户的查询功能4.2 系统架构设计本系统应用SSH框架技术将系统分为三个层次:视图层、控制层和模型层。分层结构将用户界面、业务逻辑和数据进行了分离,实现了系统内部松耦合,以灵活、快速地响应业务需求的变化该系统主要使用SSH架构,如图4-2所示。图4-2 系统整体框架

25、图系统各层的功能实现说明:(1) 视图层视图层是系统与用户的交互层,是用户可以看得到的唯一接口界面,负责提交用户请求和数据,并将后台的响应结果返回给客户层。同时提供客户提交信息的JavaScript校验功能。(2) 业务层业务逻辑层是负责项目中业务功能实现流程的管理工作。是由业务逻辑对象组成,是系统的核心,处于中心的位置。业务逻辑层实现并提供了系统所需要的业务逻辑方法。本系统由Spring实现业务逻辑层,并负责整体框架的整合。(3) 持久层数据访问层主要是一些实现具体业务功能的类,hibernate为业务逻辑层数据存取的方法,数据库数据的增加、删除、修改、查询的HQL语句。以SQL开发的工作量

26、和数据库移植性上的让步,为系统设计提供了更大的自由空间。4.3 数据库设计4.3.1 设计简介数据库设计主要是用Power Designer进行设计的,数据库的设计直接影响整个项目的实施维护,因此数据库的设计在系统设计中尤为重要。l 系统数据库所采用的数据库管理系统:ORACLE。l 所设计的数据库的中、英文名称:前缀:zyk,后缀:_XXXX_XXX。根据以上教学资源库管理系统的资源管理及用户管理需求分析,展示了关于资源管理及用户管理需要的相关数据库物理模型关系图。4.3.2 数据库E-R模型图4-3 数据库ER图4.3.3数据表物理视图根据资源库管理系统的需求分析,功能分析,以及上述的实体

27、联系图,得出相关数据表的结构,其中本人负责的模块涉及的表有:l 资源类别表:用于资源目录节点的设置。如表4-1所示:表4-1 资源类别表字段名数据类型长度允许空主键外键备注DEPT_IDNUMBERNY唯一标识DEPT_NAMEVARCHAR220N部门名称DEPT_PIDNUMBERN关联主键DEPT_LEVELNUMBER是部门层级DM_NUMBERVARCHAR220N部门代码l 用户信息表:用于用户注册个人信息,修改密码,如表4-2所示:表4-2用户信息表字段名数据类型长度允许空主键外键备注USERIDNUMBERNY唯一标识USERNAMEVARCHAR220N用户名称USERNUM

28、BERVARCHAR220N用户账号USERPWVARCHAR220N用户密码USERSEXCHAR1是用户性别USERSTATUSCHAR1N用户状态USEREMAILVARCHAR220是用户邮箱DEPT_IDNUMBERNY用户部门IDUSERTYPEVARCHAR220是用户身份其中:USERSEX中:0表示女; 1表示男。USERSTATUS中:0表示审核中; 1表示启用中;2表示禁用中。l 角色信息表:用于关联角色与用户的关联表,如表4-3所示:表4-3角色信息表字段名数据类型长度允许空主键外键备注ROLEIDNUMBERNY唯一标识ROLENAMEVARCHAR220NY角色名称

29、ROLEINFOVARCHAR250角色描述l 用户角色表:用于控制用户相关权限的信息表,如表4-4所示:表4-4用户角色表字段名数据类型长度允许空主键外键备注USER_ROLE_IDNUMBERNY唯一标识USERIDNUMBERNY用户编号ROLEIDNUMBERNY角色编号DEPT_IDNUMBERNY部门编号l 资源信息表:用于操作资源信息的数据表,如表4-5所示:表4-5资源信息表字段名数据类型长度允许空主键外键备注RESOURCEIDNUMBERNY唯一标识RESOURCE_DMVARCHAR220N资源编码USERIDNUMBERNY上传者编号RESOURCE_INFOVARCH

30、AR2200资源简介RESOURCE_TITLEVARCHAR232N资源标题RESOURCE_KEYVARCHAR250资源关键字RESOURCE_STATUCHARN资源状态RESOURCE_TIMEVARCHAR220上传时间DEPTIDNUMBERNY上传资源类别HITCOUNTNUMBER点击率RESOURCE_URLVARCHAR2100N文件地址4.3详细设计下面以资源管理模块为例,管理员登陆后台后,可在已拥有权限的资源分类目录下录入、删除、修改、查询资源、预览资源。其中使用AJAX+STRUTS完成页面请求无需页面重载,优化用户体验。下面将通过程序描述,功能,流程逻辑,核心算法

31、来阐述其中主要功能的详细设计。资源管理的功能结构图如下:图4-4 资源管理功能结构图资源管理的功能阐述如下: 发布资源:进入资源管理,点击“发布资源”按钮,进行有效的表单验证并上传资源文件,完成资源发布。 删除资源:进入资源管理,选中要删除的资源记录,点击“删除”按钮,提示确认是否删除框。 修改资源:进入资源管理,选中要修改的资源记录,点击“编辑”,修改数据,进行表单验证,修改发送并保存。 查询资源:l 后台:进入资源管理,选择要查询的资源关键字,点击“查询”。l 前台:点击搜索,进入资源检索页面,根据需要选择相应的条件进行资源检索。 资源定时转换:根据设置的时间,启动定时转换文件程序,对为转

32、换的文件进行转换。 查看资源:点击文档类资源或视频类资源进入资源预览界面进行查看学习。 下载资源:点击不可预览类型资源或资源预览时点击下载按钮,弹出提示确认下载按钮。4.3.1添加资源(1)功能概述 管理员登录后台后进入资源管理界面,点击添加按钮可以进行添加资源。其中资源编码在选择资源类别后自动生成,用户无法进行编辑。(2)界面设计 添加资源如图4-5所示图4-5 资源管理功能结构图(3)输入输出项输入:包括选择下拉资源类别项,输入标题、简介、关键字、选择上传的资源文件。输出:提示添加失败或添加成功。(4)流程逻辑:添加资源的时序图如下所示:图4-6添加资源时序图对以上录入资源信息的时序图的描

33、述:用户进入资源管理页面Resource.jsp,点击“发布资源”按钮,弹出发布资源对话框,输入资源信息,并上传文件。点击“发布按钮”后通过AJAX提交给ResourceAction相应的method,在Action的类中进行数据录入操作,通过beans.xml注入的ResourceService实例找到业务逻辑层处理资源信息添加的操作方法,在service实现类中,找到注入的ResourceDao实例及其添加方法,通过sessionFactory与后台数据交互,判断资源信息是否成功添加到数据库中,如果成功通过AJAX向前台返回添加成功的消息,失败则返回相应的失败信息。(5)核心算法添加资源的

34、算法图如图4-7所示:图4-7添加资源流程图4.3.2删除资源(1)功能概述管理员登录后台后进入资源管理界面,选中某条资源记录,点击删除可以进行删除资源。(2)界面设计删除资源如图4-8所示。图4-8删除资源界面(3)输入输出项输入:删除选定记录。输出:a.确认删除提示,如图4-9所示:图4-9确认删除提示b.删除成功提示,如图4-10所示:图4-10删除成功提示c.删除失败提示。d.刷新数据表单。(4)流程逻辑:删除资源的时序图如下所示:图4-11删除资源时序图对以上删除资源信息的时序图的描述:用户进入资源管理页面Resource.jsp,选择某资源记录,点击删除,通过AJAX请求ACTIO

35、N中的删除资源方法,通过beans.xml注入的ResourceService实例找到业务逻辑层处理资源信息删除的操作方法,在service实现类中,找到注入的ResourceDao实例及其添加方法,通过sessionFactory与后台数据交互将记录删除并返回相应的成功/失败信息。(5)核心算法删除资源的算法流程图如下所示:图4-12删除资源流程图4.3.3修改资源(1)功能概述管理员登录后台后进入资源管理界面,选中某资源后点击修改资源弹出修改资源对话框。其中资源编码不能自行修改,改变资源类别后,将生成新的资源编码,选择上传文件后,新文件将覆盖原文件,不上传默认仍为原文件。(2)界面设计修改

36、资源如图4-13所示图4-13修改资源(3)输入输出项输入:包括选择下拉资源类别项,修改标题、简介、关键字、选择上传的资源文件。输出:修改成功提示,刷新数据表单。(4)流程逻辑:修改资源的时序图如下所示:图4-14修改资源时序图对以上修改资源信息的时序图的描述:用户进入资源管理页面Resource.jsp,选中某资源记录点击“修改资源”按钮,弹出修改资源对话框,输入修改资源信息,或重新上传文件,通过AJAX请求ACTION中的修改资源方法,通过beans.xml注入的ResourceService实例找到业务逻辑层处理资源信息修改的操作方法,在service实现类中,找到注入的Resource

37、Dao实例及其添加方法,通过sessionFactory与后台数据交互将记录删除并返回相应的成功/失败信息。(5)核心算法修改资源的算法流程图如图4-15所示:图4-15修改资源流程图4.3.4查询资源(1)功能概述用户访问前台页面时可在主页搜索框输入字段进行模糊搜索,或直接点击搜索按钮进入搜索页面进行搜索。管理员登录后台后进入资源管理界面,点击添加按钮可以进行添加资源。(2)界面设计前台查询资源如图4-16所示图4-16前台搜索界面后台查询资源如图4-17所示图4-17后台搜索界面(3)输入输出项输入:下拉选择选项,输入要检索的字段,点击搜索按钮。输出:相应的搜索结果列表。(4)流程逻辑:搜

38、索资源时序图如下所示:图4-18搜索功能时序图对以上搜索资源信息的时序图的描述:用户在相关的搜索页面输入要搜索的字段,点击“搜索”按钮,通过AJAX请求ACTION中的对应的搜索资源方法,在service实现类中,找到注入的ResourceDao实例及其搜索方法,通过sessionFactory与后台数据交互并将记录遍历出来并返回相应的结果(JSON)或失败信息。(5)核心算法以前台搜索资源为例的算法图如图4-19所示:图4-19前台搜索流程图五、系统实现主要从开发平台,资源的程序结构图,审核的界面展示,模块的核心代码,系统测试,这几方面进行详细的说明。5.1程序结构5.1.1程序结构图系统结

39、构程序图如图5-1所示。图5-1程序结构图5.1.2程序结构说明zyk为项目的名称,也是项目的根目录。WebRoot为Web目录,包括图片目录images和JSP文件。WEB-INF目录、lib目录及web.xml依然为固定的目录和文件。Src目录包含如下几个部分:1包:l Action包(com.iflytek.zyk.action);l Service包 (com.iflytek.zyk.service);l DAO包(com.iflytek.zyk.dao);l Util包(com.iflytek.zyk.util);l Test包(com.iflytek.zyk.test);l Mod

40、el包(com.iflytek.zyk.entity);l Service和DAO包中有接口包和实现包,其实DAO包中有写好的基础操作(增删改查等)实现类BaseDao.java/BaseDaoImpl.java。2 配置文件:l applicationContext-beans.xmll applicationContext-common.xmll struts-zyk.xmll struts.xmll Cperties5.2 资源基础管理模块实现5.2.1功能实现分析资源库资源管理模块主要是对资源进行增删改查操作。涉及的相关编码对象如下表5-1所示:表5-1 资源管理模块

41、代码说明表序号文件名说明1Resource.jsp资源管理页面2GeneralResource.java资源实体类3GeneralResourceDao.java资源基础管理接口4GeneralResourceDaoImpl.java资源基础管理实现类5GeneralResourceService.java资源基础管理业务逻辑接口6GeneralResourceServiceImpl.java资源基础管理业务逻辑实现类7GeneralResourceAction.java资源基础管理控制层8FtpUtils.java文件上传工具类9resourcebase.css控制页面样式5.2.2界面设计

42、资源管理界面设计如图5-2所示。图5-2资源管理界面5.2.3代码实现(1) Model实体对象Model实体对象,是数据的存储载体,下面是资源实体类源代码。public class GeneralResource implements Serializableprivate static final long serialVersionUID = 3542708596346376561L;private Integer reId;/唯一标识private String reDm;/资源编码private User user;/上传者private String reInfo;/资源简介信息p

43、rivate String reTittle;/资源标题private String reKey;/资源关键字private String reStatus;/资源状态private Dept dept;/资源归类private String reTime;/上传时间private String reType;/资源类型private Integer hitCount;/点击数private String relName;/文件名private String relUrl;/资源服务器地址/此处省略Get与Set方法(2) Dao接口Dao是事务性对象,Dao执行的操作是对象创建,更新,或删除

44、数据,下面是Dao接口源代码。public interface GeneralResourceDao extends BaseDao / 添加资源public void add(GeneralResource resource);/ 修改资源信息public void update(GeneralResource resource);/ 删除资源public void remove(int id);/ 查询所有资源public List<GeneralResource> findAllResource();/ 此处省略其他若干方法(3) DaoImpl实现DaoImpl是实现了Da

45、o接口的一个实现类,下面是DaoImpl实现类的源代码。/使用annotation 支持的注解org.springframework.stereotype.Repository("generalResourceDao")public class GeneralResourceDaoImpl extends BaseDaoImpl implementsGeneralResourceDao / 添加资源Overridepublic void add(GeneralResource resource) /使用基础类包继承来的方法,使用事务管理,其他相同地方不再作解释getCurr

46、entSession().save(resource);/清除缓存getCurrentSession().flush();/ 删除资源Overridepublic void remove(int id) /删除前获取对象GeneralResource resource = (GeneralResource) getCurrentSession().get(GeneralResource.class, id);getCurrentSession().delete(resource);getCurrentSession().flush();/ 修改资源Overridepublic void upd

47、ate(GeneralResource resource) getCurrentSession().update(resource);getCurrentSession().flush();/ 查询所有资源Overridepublic List<GeneralResource> findAllResource() String hql = "from GeneralResource r"/查询所有资源return getCurrentSession().createQuery(hql).list();/ 此处省略其他若干方法(4) Service接口Servic

48、e是业务逻辑层的一个接口,下面是Service接口的源代码。public interface GeneralResourceService / 添加资源public String add(GeneralResource resource);/ 删除资源public String remove(int id);/ 修改资源信息public void update(GeneralResource resource);/ 查询所有资源public List<GeneralResource> findAllResource();/ 此处省略其他若干方法 (5) ServiceImpl实现S

49、erviceImpl是实现业务逻辑层Service接口,下面是Service实现类的源代码。/使用spring注解Service("generalResourceService")public class GeneralResourceServiceImpl implements GeneralResourceService /使用spring注解Resourceprivate GeneralResourceDao generalResourceDao;Resourceprivate DeptService deptService;/添加资源Overridepublic S

50、tring add(GeneralResource resource) GeneralResource gr;if(generalResourceDao.isExist(resource.getReDm()/占位资源数据未被删除,执行更新操作gr=generalResourceDao.getOneGenRes(resource.getReId();gr.setReDm(resource.getReDm();else/被删除,重新执行添加操作gr=new GeneralResource();generalResourceDao.addgr(gr);/根据目录节点自动生成新的资源编码gr.setR

51、eDm(deptService.getDM(resource.getDept().getId();try /获取当前上传者User user=SessionUtil.getUser();/资源信息设置gr.setUser(user);gr.setReTittle(resource.getReTittle();gr.setReInfo(resource.getReInfo();gr.setReKey(resource.getReKey();Date dt=new Date();SimpleDateFormat matter1=new SimpleDateFormat("yyyy-MM-

52、dd");/设置资源上传日期gr.setReTime(matter1.format(dt);/判断上传者是否为管理员,若是:资源默认通过审核;不是:资源设置为未审核状态。if(SessionUtil.getUser().getUserRoles().iterator().next().getRole().getRoleId()=4)gr.setReStatus("0");elsegr.setReStatus("1");/设置资源上传目录节点Dept dept = new Dept();dept = deptService.findById(re

53、source.getDept().getId();gr.setDept(dept);/以下开始向FTP文件服务器添加附件/预留多文件上传接口String newFileName="默认新名称"String fileLoad=""+deptService.findParentName(dept.getId(); File f=new File(ServletActionContext.getServletContext().getRealPath("/")+"/upload/"+SessionUtil.getUser().getUserNumber(); File files = f.listFiles(); if(f.exists()for (File file : files) System.out.println(file.getName()+"正在载入FTP服务器中。");try newFileName = FtpUtils.toUploadFTP(file.getName(),

温馨提示

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

最新文档

评论

0/150

提交评论