欢迎添加微信互相交流学习哦!

项目源码:https://gitee.com/oklongmm/biye2

摘 要
基于网络的教育资源共享,给广大师生提供了方便,满足了个性化学习的需求。本文利用 Struts 框架设计开发一个基于Web的网上教学资源共享管理系统。本系统使用My SQL Server管理系统的数据信息,采用Struts框架使系统更简化地遵循MVC设计模式,实现表示层、业务层和控制层相分离,提高了系统开发的效率,也为以后系统的维护和扩展带来方便。系统测试结果表明:系统通过身份验证,正确识别用户权限,进入不同显示页面。管理员可管理所有用户信息和用户上传的资源。普通用户可管理本人信息和本人上传的资源,并可搜索下载系统中的资源。游客可以浏览页面,搜索下载公有的资源。系统不仅提供丰富的学习资源,还有可以管理好各种资源和用户的关系。系统运用于校园网,满足多用户同时访问,更好的实现教育资源共享,具有一定是研究价值和应用前景。
关键字
Servlet;JSP; MVC; Struts;共享
Abstract
The sharing of teaching resources in Internet filled our need for personality. There is something about how to develop a realization of sharing management system for online teaching resources based on wed. The data of system is managed by My SQL Server. Because of using Struts architecture, it will be easy to display the view, he model, and the controller. Then, it will be not only increase in the sleep of developing but also can we manager and expend the system. The results show that, there are three kinds of members in the system, and the system will show different view for different kind of members. Managers can delete and modify the information of other members and all of the resources. The common users can modify the information of themselves and the resources which they has been uploaded yet. Besides, they can search for the resources which they want to, and then download the resources. Other members can look at the view of the system, and download some resources which are public. Our system not only can provide the rich of studying resources, but also can manage the relationship of each member. Many students might visit the system together if their pc can connect to the Internet .So it has a certain appliance value in the area of school teaching.
Keyword
Servlet;JSP; MVC; Struts;Sharing
目 录
TOC 1-2 引 言 1
1 概述 2
1.1 Servlet概述 2
1.2 JSP概述 2
1.3 MVC概述 2
1.4 Struts概述 3
1.5 系统开发的环境和工具 4
1.6 系统开发完成情况 5
2 需求分析 5
2.1 需求 5
2.2 分析 6
3 网上教学资源共享系统的设计 9
3.1 总体设计 9
3.2 功能设计 11
3.3 数据流图 11
3.4 数据库设计与实现 12
3.5 数据字典 15
4 系统实现 16
4.1 实现效果 16
4.2 用户表示层 18
4.3 数据持续层 24
4.4 业务逻辑层 27
4.5 控制处理层 28
5 测试检验 31
5.1 注册模块测试 31
5.2 管理员管理用户模块测试 31
5.3 用户上传资源模块测试 33
结 论 36
参考文献 37
致 谢 38
引 言
Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。我们的教学也有了很大得发展与改革。现代信息技术是网络教学的技术标志,而教学活动,对人才的培养则是网络教学的根本。网络教学的问题不仅仅是技术问题,其本质问题仍是教学问题,是培养人的问题。是现代信息技术条件或环境下培养人的问题。对这些带有根本性问题的把握,就必须以科学的思想为指导,在分析研究学生实际情况本着实事求是得精神,对网络教学做探索、借鉴、创新等工作。尤其要把创新放在主要地位。认真学习国外的经验,并要结合本学校、本课程、学生的实际,加以改造应用。坚持技术标准的统一与教学思想和风格的多样化相结合。而不是技术标准的多样化,教学思想和模式的单一化。要克服那种机械的、形而上学地看待网络教学的认识,把网络教学仅看成脱离课堂、学校、教师,一切依靠网络所进行的学习(教学)E—Learning”。其实,这是网络教学的一种方式,或是说网络教学应用的领域之一。E—Learning”作为课堂教学活动得有效补充,应该受到大家得重视。
网络教学在教学中所扮演得角色越来越明确:一方面,计算机网络为学习者提供学习资料、工具和创设学习情景,让他们操作、探索,为提高学习者的兴趣,调动他们的积极性和主动性,培养其创造能力营造了良好的信息化环境。另一方面,计算机网络有丰富的教学信息资源,它既可以做到在不割裂学科系统知识的情况下,以多媒体的方式表现知识和经验;又可以对学科的系统知识进行延伸性链接,对不同学科所涉及的同一对象给予多角度、多层面的反映。为学习者掌握系统知识提供了书本无法比拟的信息化环境。计算机网络既能提升学习者主体地位,提高其学习兴趣,培养其主动探索问题、解决问题的能力和技能;又能使他们学习和掌握系统的科学知识。既可以使学习者学习系统知识,又可以使他们在学习过程中学会学习。既调动学习者的主动性,又充分发挥了教师的主导作用。
1 概述
Java Web应用的核心技术是Java Server Page 和 Servlet。此外,开发一个完整的Java Web应用还涉及以下概念及技术:
 JavaBean组件
 EJB组件
 自定义JSP标签
 XML
 Web 服务器和应用服务器①
