文档库 最新最全的文档下载
当前位置:文档库 › 基于JSPServlet的网络教学平台的设计与实现毕业论文

基于JSPServlet的网络教学平台的设计与实现毕业论文

基于JSP/Servlet的网络教学平台的设计与实

现毕业论文

目录

1 引言 (1)

1.1 网络教学系统的技术 (1)

1.2 本系统的特点和意义 (2)

2 系统核心技术特点 (2)

2.1 web系统应用研究 (2)

2.1.1 N层体系结构 (2)

2.1.2 基于组件开发 (3)

2.2 JSP/Servlet对web应用系统的支持 (3)

3 系统分析 (4)

3.1 用例分析 (4)

3.2 用例建模 (5)

3.2.1 标识参与者 (6)

3.2.2 用例图 (6)

3.2.3 顺序图 (7)

3.2.4 活动图 (8)

3.3 分析类 (10)

3.3.1 边界类 (10)

3.3.2 实体类 (10)

3.3.3 控制类 (11)

4 系统设计 (12)

4.1 体系结构设计 (12)

4.2 系统功能设计 (13)

4.2.1 功能模块划分 (13)

4.2.2 功能实现设计 (15)

4.2.3 用例设计 (18)

4.3 数据库设计 (19)

4.3.1 数据库设计原则 (19)

4.3.2 系统数据库设计 (20)

5 关键技术及实现 (22)

5.1 用户身份鉴别 (22)

5.2 对会话的跟踪和处理 (23)

5.3 数据库连接池的实现 (24)

5.4 数据访问优化实现 (26)

5.5 系统安全实现 (27)

5.5.1 网络层安全 (27)

5.5.2 数据层安全 (28)

6 结束语 (28)

参考文献 (29)

1 引言

1.1 网络教学系统的技术

基于Internet的网络教学系统是现代远程教育的方向,支持网上教学的教学管理系统在其中扮演着重要角色。网络教学的目标是培养合格的人才,完成既定的教学任务和实现国家规定的教学目标。教学管理居于一个至关里要的地位,它起着调配教学资源、组织教学活动、总结教学数据等重要作用。教学管理系统使得教学能够顺利实施,也可实现整个教学管理过程的现代化和管理的规范化,另外还能及时、准确地反映教学现状,分析教学效果。建立一个通过Internet实现教学信息发布和师生交流、网上选课。并能实现教师授课和课酬管理的基于网络的教学管理系统,是十分必要的,也是切实可行的。我们的思路正是构建一种如图1-1所示的基于Web的开放式网络教学管理系统。

图1-1系统实例图

基于上述的分析,为了实现这样一个开放式的网络教学管理系统,我们采用了这样的一个技术体系:

本系统是依照J2EE(Java 2'Enterprise Edition)标准,综合采用JSPIServlet, , JDBC等Java相关技术开发的大型网络应用软件。系统的开发建立在Web服务器(Web Server)、应用服务器(ApplicationServer)和数据库服务器的多层架构之上。这种多层结构可将数据处理的业务逻辑、用户界面、内容显示等部分分开,从而使系统的业务逻辑集中于Application层次:利用JavaBean服务器组件的可重用性和跨平台性,可以快速开发和二次开发出复杂的大型平台应用程序,以适应多种用户的不同需求。因此,该平台具有极佳的可靠性、可管理性和可扩展性。

1.2 本系统的特点和意义

本系统具有通用性,可适用于各类学校、成人教育,职业培训和技术培训等机构在远程教育平台上进行教学管理,是对传统教育管理模式的改革和创新,其推广使用对于教学管理的改革,实现开放式教育管理,扩大受教育面。有限的师资发挥更大的作用等方面具有重要的意义。

本系统具有以下主要特点:

(1) 通用性强。能适用于各种机构的网络教学管理。

(2) 实现时间和空间的分布性。在教学管理方面,节约大量的人力物力,提高了效率。

(3) 资源库的标准化,使得在Intemet上可以比较容易的和使用其他平台的机构之间共享资源,从而做到互通有无,真正实现系统的开放性。

总的来说,笔者经历了本课题的系统分析、设计、实现的开发周期,构建起一个开放性的网络教学管理系统,基本上完成了课题研究的目标。在课题研发期间,独立完成了本系统的业务需求分析,建立了用例模型,并对对象模型进行了详细设计以及对数据库的设计。在下面几章中,将会详细介绍本课题的设计与分析过程,以及系统关键技术的实现。

2 系统核心技术特点

2.1 web系统应用研究

2.1.1 N层体系结构

90年代初,传统的企业信息系统(EIS)供应商为满足用户要求从二层的C/S 应用模型转向更为灵活的三层或N层(n-tier)应用模型。N层(n-tier )结构可以取得更好的整体平衡,它将表示逻辑与业务逻辑从底层数据中分离开来。不断增长的Intranet企业应用也积极倡导轻量级,便于部署的客户端。

需要注意的是,N层中的每一层并不意味着就是软件中单独的一个部分,虽然也可能是这样的层,首先与软件中分离方法有关。软件内的不同的层在逻辑上也有区别,但可以共存于一台机器上,或者跨越多台机器进行分布。

下面是使用N层结构的特点:

(1)加快开发过程,降低开发成本:通过重用现有、预先测试过的业务组件和数据访问组件,可以更快的开发新的应用程序。

(2)隔离了由于改变带来的影响:只要接口保持不变,一个层上的改变不会

影响其它层上的组件。

(3)更容易管理改变:例如,一个业务组件驻留在业务层(该业务组件位于一个或多个专用服务器上),那么我们可以很容易地用它的新版本替换旧版本,而不用替换不同城市甚至全球范围内的上百或上千的客户端应用程序了。

2.1.2 基于组件开发

组件提供了比单纯的类更祖粒度的问题封装方法。接口封装了组件提供的服务,隐藏了实现细节的可见性。因此组件间耦合更为松散。由于组件表示一个或多个较细粒度类的逻辑集合,且被定义在较高级别,具有较粗粒度级,所以一个组件可以直接封装一个己经划分的问题,该问题更直接地产生于分析和设计模型。

组件通过组件模型定义实现互换性和兼容性。组件模型的接口定义了其它代码和组件之间的关系。其它代码实体可以是容器、应用程序代码、其它组件、其它组件模型以及一些专门服务提供商。近年来,人们开发了各种不同的组件模型,例如,Microsoft的ActiveX、后来的COM, Sun Microsystems的applet和JavaBean。

组件为企业开发提供了许多方便。建立在面向对象软件和开发概念之上的组件提供了一个更高级的开发模型,并且能加速企业应用程序的建立。而且,系统质量也会被加强,因为这会促使商业组件的生产商集中于提高组件的质量并提供有很好文档的接口,这样就不要求内部人员具有很好的特定底层实现技术的知识和与实现服务相关的知识。

2.2 JSP/Servlet对web应用系统的支持

JSP对web应用系统提供了以下功能的支持:

用户交互:基于Web的Java小应用程序(Applet)和桌面应用客户程序能够使用基于Java的GUI技术创建,并能驻留在独立的J2 SE环境或J2EE环境中。传统的非面向Java的Web浏览应用程序能够与基于J2EE的Web服务器一起使用。除此以外,非基于Java的客户程序也可以使用分布式通信技术,如CORBA,DCOM及TCP/IP与服务器组件进行通信。

数据使能:Java数据库连接(JDBC)方法用于与数据库通信。J2EE, Web, EJB 应用程序,以及应用程序客户程序都使用JDBC API.运行于J2 EE环境之外独立的Java企业应用程序都可以使用JDBC API。

系统保证:各种系统保证属性,如可靠性、可用性、可维护性、保护性和安全性是系统重要的特性,基于Java的企业环境封装了许多具有不同API的安全服务,CORBA也在CORBA安全服务规范中定义了安全服务,对于在应用环境

中的安全互操作特别有用。

Web使能:虽然HTML己经是最典型的创建Web页面的格式,但XML却是用于描述Web页面内所需要的数据和控制更灵活的、更可扩展的机制。Java ServIet和JavaServerPages是接收基于Web的请求和产生基于HTML或基于XML 响应的标准J2EE机制。Web使能应用程序也可利用各种全局服务用于分布通信、通信服务以及保证服务。

应用程序使能:XML也能用于使系统应用能与外部系统的其它应用程序通信。各种各样的应用集成技术也是应用程序使能的一部分。通过上述机制,我们会得到如下应用需求原则:

(1)将应用程序划分为多层(tier),以构建可伸缩的大型企业级应用。

(2)将系统分解为相对的粗粒度组件,以便于快速开发。因此,可以用“层(tier)+组件十服务”来描述JSP/Servlet对web应用系统的支持。

3 系统分析

系统分析是软件工程的重要阶段,是所有开发的依据。在系统分析阶段,通过对系统的综合研究,对问题域进行抽象,准确的理解系统需求和系统内部运行机制,有助于准确的掌握系统的需求,从而正确的定义问题域,确定软件开发的具体内容。

对系统的分析过程采用面向对象分析(OOA),应用可视化面向对象建模技术UML(统一建模语言,Unified Modeling Language)建立系统模型。

3.1 用例分析

用例是从用户和业务的角度来描述系统提供需要执行的功能。下面列出了本系统主要的用例:

(1) 教师信息查询

学生和管理员为了解教师情况而查看教师信息.

(2) 教师信息录入与维护

由教师本人录入自己的基本信息,包括教育背景、研究方向、科研成果以及发表论文,专著和获奖等方面的情况。并由教师本人对信息进行修改和维护。

(3) 学生信息查看

教师和管理员查看学生信息,了解基本情况。

(4) 发布教学公告

管理员在网站的主页上发布教学公告信息。包括课程名称、开课时间、起止

日期、主讲教师等。通过设置链接还能查看课程的详细介绍。

(5) 教学公告维护

管理员不定期的更新教学公告并对此进行维护。

(6) 课程资源浏览

学生可以查询课程内容,了解课程的章节目录等信息.

(7) 课程资源管理

任课教师录入新的课程资源信息或者修改、删除旧的课程资源。

(8) 学生选课,加入到某个选课班

学生在查看了系统发布的教学公告之后,根据自己的实际情况和兴趣选取要求学习的课程。学生在选定课程之后,未缴纳相应的费用之前,可以对选课内容进行修改.

(9) 成绩查询

学生通过查询条件可随时查看自己的考试成绩。

(10) 成绩管理

教师录入学生的考试成绩,评定成绩等级,更改或删除学生成绩。学生查询成绩。

(11) 作业管理

教师对选课班进入作业任务的发布,批改,统计,查询。学生可在线做作业,提交作业,查看批改结果。

(12)在线答疑

学生在线提问,教师在线答疑。

(13)在线测试

教师利用系统生成考卷并发布出去。学生在线答卷并由系统自动评分。

(12) 消息提醒

对教师布置作业,在线答疑,在线测试进行短消息提醒。

(11)用户登录

使用本系统的用户必须登录才能进入本系统查看信息,匿名用户不具有访问权限。

(12) 用户注销

用户退出本系统。

3.2 用例建模

用例模型描述的是外部执行者(Actor)所理解的系统功能。它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。在需

求分析阶段,可以用用例来捕获用户需求,以描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。

3.2.1 标识参与者

参与者是指系统的分类用户,分别代表一个唯一的角色。对本系统来说,存在相互联系如下3类用户:

管理员:通过系统管理学生档案,维护学生选课内容,发布教学公告,成绩管理,以及数据备份恢复工作等等。管理员是系统中权限最大的用户,业务范围几乎涉及所有方面。

教师:通过系统管理自己的基本信息,查看课程资源,查看选课情况。业务范围为与自己和教学相关的信息。

学生:通过系统查看教学公告、教师信息和课程资源信息,查看成绩。业务范围为与教学相关的信息

3.2.2 用例图

用例图(Use Case)是参与者(系统外部用户)所能观察到的系统功能的模型图,它描述参与者与系统提供的用例之间的某种联系。用例图就是从参与者的角度描述出系统中的用例和参与者,以及用例与参与者之间的关系(哪个参与者参与了哪个用便的执行).根据上面的用例分析,得到系统的用例图如下面3张图所示:

图3-1超级管理员用例图

图3-2教师用例图

图3-3学生用例图

所有用户都包括用户登录和注销这两个用例,图中未画出。

3.2.3 顺序图

为进一步说明系统需求,可以通过顺序图、协作图和活动图来描述用例之间或用例内部的动态关系。这里我使用了顺序图和活动图,将陆续介绍。

用例是一种真正的文本描述,主要用于解释。顺序图用于更准确地、以技术语表达用例。按照参与者与系统的交互关系来描述用例就可以做到这一点。顺序图(Sequence Diagram)是UML中一种重要的动态视图,它是以时间顺序显示对象交互的图,它显示了参与交互的对象和所交换消息的顺序,是一种交互关系, 并强调了交互发生的时间顺序。这里我给出的例子是学生选课顺序图。

图3-4学生加入选课班顺序图

3.2.4 活动图

活动图的主要作用是表示系统的业务工作流和并发处理过程。它能够更容易显示参与者的决定和系统异常所要执行的多条路径,而这用顺序图是难以表达的。

活动图在概念上与流程图相似,用它来为工作流程建模,以及用来图解用例的动态行为和操作的详细设计是很有用的。一旦一个活动完成,执行就转到由活动的有效转移所确定的下一种状态。在活动图中,泳道可用于在一个活动图中显示多个对象,以及它们如何在一起完成整个用例。

根据需求分析为系统的核心业务绘制活动图,明确在业务工作流中参与者与系统各用例之间以及系统用例之间可能的交互。用例可以认为是获得对参与者有用的东西,而需执行的步骤,顺序图和活动图对精确标识和理解用例行为都是有

用的。

图3-5学生流程活动图

图3-6教师流程活动图

3.3 分析类

根据用例模型,我们抽象出系统中的对象和类。系统中存在三种类:边界类、控制类和实体类,每一种类在系统模型中执行一定的作用口。

3.3.1 边界类

在系统模型中,边界类表示系统内部工作方式与其周围环境之间的各种交互作用。包括:通过图形化用户界面与用户交互,与其他参与者交互(如代表其他系统的参与者),与设备通信等。使用边界类的优点之一是:它们可以把系统的其余部分与外界环境隔离和屏蔽起来(见表3.1)。

3.3.2 实体类

实体对象表示对系统的重要信息。它们通常是持久的,并能在一个延续的时

期内存在。它们的主要的目的是表示和管理系统内的信息。实体类通常表示为一种逻辑的数据结构(见表3.2)。

表3.2系统实体类

3.3.3 控制类

控制类用于系统内的模型行为,用于对某一个具体的用例相关的控制或者其他业务逻辑建模。通常将协调、排序等事物处理或者涉及多个对象的复杂事务逻辑隔离在一个或多个控制类中(见表3.3)。

表3.3系统控制类

4 系统设计

4.1 体系结构设计

一个体系就是各部分一起定义整个系统的蓝图:结构,接口和通信技术。使用体系结构有这样一些意义:

(1) 软件分解成更小的块,有助于理解、管理、开发和维护软件;

(2) 软件体系结构可以帮助基于组件开发;

(3) 使用被验证的体系结构,便于管理软件的性能和保证质量;

(4) 通过正确的体系结构可以更好地实现重用性;

(5) 正式的体系结构会使系统很脆弱,难以升级和实现收缩,等等。

本系统采用MVC(Modet-View-Control)[2]的模式来设计系统结构并利用JSP/Servlet的技术来实现。本着业务逻辑和表现逻辑分离,对系统资源进行合理有效管理,优化系统性能的指导思想,设计总体框架如图4-1所示。

图4-1采用MVC设计模式的J2EE框架

系统的各组成部分如下:

(1) 客户层:在本系统中主要是Web浏览器。

(2) web层:所有的用户界面的开发和简单的业务逻辑都在这层得到实现。考虑到JSP能够嵌人HTML中,开发容易和产生的用户界面灵活等优点,故本

系统采用JSP实现用户界面,而简单的业务逻辑一般都由Servlet来开发,响应用户的查询等请求并调用业务逻辑层的JavaBean组件来实现复杂的业务逻辑。

(3) 业务逻辑层:这一层主要由EJB组件的开发来实现。会话Bean的主要任务是处理商务逻辑,客户端交互,返回给它计算结果等:而实体Bean的主要任务是表达数据库中的数据,用来完成据库的访问。实体Bean是通过JDBC访问数据库,完成记录插入、查找和删除等操作。

(4) 数据层:负责数据的存储管理、安全性管理和完整性管理等各种数据库服务,存放系统中的持久性的数据信息。

系统采用浏览器服务器模型(Browser/Server)。一般的,客户通过浏览器发送HTTP请求给服务器端Web服务器,Web服务器接收该请求并且进行相应处理,然后将处理后的结果返回到客户的浏览器中。在客户端,浏览器中呈现的正是该系统的视图部分。

系统将很好地结合使用JSP与Servlet,由JSP把用户提出的httpRequest送达Servlet, Servlet根据请求的类型不同分别进行不同的处理,选择不同的操作模块,具体地说比如说对数据库的读写更新查询操作等,Servlet处理完这些比较复杂的请求之后,选定JSP页面把最后的结果回应给使用者,此时的JSP就只是起到了视图的作用,并不做逻辑上运算只是将控制器方面传过来的资料展示给用户而己。

系统中的业务层中主要是JavaBean组件,它们负责接收由servlet传来的请求并对此进行处理,比如连接数据库执行查询等操作,JavaBean组件称为系统的模型(Model)。

4.2 系统功能设计

4.2.1 功能模块划分

网络教学系统是一个综合性的教学管理应用系统,它包含一个教育系统的很多方面,这些方面不是孤立的而是相互联系的。本网络教学系统作为网络教学的一个重要支撑平台,从功能上来看,分为网络课程管理系统、系统管理和信息交流管理三个子系统。课程管理子系统包括学生选课管理、课程资源管理、教学公告管理等功能。整个系统的功能结构如图4-2所示。

图4-2系统功能结构图

对各子系统功能模块的详细描述如下:

(1)网络教学管理

学生选课管理:学生根据自己的实际情况选取要求学习的课程的选课班级。管理员对学生选课的内容进行维护,教师可以查看,审核自己所教课程的选课情况。

课程资源管理:课程资源信息包括课程名称、课程类别、在线备课,在线浏览课件。所有注册登录的用户都可以浏览和查询该信息,管理员和教师执行对课程信息的维护功能。

教学公告发布:管理员发布某门课程的教学公告。教学公告的详细信息包括课程名称、开课时间、起止日期、主讲教师等。通过设置链接还能查看课程的详细介绍。管理员对教学公告进行维护。

学生成绩管理:包括成绩录入、修改、成绩统计与查询。成绩统计是对各门课程平均成绩的计算以及各分数段人数的统计;成绩查询则可以检索和查看任何一位学生的成绩。学生只能查询自己的考试成绩,其他功能由管理员执行。

(2)个人信息管理

教师档案管理:包括教师信息的录入、更新、查询、删除等功能。这里的教师信息主要包括教师的教育背景、研究方向、科研成果以及发表论文,专著和获奖等方面的情况。只有教师本人才能对自己的信息进行修改。管理员可执行删除功能。

学生档案查看:提供教师和管理员对学生信息的查看功能。

(3)系统管理

教学平台网络教学

平台

系统设置管理子系统 网络教学管理子系统 信息交流子系统

机构

设置 系统用户管理

息 角色,权限管理 系统日志管理 数据库操作 学期管理 课程管理 在线短消

成绩查询 班级管理 教学信息发布 网络教学 教学论坛

用户登录和用户注销。下面给出系统的详细功能设计。

4.2.2 功能实现设计

(1)类设计

①边界类

边界类设计为ISP页面,主要有以下边界类,如表4.1所示:

表4.1边界类设计

实体类设计为实体Bean,实体组件是存储在关系型数据库中的数据模型,代表了数据库中业务数据的对象视图,并提供了访问和操作数据的对象封装。实体组件具有持久性[1],支持多用户的共享访问。

使用实体组件作为业务数据的对象视图,客户端可以通过实体组件提供的接

口间接地实现对数据库业务数据的访问与操作。

③控制类

我们使用实体组件封装了业务数据,用处理特定业务功能的会话组件来封装与该业务操作相关的实体组件。由特定的会话组件控制和协调各实体组件之间的交互,把数据查询、更新和新增的业务操作迁移到业务功能层来处理。从而向客户端提供了一个简单的功能接口,减少了通过网络和跨越服务层之间的远程通讯,同时也避免了把实体组件对象直接暴露给远程的客户端,降低了两层之间的耦合程度。因此在本子系统中设计了下面这些控制类如表4.3:

表4.3控制类设计

①显示开课信息列表

入口参数:无

返回结果:结果集

②查询开课信息

入口参数:无

查询条件类型:字符串

返回结果:结果集

③增加开课信息

入口参数:

开课名称类型:字符串

开课日期类型:日期型

主讲教师类型:字符串

收费数目类型:整型

返回结果:布尔型

如果添加成功,返回TRUE,否则返回FALSE.

④编辑开课信息

入口参数:

开课名称类型:字符串

开课日期类型:日期型

主讲教师类型:字符串

收费数目类型:整型

返回结果:布尔型

如果修改成功,返回TRUE,否则返回FALSE.

⑤删除开课信息

入口参数:

课程编号类型:字符串

返回结果:布尔型

如果删除成功,返回TRUE,否则返回FALSE.

4.2.3 用例设计

设计用例是为了识别类或者子系统,其实例去执行用例的事件流。定义对设计对象或子系统及其接口的操作需求,为用例捕获实现性需求。

UML提供了版类(stereotype)这个扩展机制来区分不同类型的类。UML的创始人Jacobson定义了三种类型的版类对象类(stereotype object types):边界对象(boundary object)、实体对象(entity object)和控制对象(control object)。在ROSE中,可以设置类的stereotyp。域为<>和<>;这个阶段我们得到系统的类图和详细的顺序图。对JSP以及JavaBean组件我们现在都可以用类为它们建模,方便类图和序列图中的表示,对于系统中的用例,可以根据设计类来进一步细化其顺序图,下面显示了发布教学公告和学生选课用例的细化顺序图。

图4-3学生选课细化顺序图

在类图中我们可以看到在用例实现的过程中所涉及到的类以及它们之间的关系,这些类之间的关系是这些类产生代码的基础。同一JSP网页被分解成两个部分:客户页和服务器页其中后者和前者的关系是构建和被构建的关系(即图4-7中的Build的关系)。当网页中的表单中的内容需要提交到Servlet时,表单和它们的关系是提交的关系,调用Servlet的doPost()或doGet()方法。在UML的语法中类之间的关系主要分为以下儿种:协作、依赖、泛化、实现、积聚。协作关系在Java语法中表现为一个类对另一个类的引用,如图4-4所示。

相关文档