1.1 Servlet概述
接收用户由浏览器提交的业务请求,并把值对象化,访问业务逻辑层完成业务逻辑实体的业务处理;将业务逻辑实体的变化以值对象的方式通知并转向相应的JSP。如图1.1显示了Servlet容器响应用户请求的过程。
图1.1 Servlet工作过程图
1.2 JSP概述
JSP(Java Server Page)是由Sun公司在Java语言的基础上开发出来的一种动态网页制作技术。当JSP容器接受到Web用户的一个JSP请求时,对JSP文件进行语法分析并生成Java Servlet源文件,然后对其编译。擅长于流程控制和事务处理,而通过Servlet来生成动态网页很不直观:JSP由HTML代码和JSP标签构成,可以方便地编写动态网页。因此在实际应用中,采用Servlet来控制业务流程,而采用JSP来生成动态网页②。
1.3 MVC概述
MVC是Model-View-Controller的简称,即模型—试图—控制器。MVC是一种设计模式,它强制地把应用程序的输入、处理和输出分开。MVC把应用程序分成三个核心模块:模型、视图和控制器。
Sun公司先后制定了两种规范,称为JSP Model1和JSP Model2。在这里着重讲述Model ,JSP Model2用JSP技术实现视图功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能。JSP Model1和JSP Model2的本质区别在于发出用户请求并将处理结果返回用户。图1.2为JSP Model2体系结构图③:
图1.2 JSP Model2体系结构图
1.4 Struts概述
作为对经典的MVC设计模式的一种具体实现,Struts是建立在当前Java Web应用开发领域中JSP 、Servlet、XML等相关开发技术基础之上的一种主流的开发架构。是一种基于经典MVC设计模式的框架。
采用Struts可以简化遵循MVC设计模式的Web应用的开发工作,很好的实现代码重用,使开发人员从烦琐的工作中解脱出来,快速开发具有可扩展性的Web应用。总之,Struts的出现使得Web应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。图1.3显示了Struts实现的MVC框架:
图1.3 Struts 的MVC框架图
在Struts中视图是一组JSP文件。在这些JSP文件中没有业务逻辑,也没有模型信息,只有标签。此外,通常把Struts框架中的ActionForm Bean也划分到视图模块中。 ActionForm Bean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据之间表单数据的传递,如图1.4所示:
图1.4 表单间数据传递图
Struts框架把用户输入的表单数据保存在ActionForm Bean 中,把它传递给控制器,控制器可以对ActionForm Bean 中的数据进行修改,JSP文件使用Struts标签读取修改后的ActionForm Bean的信息,重新设置HTML表单④。
1.5 系统开发的环境和工具
1.5.1 网络操作系统
本系统是在Windows XP下开发。Windows XP操作系统支持多种硬件平台、多种操作系统互访、易安装、内置良好的安全措施和先进的容错能力,集成了数码媒体、无线网络、远程网络等最新的技术和规范,提供网络活动记录和追踪功能。
1.5.2 Web服务器系统软件
考虑到服务器系统软件的安全性、易于管理性和可编程性,本系统选择Tomcat 5.0服务器。Tomcat服务器是当今使用广泛的Servlet/JSP服务器,它运行稳定,性能可靠,是学习和中小企业的最佳选择。
1.5.3 数据库管理系统
本系统的数据库管理系统采用My SQL Server 4.1。My SQL Server是一个快速、多用户、多线程的SQL数据库服务器,是一个客户/服务器结构的应用。My SQL Server的快速和灵活性足以满足一个网站的信息管理工作。数据库与用户端之间的接口程序可以使用CGI进行通信。
1.5.4 系统开发工具
本系统的开发工具使用的是Eclipse 3.2.2,MyEclipse插件。Eclipse 是目前比较流行的开源开发工具之一。
综上所述,从系统功能,普及程度等方面考虑,选择 Windows XP + Tomcat 5.0 + My SQL Server + Eclipse + JSP 的软件方案。
1.6 系统开发完成情况
系统到目前为止,已经完成了登陆注册模块,用户信息管理模块,管理员管理模块,论坛模块的主要功能。
用户登陆注册模块已经完成用户通过注册成成功成为会员,登陆后可以在网站中搜索、下载更多的共享资料的功能。
用户信息管理模块已经完成用户可以修改个人资料信息和修改、删除个人上传资源信息的功能。
管理员管理模块已经完成管理员修改用户信息和系统资源等。
论坛模块是方便同学之间,同学与老师之间交流学习的平台。
2 需求分析
2.1 需求
2.1.1 现代教育领域的需求
随着信息技术的发展,现代教育技术在高校的应用也越来越广泛。网络的普及应用,也让人们方便的获得各种资源。针对随之出现的教育资源的管理、共享等问题,提出了网上教育资源共享系统的设计的需求。网上教育资源共享系统是一个教育单位不可缺少的部分,是一个实现教育资源共享,方便学生和老师,学生与学生之间的相互交流学习的工具。
2.1.2 用户学生对教学资源的需求
人们生活水平的不断提高,越来越多的家庭拥有了自己的个人电脑。学生通过各种不同的方式谋求自身的发展,网络是其中的主要方式之一。网上教学资源管理系统,对资源进行分门别类的管理,学生在系统中可以迅速的寻找到想要的资源。网络的特性,可以满足多用户并发访问资源系统,因此,满足了广大学生学习的需求,更好地实现资源共享。
2.1.3 不同用户群对教学资源的需求
系统的使用群体主要是老师和学生,老师应该具有最高权限,不仅可以使用系统,还应管理系统,管理学生用户。教师根据多年的教学经验,知道学生需要哪种资源,这样就可以满足学生对教学资源的需求。而学生用户,根据网站提供的资源,就可以找到合适自己使用,符合自身发展的资源。同学和同学间,同学和老师间通过系统提供的交流平台可以相互交流学习心得。
下面,通过几个用例,说明系统的需求功能。
(1)用户管理
①管理员修改用户信息、删除用户,并负责分配权限。
②普通用户修改个人信息。
③游客浏览网页。
(2)资源管理
①资源有公有和私有两种级别,公有的资源对所以用户开放,私有只对管理员和普通用户开放。
②资源按照类别分类存储如库。
(3)资源搜索
①在网站中可以对资源进行按类别查询。
②在网站中对资源模糊和精确查询。
(4)资源交流论坛
①前台提供用户发贴,回帖,浏览文章。
③后台由管理员使用管理论坛、文章。
2.2 分析
在这个阶段,通过系统分析达到开发者和需求者的理解和沟通,不考虑代码和程序的问题,是理解和实现系统的第一步。
2.2.1 需求分析
需求分析主要是解决软件产品应该达到的各项功能要求,即用户要求做什么。需求分析主要是从最初的非形式化需求到满足用户要求的软件产品的映射过程。它实际上是一个对用户意图不断进行揭示和判断的过程,其目的在于细化、精化软件的作用范围,确定拟开发软件的功能和性能、约束、环境等。
在此阶段,用用例来捕获用户需求。通过用例,描述对系统感兴趣的外部角色以及对系统(用例)的功能要求。用例除了被用来获取用户需求外,它还将驱动一下整个过程:分析、设计、实现、测试和配置。
第一步分析系统能做什么?谁使用系统?这些分别叫做用例(Use case)和角色(Actor)。
系统中的涉及到的人员有管理员,普通用户,游客。
系统中的用例有:
(1)修改个人信息。
(2)修改个人上传资源的属性。
(3)上传资源。
(4)下载资源。
(5)对资源归类储藏。
(6)修改用户信息。
(7)删除用户。
(8)对用户分配权限。
(9)删除网站资源。
(10)发贴。
(11)回贴。
(12)浏览文章。
(13)管理论坛。
(14)管理文章。
用例图简洁明了,能很简练的表达系统需求,便于沟通和下一步的分析。以下是管理员管理用例的用例图,如图2.1
图2.1 管理员管理用例图
在需求分析中,不能只用用例图来描述系统需求,图只是一种辅助的工具,更重要的是将需求文档化,下面是对系统用例的详细描述:
 管理用户
目标:实现用户管理
参与者:管理员
前置条件:系统运行并登陆
事件流:
(1)验证用户是管理员
(2)通过后进入管理员页面,若失败转到用户登陆界面
(3)修改用户信息, 分配用户权限
(4)删除用户
(5)资源归类
(6)上传资源
(7)修改资源属性
(8)删除资源
(9)管理论坛
(10)管理文章
可选事件流:无
异常事件:无
普通用户资源管理用例图,如图2.2
图2.2 普通用户资源管理用例图
 普通用户资源管理
目标:管理个人资源
参与者:普通用户
前置条件:系统运行并登陆
事件流:
(1)上传资源,填写上传的资源属性
(2)修改个人上传的资源属性
(3)删除个人上传资源
(4)搜索资源
(5)下载资源
可选事件:无
异常事件:无
2.2.2 网上教学资源共享系统的可行性分析
首先是技术可行性,计算机及网络技术等技术的发展为Web提供了技术基础,利用现在比较成熟,流行的JSP语言以及Struts架构,由My SQL Server作为后台数据库管理利用很方便地在Windows 9x/NT/2000/XP下实现网上教育资源共享系统。
其次是经济可行性,网络空间的应用,出现了大量的电子书籍,软件工具,呈现了无纸化的优越性,网上教学资源共享管理系统很好的管理这些资源,提供用户使用,大量地节约了各种制造传统教学教材的资源,用户学习的空间不再只限制于学校、图书馆、教室,在家中都可以获取大量的资源,节省了资金和时间。
操作可行性,学生只需要拥有一台连上网的PC机就可以轻松获取大量的资源。
3 网上教学资源共享系统的设计
3.1 总体设计
3.1.1 UML活动关系图
活动关系图用于显示动作及结果。其重点在于描述方法实现中所完成的工作,以及用例或者对象中的活动。
下面是普通会员进入网上教学资源共享系统时可以进行的操作。具体的UML活动如图3.1所示。管理员进入网上教学资源共享系统时可以进行的操作。具体的UML活动如图3.2所示。
图 3.1普通用户活动关系图 图3.2管理员活动关系图
3.1.2 系统组成
表3.1所示为构成网上教育资源共享管理系统的各个组件,通过本表,可以宏观了解各个组件的功能。
表3.1系统主件功能图
用户表示层(视图) 控制处理层(控制器) 数据持续层 业务逻辑层(模型 )
index.jspregistry.jspmodify.jspupdateRes.jspmanager.jspmanagerUser.jspupload.jspsearchaRes.jspdeleteUser.jsplogin.jspbbsTopicse.jspbbsAnswer.jsp LoginAction.javaModifyUserAction.javaRegistryAction.javaAddCategoryAction.javaDeleteCategoryAction.javaSearchResAction.javaUpdateResAction.javaUploadAction.javaStruts-config.xmlWeb.xml DBConnection.javaDBUtil.java UserBean.javaResoureBean.javaTopicseBean.javaAnswerBean.java
3.2 功能设计
3.2.1 会员信息管理
实现网上教学资源共享管理系统相关用户信息的注册及身份验证,同时也提供对应用户资料的更新。确保用户信息的有效性,管理员可以查询对应用户的信息,并可以改变该用户的权限和删除指定用户。
3.2.2 资源管理
用户可以上传、下载和搜索资源。用户可以修改、删除个人上传资源的属性。管理员可以增加资源种类,上传、搜索、删除、修改所有资源。游客可以下载网站提供为公开类型的资源。
3.2.3 论坛管理
用户通过在论坛浏览文章、发出、回复文章的形式和其他同学交流学习的经验,用户可以修删除个人所发出和回复的贴子。管理员在论坛中可以删除其他用户文章。游客可以浏览文章,但不可以发出或回复文章。
3.3 数据流图
3.3.1 顶层DFD图
如图3.3
图 3.3 顶层数据流图
图3.3中:1 进入网站;2表单审核;3数据库操作;4获得资源;
3.3.2 0层DFD图
如图3.4所示:
图3.4总体数据流图
3.4 数据库设计与实现
3.4.1 数据库的需求分析
根据网上教学资源共享系统的需求,对数据表的设计及功能如下:
用户基本信息表:存放用户的基本信息。
资源基本信息表:存放该网站资源的基本信息。
资源类别信息表:区分上传资源的种类。
论坛信息表:保存论坛的基本资料。
3.4.2 数据库的逻辑设计
根据以上需求分析,在确定了各个表逐主键字段的基础上,依据表与表相关字段的联系建立各个表的关系,对应如图3.5
图 3.5 数据表关系图
其中用户表中的id”与资源表中的userID”对应,userName”与AuserName”和TuserName”对应,TitleId”与Tid”对应。
网上教育资源共享系统中个数据表的基本结构如下:
(1)用户表
表3.2 用户基本信息表
字段名 描述 类型 长度 是否允许为空 是否主键
id 用户序号 int 11 否 是
username 用户名 varchar 30 否 否
password 密码 varchar 30 否 否
stuName 用户姓名 varchar 50 是 否
stuId 用户学号 varchar 50 是 否
isAdmin 权限 tinyint 1 是 否
(2)资源表
表3.3资源基本信息表
字段名 描述 类型 长度 是否允许为空 是否主键
rid 资源序号 int 否 是
resName 资源名称 varchar 50 是 否
resPath 资源路径 varchar 200 是 否
userID 上传者序号 int 是 否
category 资源类别 varchar 30 是 否
grade 资源级别 varchar 30 是 否
resDesc 资源描述 text 是 否
resSize 资源大小 varchar 80 是 否
(3)资源类别表
表3.4资源类别信息表
字段名 描述 类型 长度 是否允许为空 是否主键
cid 类别序号 int 否 是
cName 类别名称 varchar 50 否 否
(4)发表文章信息表
表3.5发表文章信息表
字段名 描述 类型 长度 是否允许为空 是否主键
Tid 发表文章序号 int 否 是
Title 发表文章题目 varchar 100 否 否
Text 发表内容 varchar 1024 否 否
TuserName 发表的用户 varchar 30 否 否
Tdate 发表时间 timestamp 否
(5)回复文章信息表
表3.6回复文章信息表
字段名 描述 类型 长度 是否允许为空 是否主键
Aid 回复文章序号 int 否 是
TitleId 回复文章题目序号 varchar 100 否 否
AText 回复内容 varchar 1024 否 否
AuserName 回复的用户 varchar 30 否 否
Adate 回复时间 timestamp 否
3.5 数据字典
表3.7 数据字典
序号 数据项 数据内容
1.1 Id 用户id
1.2 userName 用户名
1.3 password 密码
1.4 stuName 学生姓名
1.5 stuID 学号
1.6 isAdmin 权限
2.1 cid 资源种类id
2.2 cName 资源种类名
3.1 rid 资源名id
3.2 resName 资源名
3.3 userId 上传资源用户Id
3.4 resPath 上传资源的路径
3.5 category 所属种类
3.6 grade 资源级别
3.7 resDesc 资源描述
3.8 resSze
4.1 Tid 话题id
4.2 Title 话题
4.3 Text 话题内容
4.4 TuserName 发表者用户名
4.5 Tdate 发表时间
5.1 Aid 回复话题id
5.2 TitleId 回复话题题目的id
5.3 AText 回复内容
5.4 Ausername 回复用户名
5.5 Adate 回复时间
4 系统实现
4.1 实现效果
打开后屏幕中显示首页。如图 4.1:
图 4.1 原系统首页
在此页面中,提供用户登陆界面, 游客可以看到网站提供公共部分的资源,并可以查询、下载公共资源。登陆后,若为管理员显示如下页面。如图4.2:
图4.2 管理员登陆后页面
若为一般用户,将显示如下页面,如图4.3:
图 4.3 普通用户登陆后页面
此两页面区别在于,在导航栏上管理员可以进入【管理员页面】,普通用户只能管理,修改本用户的基本信息和资源。管理员管理所有用户的信息和资源。当普通用户进入修改个人资料和管理本人上传资源的页面,如图4.4:
图 4.4 个人资料和管理本人上传资源的页面
管理员进入管理页面显示增加资源类别的页面如图4.5:
图4.5 管理员增加资源类别页面
此页面可以增加资源类别,以方便资源管理归类。
4.2 用户表示层
4.2.1 首页(index.jsp)代码

用户:
密码:
提交
注册

<%UserBean user=(UserBean)session.getAttribute(user); %>
欢迎登陆,<%=user.getUserName()%>!
>【用户信息页面】
<%
if(user.getIsAdmin()){
%>
【管理员页面】
<%
}
%>
【上传资源】
【退出】


此处提供资源搜索:
<%
Collection categories=DBUtil.getCategories();
request.setAttribute(categories,categories);
%>

--资源种类--
--全部--

查找


所有公开资源:

<% Collection resources=new ArrayList(); %>

<% resources=DBUtil.getResources(all); %>

<% resources=DBUtil.getResources(public); %>

<% Iterator it=resources.iterator();
ResourceBean resource=new ResourceBean();
while(it.hasNext()){
resource=(ResourceBean)it.next(); %>

资源名称:<%=resource.getResName()%> >
【下载】

发布者:<%=DBUtil.getUserNameByUserID(resource.getUserID())%>
资源大小:<%=resource.getResSize()%> 资源级别:<%=resource.getGrade()%> 资源类别:<%=resource.getCategory()%>

资源描述:<%=resource.getResDesc()%>

<%
}
%>

4.2.2 注册页面(registry.jsp)代码
Registry.jsp页面是在游客单击注册”按扭后,跳转到的页面。输入用户信息后提交就成为普通用户。
4.2.3 修改用户信息代码(modity.jsp)
modity.jsp页面是用户修改信息的。若为管理员,管理员除了可以修改本人的信息,还有修改其他人的信息和分配用户权限。具体代码如下:
……
<%
String tempID=(String)request.getParameter(id);
UserBean curUser=(UserBean)session.getAttribute(user);
String curUserID=Integer.toString(curUser.getID());
boolean curUserIsAdmin = curUser.getIsAdmin();
String userID=;
UserBean user=new UserBean();
if(tempID.equals(curUserID)){
//if(true){
//修改用户为当前用户
user=curUser;
userID=curUserID;
%>

……

<% }else{
//修改用户为管理员
user=DBUtil.getUser(Integer.parseInt(tempID));
userID=tempID;%>

……
用户类型:
>--请选择--
--管理员--
--普通会员--

提交

<% } %>
……
<%
Collection resources=DBUtil.getResourcesByUserID(user.getID());//ByUserID(user.getID());
Iterator it=resources.iterator();
while(it.hasNext()){
ResourceBean resource=new ResourceBean();
resource=(ResourceBean)it.next();
%>

……
<%=resource.getID()%>&userID=<%=userID%>>【删除】

……
4.2.4 用户删除个人资源部分代码(deleteRes.jsp)
deleteRes.jsp页面是用户删除资源的页面。单击删除”就可以删除上传的资源。
4.2.5 用户修改资源主要代码(updateRes.jsp)
updaters.jsp页面是修改上传后资源信息的。把要修改的信息填写到对应的文本框,按提交”就修改成功。
4.2.6 管理员管理资源类别页面代码(manage.jsp)
Manage.jsp页面是给管理员管理资源类别的,管理员可以添加、删除资源类别。主要代码如下:
……
添加资源类别:

添加

删除资源类别:
<%
Collection categories=DBUtil.getCategories();
request.setAttribute(categories,categories);
%>

--请选择--

删除

4.2.7 管理员显示所有用户信息页面代码(manageUser.jsp)
管理员通过manageUser.jsp页面浏览到所以用户信息,需要修改哪个用户,就找到相应的用户行,单击修改或删除等。
4.2.8 搜索网站资源部分代码(searchRes.jsp)
searchRes.jsp页面是实现资源搜索。在可选框中可以选择资源的类别,在文本框输入关键字或资源名称,单击搜索”按扭。如下是主要代码:
……
搜索到的资源如下:

<%
Collection resources=(Collection)request.getAttribute(searchRes);
Iterator it=resources.iterator();
while(it.hasNext()){
ResourceBean resource=(ResourceBean)it.next();
%>

资源名称:<%=resource.getResName()%>
>【下载】
=<%=resource.getID()%>>【修改】

……
4.3 数据持续层
4.3.1 连接数据库代码(DBConnection.java)
……
public class DBConnection {
public static Connection getConnection(){
Connection conn=null;
try{
String driverName=com.mysql.jdbc.Driver;
String userName=root;
String pwd=;
String db=rm;
String url=
jdbc:mysql://localhost/+db+?user=+userName+&password=+pwd;
Class.forName(driverName).newInstance();
conn=DriverManager.getConnection(url);
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
}
此代码用于每次页面要求连接数据库,通过调用Connection getConnection()连接。
4.3.2 方法组合部分代码(DBUtil.java)
package common;
……
public class DBUtil {
public static Collection getCategories(){
Vector categories=new Vector();
try{
Connection conn=DBConnection.getConnection();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(select * from categories);
while(rs.next()){
String cName=rs.getString(cName);
categories.add(new
org.apache.struts.util.LabelValueBean(cName, cName));
}
rs.close();
stmt.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}
return categories;
}
public static Collection getResources(String grade){
……
}
public static Collection getResourcesByUserID(int id){
Collection resources=new ArrayList();
……
}
public static ResourceBean getResource(int id){
ResourceBean resource=new ResourceBean();
……
public static Collection getAllUsers(){
Collection allUsers=new ArrayList();
……
}
public static UserBean getUser(int id){
UserBean user=new UserBean();
……
}
public static String getUserNameByUserID(int id){
……
}
public static Collection getResourcesByKey(String key,String category,String grade){
Collection resources=new ArrayList();
……
}
}
其中:
Collection getCategories():此函数是取得资源种类,显示在下页面的拉框中。
Collection getResources (Sting grade):通过资源级别搜索资源。
Collection getResourcesByUserID(int id):通过用户id取得资源信息。
ResourceBean getResource(int id):通过资源的序号取得资源的信息。
Collection getAllUsers():得到所有用户的信息。
UserBean getUser(int id):通过用户的id取得用户信息。
getUserNameByUserID(int id):通过用户id查找用户名。
Collection getResourcesByKey(String key,String category,String grade):通过关键字查询资源。
4.4 业务逻辑层
在系统的业务逻辑层中分别完成对用户信息、资源信息等类型对象的保存和处理。
4.4.1 封装用户信息的bean(UserBean.java)
package common;
public class UserBean {
private int id;
……
public void setID(int id){
this.id=id;
}
public int getID(){
return this.id;
}
……
}
4.4.2 封装资源基本信息的bean(ResourceBean.java)
(代码略)
4.5 控制处理层
网上教育资源共享系统中的Action作为前后台的桥梁,每个Action的入口(即调用Action的组件)及入口(请求转发的目标组件),以及传递Action的ActionForm。如图4.6:
图4.6控制层总体图
4.5.1 struts-config.xml部分代码
……

……

attribute=registryForm
input=/user/registry.jsp
name=registryForm
path=/registry
scope=request
type=action.user.RegistryAction
validate=true >

name=loginForm
path=/login
scope=request
type=action.user.LoginAction
input=/user/login.jsp
validate=true >

……

4.5.2 LoginAction.java部分代码
LoginAction.java是完成用户登陆时提交login.do”请求,代码如下:
package action.user;
……
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm=(LoginForm)form;
String userName=loginForm.getUserName();
String password=loginForm.getPassword();
try{
Connection conn=DBConnection.getConnection();
Statement stmt=conn.createStatement();
String sql=select * from users where userName=
+userName+ and password=+password+;
ResultSet rs=stmt.executeQuery(sql);
if(rs.next()){
UserBean user=new UserBean();
user.setID(rs.getInt(id));
user.setUserName(rs.getString(userName));
……
user.setIsAdmin(rs.getBoolean(isAdmin));
(request.getSession()).setAttribute(user,user);
return mapping.findForward(success);
}else{
//add errors
}
rs.close();
stmt.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}
return mapping.getInputForward();
}
}
5 测试检验
5.1 注册模块测试
目的:检验注册
预期效果:游客注册成功后进入登陆页面。
参与者:游客
流程:
1、游客进入首页,单击注册”。
2、进入注册页面,输入相关信息,单击提交”。
3、进入登陆页面,则登陆成功。
部分过程贴图:
图 5.1 用户注册图 图 5.2注册成功图
5.2 管理员管理用户模块测试
目的:检验管理员登陆成功
预期效果:管理员进入管理员页面,修改用户学号,和分配用户权限
参与者:管理员
流程:
1、管理员登陆,验证成功显示管理员页面
2、单击管理员页面”,显示管理用户”按扭
3、在进入管理用户”页面,显示所有用户列表
4、管理员单击tom”行的修改用户信息及上传资源”按扭,进入修改页面
5、管理员把tom的学号改为222”,权限由原来的普通用户”改为管理员”,提交
部分过程贴图:
图 5.3 管理员登陆成功图
图 5.4 显示所有用户图
图 5.5 修改用户信息和分配权限图
5.3 用户上传资源模块测试
目的:实现用户上传资源功能
预期结果:显示用户上传的资源
参与者:普通用户
流程:
1、用户登陆后,进入普通用户页面
2、单击上传资源”按扭,显示资源上传页面
3、填写资源名bb_test”,资源上传C:Documents and SettingsLP桌面ssss.txt”,资源级别公开”,资源类别java”,资源描述bb_test_name”,按提交”按扭。
4、提交成功后到普通用户管理资源页面,显示已上传的资源
部分过程贴图:
图 5.6 普通用户登陆成功图
图 5.7 用户上传资源图
图 5.8 上传成功的页面
结 论
本系统的设计,为用户提供了良好的访问界面,方便用户快速地寻找到合适自己的资源,也方便用户共享资源,相互学习交流。
但由于经验不足,学习还不够深入,只能说对Struts架构有一个比较清晰的认识,掌握了Struts的部分精髓,但还不能彻底的了解,掌握,还需要继续钻研。此系统还未能完善,甚为遗憾:
●未进行重复验证。
●未进行上传文件大小验证。
●/delectRes?id和/updaters?id存在安全性问题
●未做管理员相关页面的滤镜。
●字符(中文)转换函数未编写。
●未为各个页面做error.jsp.
除此之外,系统没有用于实践,还没有对系统安全漏洞和系统的可靠性进行测试,页面设计也相对简单,不够美观。
我会继续努力学习Struts的Java Web开发,不断地学习技术,吸收经验,把系统近一步完善。
参考文献
[1] 孙卫琴,《精通Struts:基于MVC的ava Web设计与开发》[M],电子工业出版社,2004年8月
[2] 张桂元、贾燕枫,《Eclipse入门与项目实践(第1版)》[M],人民邮电出版社,2006年1月
[3] 曹广鑫、王谢华、王建凤,《Struts数据库项目开发宝典》[M], 电子工业出版社2006年1月
[4] Marty Hall、Larry Brown,《Servlet与JSP核心编程(第2版)》[M],清华大学出版社,2004年6月
[5] 万峰科技,《JSP网站开发四酷”全书》[M], 电子工业出版社,2005年9月
[6] 廖若雪,《JSP高级编程》[M] 机械工业出版社,2001年3月第1版
[7] 飞思科技产品研发中心,《JSP 应用开发详解(第二版)》[M],.电子工业出版社.
[8] Karl Avedal、Danny Ayers、Timothy Briggs等著. 黎文、援德利等译,《JSP编程指南》[M],电子工业出版社
[9]王家骐,于海霞,《基于MVC设计模式的WEB应用框架研究》,
http://dev.yesky.com/143/2689643.shtml,2007年3月17日
[10] 中国IT实验室(chinaitlab),《在Struts 2中实现文件上传》,
http://java.chinaitlab.com/List_213.html ,2007年3月28
[11] csdn ,《Struts-Bean  标签库》,
http://blog.csdn.net/mr_zhao/archive/2007/05/13/1606857.aspx ,2007年4月5
[12] http://java.sun.com/,JSP技术规范 2007年4-5月
致 谢
非常感谢覃少华老师在我进行毕业设计过程中给予的指导,同时也感谢郭飞声同学和韦涛同学在我实现系统过程中遇到的问题给予的技术帮助。在几个月的学习中,我深刻地体会到学习交流,共同探讨的重要性。通过讨论交流,可以从多个角度看待问题,不同的角度,都会有不同的解决方法。
PAGE
13

资源名称:<%=resource.getResName()%> >
【下载】

发布者:<%=DBUtil.getUserNameByUserID(resource.getUserID())%>

基于web构架的网上教学资源共享管理系统相关推荐

  1. 基于数据库和ASP的网上教学资源管理系统的开发

    1,前言 网络技术的发展促进了网络教育的发展,随着网上教学资源和网络用户的成倍增长,如何让用户.特别是接受远程教育的学生在巨量的教学资源中快速搜索.浏览所需信息,如何为教师提供一个方便快捷的课件发布渠 ...

  2. asp毕业设计—— 基于asp+access的网上教学系统设计与实现(毕业论文+程序源码)——网上教学系统

    基于asp+access的网上教学系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的网上教学系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开 ...

  3. 基于JAVA-英杰学堂网上教学平台-计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA-英杰学堂网上教学平台-计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA-英杰学堂网上教学平台-计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技 ...

  4. JSP网上教学资源共享系统(源代码+论文)

    通过网上教学资源共享系统的建设,完成了对于操作系统课程的远程化授课.可以使学生不受时间空间的限制,通过网络对于这门课程进行学习.建立起了基于B/C的网络化教学系统.本网站采用当前最流行的JSP网络编程 ...

  5. asp毕业设计——基于asp+sqlserver的网上教学系统设计与实现(毕业论文+程序源码)——网上教学系统

    基于asp+sqlserver的网上教学系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+sqlserver的网上教学系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  6. Web信息系统采用浏览器 服务器结构,基于web浏览器服务器框架体系教材管理系统.doc...

    基于web浏览器服务器框架体系教材管理系统 基于web浏览器服务器框架体系教材管理系统 [摘要] 通过对目前高校教材管理现状进行分析,引出建立网络教材管理系统的重要性和必要性讨论,具体介绍了教材管理系 ...

  7. 存储型xss实例分享---基于web靶机的织梦内容管理系统

    存储型xss实例分享-基于web靶机的织梦内容管理系统 存储型xss实例分享: ① 用御剑扫到管理员登录路径: http://192.168.1.105:800/DedeCmsV5.6-GBK-Fin ...

  8. 基于微信小程序的教学教务管理系统(后台Java+SSM+MySQL)

    目 录 摘 要 I ABSTRACT II 第1章 绪论 1 1.1 研究目的及意义 1 1.2 国内外研究现状 1 1.3研究内容及结构 2 1.3.1研究主要内容 2 1.3.2论文结构 2 第2 ...

  9. 基于JAVA毕业设计的网上图书销售管理系统

    摘 要   本文讲述了基于B/S模式的SSH技术的图书在线销售系统的设计与实现.所谓的图书在线销售系统是通过网站推广互联企业的图书和技术服务,并使客户随时可以了解企业和企业的产品,为客户提供在线服务和 ...

最新文章

  1. RUP概述与实际应用的例子
  2. Annihilate(SA)
  3. 介绍一个修改 Visual Studio Code 侧边框颜色的扩展 Peacock
  4. 川崎机器人c#通讯(转)
  5. OpenJudge NOI 3.3 3340:RPN Calculator
  6. java数据结构编写二叉树_java 数据结构与算法 BinaryTree二叉树编写
  7. 创建loop15设备挂载镜像文件(.img)
  8. 洗衣机的维修和电动机
  9. 制作U盘安装UBUNTU
  10. 关于AD9的一些使用
  11. 今日头条笔试题 数列
  12. 加入域的计算机如何本地用户登录,关于本地缓存登陆和域用户将计算机加入域的问题(转)...
  13. 高中计算机课简单介绍,高中课程介绍
  14. vue校验输入框不能有中文
  15. [博弈论]移棋子游戏
  16. JAVA-【将字符串中的英文括号替换为中文括号】
  17. 这四个重要的用研技能
  18. JAVA相关的视频学习视频,内容较多
  19. layui下拉多选框xm-select
  20. 用Nextcloud搭建个人网盘

热门文章

  1. Vmware安装win7重启后黑屏解决
  2. DNS(域名系统)详解
  3. python3 zip破解
  4. sci核心与中文核心哪个容易过
  5. 神州泰岳测试试题(笔试
  6. 555定时器及其应用
  7. 什么是竞争和冒险,如何消除?
  8. 微信小程序asp服务器架设,小程序与ASP做数据库交互
  9. centos7重新安装polket
  10. 原创高端影楼人像专业磨皮法教程详解 附PSD源码