您好,欢迎来到微智科技网。
搜索
您的当前位置:首页网络教学系统(毕业设计论文)

网络教学系统(毕业设计论文)

来源:微智科技网
摘 要

本文分析了国内络教学应用的实际情况,认为目前我国网上教学应用虽然取得了一定的发展,但在技术实现、设计思路、系统实现等方面仍存在着一些问题,这些从不同角度影响了网上教学的质量和效率。基于以上的认识,文章在对网上教学系统建设需求进行分析的基础上,研究了目前较为流行的几种实现技术,论述了一个以Struts技术为主的网上教学应用系统实例的构建过程。Struts技术作为目前企业或商务开发中较为流行的一种软件开发技术标准,不但继承了JAVA的技术优点,而且在软件的部署、扩展、管理等方面所采用了更为先进的实现理念。因此,作为一种尝试,本系统在开发中引用了Struts的技术构架。本文通过网上教学系统这一实例的设计与实现,具体阐述了如何采用J2EE技术构架系统,如何设计系统数据库结构,以及如何最终设计实现系统的功能模块。最后总结了目前网上教学中的缺陷与不足,并对其发展提出了一些建议与期望。

关键词:网上教学系统;J2EE;软件项目管理;Struts;功能模块

Abstract

This paper analyses the real practicality of the E-Learning application in and out of the country. It puts forword that there has been great progress in our country, but there exists lots of shortage at the aspects of implement of technology, thoughts of management, realization of system. These impact the quality and efficiency of the E-Learning in different points of view. This paper, on the basis of the analysis of NTLS requirements, and of the study of the popular technology to realize the similar systems, discusses the realization of NTLS based on J2EE. J2EE is considered as a popular kind of the technique standard of the software exploitation. It not only succeeds to all the virtue of JAVA, but it has more advanced idea at the aspects of the deployment, enlargement, and management of the software. Thus, J2EE will be quoted into the exploitation of the NTLS. And it also provides the important assurance for the system achievement ultimately.In this section about the design and realization of the system, this paper explains how to design the whole system takes the technology of J2EE and how to design the data construction and how to finally realize every function mode of the system. At last, this paper concludes the disadvantages of the NTLS, and gives some advises and respects.

Key words: On-line teaching system;J2EE;Software Project Management;Struts ;Data Construction Function Mode

1

目 录

第1章 绪论 ......................................................................................................................... 1

1.1课题背景 ................................................................................................................. 1 1.2选题目的 ................................................................................................................. 3 1.3设计指导思想 ......................................................................................................... 3 第2章 项目开发管理 ......................................................................................................... 4

2.1项目管理方法 ......................................................................................................... 4 2.2开发周期划分 ......................................................................................................... 5 2.3开发过程中的几项制品 ......................................................................................... 6

2.3.1项目需求分析 .............................................................................................. 6 2.3.2项目需求变更分析 ...................................................................................... 8 2.3.3系统解决方案设计 ...................................................................................... 9 2.3.4系统构架 .................................................................................................... 10 2.3.5系统开发环境 ............................................................................................ 12

第3章 数据库结构设计 ................................................................................................... 14

3.1数据库系统简介 ................................................................................................... 14 3.2 JAVA中的数据库访问技术—JDBC ..................................................................... 14 3.3数据库的连接实现 ............................................................................................... 14 3.4数据库设计 ........................................................................................................... 15 第4章 系统设计与实现 ................................................................................................... 22

4.1系统设计与实现原则 ........................................................................................... 22 4.2系统工作流程分析 ............................................................................................... 23 4.3在线教学模块设计与实现 ................................................................................... 24

4.3.1工作流程分析 ............................................................................................ 24 4.3.2数据库设计与实现 .................................................................................... 26 4.3.3实现中的问题分析 .................................................................................... 26 4.4教学资源管理模块设计与实现 .................................................................... 31 4.4.1工作流程分析 ............................................................................................ 31 4.4.2数据库设计与实现 .................................................................................... 32 4.5网上交流模块设计与实现 ................................................................................... 32 4.6辅助管理模块设计与实现 ................................................................................... 32

4.6.1工作流程分析 ............................................................................................ 32 4.6.2数据库设计与实现 .................................................................................... 32 4.6.3实现中的问题分析 .................................................................................... 33 4.7系统测试 ............................................................................................................... 34 结 语 ............................................................................................................................. 35 参考文献 ............................................................................................................................. 37 附 录 ............................................................................................................................. 38 后 记 ............................................................................................. 错误!未定义书签。

1

第1章 绪论

1.1课题背景

网上教学是一种新兴的教学模式。随着网络技术的发展,这种模式越来越被人们所接受,各大院校也都已经将其作为自身教学建设的一个重要内容,尤其是在非典期间它的优势就更加彰显出来了。

网上教学之所以具有广大的开发应用前景,分析原因主要由以下两个方面的因素所决定:

1.广泛的社会需求。如今社会竞争越来越激烈,工作岗位对每一个人自身的知识水平、文化素养的要求正在逐步提高。越来越多的人迫切需要再学习、再培训,而时间、地点等诸多因素的不便往往困扰着他们。同时,在校生由于面临教学方式的变化,教学内容的增多,自身条件和兴趣点的差异, 也迫切需要一种新的教学模式来满足他们的需求。

2.网络正快速进入人们的日常工作、学习和生活中,通过网络来获取知识己经成为一种很自然的方式。网络教学与传统教学模式相比,具有超越时间、超越空间的优势。它可以充分发挥网络信息资源的优势,随时随地帮助学生解答疑问,获取所需知识,增加了教学的实时性。而且它还是一种简单、高效的教学模式,被越来越多的人所认可。

目前,世界各国都十分重视网络教学的发展,纷纷将其列入的教育发展 规划中,力争在未来人才的培养中处于领先地位。

美国是当今世界网络教育规模最大的国家。在美国,网络大学开设的学历、学位课程达到4.9万门,基本覆盖了美国高等学校的所有学科和专业,44%的美国高校向全社会提供网络教育,至少有200万美国人接受网上课程教育。早在1996年克林顿就宣布要把教育广泛架构在Internet上,2000年以前把每一间教室和每一个图书馆,都联到Internet上。1998年美国更是投入510亿美元的巨额预算用于实施该计划,旨在使每个公民都能利用信息技术进行终身学习。迄今为止,网络教育己经成为美国人才教育与培训中不可或缺的组成部分。据2004年Registered Rep和波士顿金融协会对52000多投资专业人员所做的调查表明:约60%的金融顾问和投资专业人员正在寻求某种形式的金融服务证书,其中近50%的人员将通过在线学习的方式获取注册理财师证书。

在英国,在1998年就以立法形式规定,在投入的教育经费中6%必须作为学校专款专用的计算机购置费,以保证英国中小学都能连接Internet网。1997年,提出了“全国学习网”计划:将英国3. 2万所中小学全部联网,使45万名中小学教师

1

和900多万名学生都有机会接触和利用最先进的信息技术。同时,要求全国大专院校、图书馆、博物馆和研究机构都要和“全国学习网”联通,使该网成为继续教育、职业培训的渠道,达到创建网络化“知识社会”的目的。据报道,最近英国正预备投入大批资金致力于英联邦共同体国家虚拟大学的建设。

在日本,邮政省和文部省用400亿日元的资金,在中小学校彼此之间以及与社会各机构之间建立大容量光纤通信网络,并连接Internet。从2000年开始,把教师的培训“信息设备操作”课程列为教师培训学分制的计算机考核范围中。

在新加坡,制定了计划,在1997至2002年的MIT总体教育信息化规划中,投资20亿新元用来购置电脑、为学校建立全面的网络、开发软件及教材和教师培训等。

我国在1998年9月由教育部批准清华大学、湖南大学、浙江大学、北京邮电大学作为现代远程教育首批试点高校,开始了真正意义上的网络远程教育。目前全国网络教育68所试点院校所开设的专业已达到9大类153个专业,在学人数近250万人。网络学生的构成已逐步扩大到白领、工薪族、需要申请双学历的在校大学生、教师、军人等多层次多元化群体。这些试点院校通过设立专门教学机构进行网络教学,加大对网络教学的宣传力度和资金投入,与国内外社会各界进行广泛合作,取得了很好的效果。

经过近几年的发展,我国的网络教学已经初具规模。除了经国家批准的68家教育试点高校之外;经Google搜索引擎在网上搜索,在“网上教育”目录下,共列出网上教育公司62家,网上教学门户站点个,各类远程培训和职业教育机构46家,网上教学管理系统115个。

但是,从目前国内各教育机构和公司已经建成的教学网站情况来看,仍存在以下几方面问题:

1.从使用角度来讲,大多数网络教学系统偏重了教师的教学、教学内容的设计及课件制作的水平,而忽略了网上学习环境的建设和学习实践活动的设计。在学生的自学过程中,缺乏协作学习的设计,及教师的学习指导和建议。

2.实现的角度来讲,虽然多数网站使用了服务器端技术,如ASP, PHP,SAPI, Perl等,但是在稳定性,简易性,安全性方面仍存在或多或少的问题。

3.能整合角度来讲,各个网站虽都具有各自的特色,但是从整体角度上缺乏一个规范或标准,面临着系统平台的重复开发所造成的浪费,以及网络教学应用效益不高所带来的困扰。

本文通过一个基于J2EE技术构建的网络教学系统的设计与实现,探讨了网络教学系统在B/S结构和Internet环境下的实现方法。介绍了网络教学系统中的数据库设计,详细设计了教学系统的基本功能,并对部分系统进行了编码实现。在实现过程中重点介绍了遇到的实际问题及其解决措施。

2

1.2选题目的

要构建一个网络教学系统实际上是一件复杂的事情,它不但需要有一定的技术支持,而且还要具备相关知识的储备。从技术掌握到人性化设计,从设计理念到实施手段,从资源的计划到资源的管理,这些都需要在课题实施过程中加以认真考虑。同时,这些内容也都体现出了软件项目实施与管理理念中的一些共性问题。因此从课题的着手阶段起,作者就采用了软件项目管理中的项目实施方法,同时结合课题的具体情况,制定了项目开发计划。

项目选用了迭代式开发。在进行项目需求分析、用况分析,以及使用MicrosoftPR和ECT项目管理软件进行辅助开发的基础上,确定了系统构架和工作流程,并将整个开发过程划分为3个周期,逐步完成系统的设计与实现。

1.3设计指导思想

以现代教育技术理论为指导,以现代软件开发技术和理念为手段,以教学应用需求为依据,以教学资源为基础,构建一个初步的基于J2EE系统,并能够应用到学院的校园网建设中,形成一个有特色、技术网络教学应用有实用价值的网络教学系统,为以后网络教学系统的进一步开发打下良好的基础。

3

第2章 项目开发管理

现代软件项目开发管理是实施现代软件项目的重要理论和实践依据。在现代软件项目中,项目竞争的压力,投资的利润与风险,客户的多元化以及快速更新的技术,种种因素结合起来,都为软件开发过程中的管理工作带来了巨大的挑战。为了适应软件项目开发的特点和市场的需求,人们在总结现代大型软件项目的成功经验和失败教训的基础上,吸取了传统的管理手段与技术实践中有益的部分,将其运用到新的改进的软件过程管理中,形成了现代软件项目管理方法。

就其作用来讲,现代软件项目管理方法在分析了大量软件项目实施的过程的基础上,对软件开发的过程进行了分解,对复杂问题,如项目的风险度控制、资源的管理等量化和细化,提出了一些标准,这些都极大提高了软件开发的可操作性、可控制性,增加了项目成功的几率。

在网上教学系统的构建过程中,作者将所研究开发的课题整体作为一个软件项目进行实施,在此过程中运用了现代软件项目管理的一些开发与管理理念,发现这样做可以很好的利用各种资源,灵活控制项目开发进程,降低了项目的总体风险度,并且对于项目的整体开发思路和项目的进度情况可以做到一清二楚。

2.1项目管理方法

项目选用现代软件开发过程管理方法一一迭代式开发方法管理整个项目的开 发过程。迭代式开发是现代软件开发过程管理方法,它要求在开发过程中首先建立一个系统的初步模型,然后,在以后的开发过程中不断完善系统的需求管理,系统 核心构架的设计,以及系统功能的开发与评估,直到达到软件用户与项目实施者预期实现的目标。它强调整体的系统开发,而非个体的实现,这样可以降低项目的整体风险。

4

名称 ID 权限 1 管理员 1 ID 管理 ID n 姓名 教师 m 制作 m 查询 学生 m 系别 n 修改 删除 n 姓名 系别 m 课件 名称 大小 上传时间 图2.1 系统E-R图

2.2开发周期划分

根据迭代式开发管理方法,首先对项目的开发周期进行了划分。本项目共划分为3个周期,第一个开发周期:使用2个月的时间完成系统的初步模型构建;第二个开发周期:使用3个月的时间实现系统的二次开发,完善系统功能:第三个开发周期:3个月,主要用来进行系统的测试和修改,并进一步完善系统。

5

2.3开发过程中的几项制品

在软件迭代式开发过程中,项目的开发通常分为几个开发周期来完成。每一个生命周期都包括工程阶段和生产阶段,他们在不同阶段内通常要产生不同的制品。这些制品概括起来主要分为5个制品集:管理集、需求集、设计集、实现集和实施集。

表2-1 系统信息

名称 登陆系统 选课系统 网络课程 播放系统 用户名、密码、确认信息 学历、年 级、课程 课程 信息资源报错系统 系统维护 程序下载 管理系统 用户名、密码 系统管理非法输入 员口令 程序选择参数 功能 输入 处理 输出 查询数据库、发回信息到客户端 登陆成功或登陆失败信息 数据库中的文件 课程的视调用资源调用频、传输管理程序 Error.jsp 到客户端 进入服务器登陆数据库 发送到服务器下载响应的程序安装软件 显示与输 相应资源入内容相播放视频 信息 应的课程 相应错误提示文档

从应用的角度来讲,这些制品是开发一个大型项目中必不可少的要素。有些用来进行项目的可行性研究,有些用来指导具体的开发过程,有些用来进行系统维护,还有一些是为系统部署和今后改进工作提供帮助的。现选择本项目开发过程中的产生几个关键性制品做一详细介绍。 2.3.1项目需求分析

项目需求分析是开发一个项目的前提和基础,它的完成质量直接关系到最终产品的质量和价值。

下面的需求分析是在项目开发的第一个周期内所作的。此时项目主要是为实现网上课程点播而开发的。

6

1.系统各组成部分的相关功能简介

登录系统:用于对用户或系统管理员进行身份确认。 选课系统:根据用户的选择显示或调用相应的课程。

网络课程播放系统:接受客户端的请求,从服务器端数据库中下传指定课程的视频文件;

信息资源管理系统:用于查询客户个人信息,添加或删除课程信息,管理数据库中的视频文件;

报错系统:遇到非法操作或系统内部出现问题时报告相应的出错信息;

系统维护:用于系统管理员日常的数据维护,以及当系统出现异常时或用户遇到问题时提供技术支持;

程序下载系统:提供维持系统正常运行所需要的程序下载。 2.系统用例模型

选课系统 程序下载系统 网络课程播放系统 用户 登陆系统 身份人证 管理 系统管理员

信息资源管理系统 系统维护 、

图2.2 系统用例图

7

2.3.2项目需求变更分析

在项目开发的第二个周期中,项目的需求发生了变更,已经不再是完成单纯的课程点播功能,还要结合目前的网络教学应用情况,开发出一个较为完整的网络教学系统。因此从系统功能的角度来讲,从系统的完整性来讲,从系统的通用性,可扩展性,可移植性和可操作性来讲,就需要重新变更我们原有的需求分析结果。 1. 功能需求

表2-2 网上教学系统功能表

功能 系统名称 输入 1. 打开相关页面 2. 打开注册页面,调用数据库用户选择信息 中用户表信息 3. 通过用户登陆信息,调用相关数据,帮助用户管理自己的相关信息 在线课程选择、查找信息 用户登陆信息 用户提问与解答信息 授课教师查找信息 1. 调用相应课程、视频传输到客户端 2. 完成用户身份验证并记录相关信息 3. 查询在线用户表,返回客户端 4. 记录解答过程中的问题与答案 5. 完成客户端的信息查询,将相应结果返回客户端 6. 根据教师登记的身份,显示相应信息 7. 帮助教师完成课程的添加、修改与删除 8. 对用户不同的输出显示不同的结果 输出所选择系统的页面和数据表中的信息 处理 输出 网络教学应用系统 在线教学系统 显示与输入内容相应的课程;播放选定课程的视频;输出与用户信息相关的页面;显示在线用户信息;显示答疑情况;显示系统中所有登记教师的信息;显示登陆教师的信息与其提交的课程的情况。 8

续表2-2网上教学系统功能表 系统名称 教师资源管理系统 输入 处理 输出 显示用户所要查找、修改、删除的信息;显示相关的系统操作页面 资源的查找信1. 根据用户的操作信息完成息 相关的数据库表的调用以用户的操作信及操作,并将结果准确返回息 客户端页面 用户登陆信息 2. 完成用户身份验证 3. 帮助用户完成资源信息的添加

2.系统各模块的功能简介 系统主要包括以下4个部分:

在线教学系统为主要教学平台。

教学资源管理系统,可以为在线学生提供教学资源的查询与下载,为授课老师 提交网络课程视频文件与课件提供操作平台。

学习交流系统,可以帮助在线学生通过论坛、留言、在线交流等网络交流形式 及时的交换学习心得,相互提高对知识点的把握程度。

辅助系统,主要为用户提供技术支持,为系统管理员提供管理系统的平台。 2.3.3系统解决方案设计

该系统解决方案是在项目开发第二个周期内完成的。它与第一周期内的解决方案在工作原理和技术运用上是一致的,都采用了目前流行的B/S模式和J2EE的多层应用模式。 1. B/S模式简介

B/S (Browser/Server)模式,顾名思义,就是浏览器/服务器模式,对传统的C/S (Client/Server)结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3层结构。与C/S相比,B/S模式具有如下优点:由于对数据库查询、浏览的功能都在Web Server端进行,因此系统管理和维护工作大大减少;不客户平台,可以方便的和其他业务系统连.J2EE简介

它不仅具有”一次编写,到处运行”,JDBC API, CORBA技术以及能够在Internet应用中保护数据,它还提供了对EJB (Enterprise JavaBeans ), Java Servlets API,JSP (Java Server Pages)以及XML技术的全面支持。其最终目的是不仅可以比以前更快的速度向市场推出创造性的客户解决方案,而且这种平立的、基于组件的J2EE解决方案不会被束缚在任何一个厂商的产品和API上。

9

J2EE体系结构提供了中间层集成框架,从而满足了低费用而又高可用性、高可靠性以及可扩展性应用的需求。

J2EE平台规范是由SUN公司定义的,用于简化分布式企业级应用开发与部署的基于组件的模式。它提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型是根据功能把应用逻辑分成多个层次,每个层次支

持相应的服务器和组件,组件在分布式服务器的组件容器中运行(如Servlet组件在Servlet容器上运行,EJB组件在EJB容器上运行),容器间通过相关的协议进行通讯,实现组件间的相互调用。 3.系统解决方案

系统通过采用以上两种技术手段,可以基本解决系统的实现问题。其解决方案为: 用户在浏览器一端通过调用JSP页面,将应用请求传递到应用服务器。系统接收到请求后,先对其中的程序段进行编译,由java虚拟机进行执行。在执行过程中它可能需要访问其他的Servlet程序或相关的JavaBean,或根据需要对数据库中数据进行操作,调用资源服务器中的相关内容,然后将最终执行结果以JSP页面的形式返回给用户,从而实现系统的相关功能。 2.3.4系统构架

该系统构架是在开发过程中的第二个周期内完成的。

在设计与实现一个系统时,系统构架往往作为主要的设计元素要先行确定下来,这也现代项目管理的一条基本原则。这样做的目的是降低项目的风险系数,为以后的开发工作提供一个较为可靠的基础,因为只有构架合理的系统才可能获得最终的成功,同时它也才有可能为整个实施过程提供基本依据。

网络教学系统是一个建立在Internet环境中的综合平台,因此在进行系统构架过程中,作者从网络角度,从服务器端系统构成的角度,对系统的构架进行了设计。 1.系统网络构架

在Internet环境中,系统是由各应用子网内部的子系统构成的。而各应用子系统本身可以使用系统平台,也可以根据自己的情况设计通用的系统平台。网间可进行资源的共享与相互查询。

同时,各应用子系统在子网中有着完整的构成。系统与系统之间有着相同的服务器配置:主WEB服务器、数据库服务器、视频服务器、素材服务器、文件服务器。 系统在应用过程中,数据是通过以下几个层面进行传输的:用户通过客户端提供的基于WEB的用户界面来访问系统,系统根据用户的请求,通过反馈相应的数据改变用户显示界面,达到为不同用户提供不同服务的目的;当用户提出需要时,系统通过接收用户提供的信息数据,作出判断,进行相应处理,将处理结果返回用户端。同时,对用户的异常操作进行处理;在用户与系统进行交互期间,存储在信息层中的资

10

源信息以及数据库中的数据为其提供了强大的数据支持。

客户端层 基于WEB的用户界面

业务层 功能:1.接收处理返回用户数据

信息层

2.网络教学管理 3.教学资源管理 4.系统维护 用途:网上,远程教学,信息资源共享 教学资源(课程,课件,软件,教学素材,文档),数据库表 图2.3 系统多层应用模型

2.系统构架

在构建整个系统时,一项重要的工作就是根据需求分析和系统的解决方案来确定系统的总体构架。

作为网络教学系统来讲,其设计目的就是为教学双方搭建一个实用的教学平台,在此平台上可以进行教学交流和资源的共享。因为系统采用B/S模式,系统的最终目标实现要靠服务器端的系统设计来完成。它的构架不但决定了系统的完善程度,而且也决定了系统的最终性能。

系统所要实现的功能被系统构架划分为4个主要功能模块,并且在每一模块中又对其做了更细致的描述。

11

网上教学应用系统 在线教学 教学资源管理 学习交流 辅助管理 课程点播 网上答疑 授课教师信息查询 信息查询 资源提交 资源管理 留言版 在线交流 论坛 网站管理 帮助系统 意见与建议 图2.4 系统构架图

2.3.5系统开发环境

软件过程中,环境(包含软件工具的选择)是与执行相关的一项管理集制品。正确选择、配置好开发环境,不仅有利于系统的实现,而且也有利于以后的产品部署。环境的配置通常要在明确系统解决方案后进行。

在本系统的构建中,选择了如下软件工具作为开发环境配置: 1. JAVA语言编译环境

本系统是基于J2EE技术构建的,故在系统开发和部署时应率先考虑配置合适的JAVA语言编译环境。

JDK(Java Development Kit)是一个官方的免费JAVA语言开发工具集,选用它可以较好的支持JAVA,所以系统采用了j2sdk-1_ 4_1_ 02版本。需要注意的是,在安装完后还要配置相应的环境变量: Path: C:/j2sdkl. 4. 1_ 02\\bin JAVAse HOME: C j2sdkl. 4. 1_ 02

CLASSPATH:.\\;C:\\j2sdk1.4. 1 02\\lib\\dt. jar;C: \\j2sdkl. 4. 1 02\\lib\\ tools. jar;

12

2.应用服务器

要通过JSP技术实现服务器端的程序调用,还要为其配置用来支持JSP的应用服务器。目前可使用的应用服务器有多种,系统采用的是Resin-3.0.0-beta.Resin是一个免费的JSP引擎,和Tomcat功能一样,但该软件具有安装简捷,部署方便的优点。 3. JSP开发环境

JSP(JavaServer Pages)是由Sun态网页技术标准。通过在传统的HTML就构成了JSP网页。它提供了在HTML释执行的能力。公司倡导,许多公司参与一起建立的一种动网页文件中加入Java程序片段和JSP标记,代码中混合。

SUN公司在开发出JSP标准以后,很多IT厂商看到了它的广阔前景,纷纷开发出一系列相关产品,加入了对JSP技术的支持行列。目前,就JSP开发工具来讲,主要包括以下三类;集成开发环境(工DE),这类产品集编程,测试于一身,其中具有代表性的有:JBuilder,JDeveloper,VisalAge,VisualCafe;专用开发工具,这类产品可以将JSP代码方便的嵌入到页面中,而且可视化的操作环境还可以帮助用户快速的设计并实现自己的创意,其中具有代表性的有:Dreamweaver, JRun;纯粹的代码编辑工具,这类产品编辑功能强大,适合熟练编程语言的开发者使用,其中具有代表性的有:EditPluso系统选择DreamweaverMX 2004作为JSP开发环境配置。该软件可以选择使用可视化设计与代码编写两种方式中的一种进行JSP的开发,是一种可以快速部署JSP的软件。 4.数据库系统

通常情况下,每个系统都需要数据库系统的支持,它可以用来帮助系统进行日常数据的维护与管理。

本系统使用DB2数据库系统,它是由IBM公司开发的,功能强大,同时内嵌有JDBC,支持JSP对它的访。

软件开发过程中的制品是项目的重要组成部分,它们中的每一项都有自己特殊的作用,是保证整个项目顺利实施和快速部署的重要依据。以上制品只是软件项目开发过程制品中的几个,它们在开发过程中可以通过开发文档进行管理和保存。对于一个复杂的大型软件项目来讲,维护好这些文档是一项很重要的工作。它不但可以为当前的开发团队提供帮助,而且还可以为以后的版本改进,客户应用提供可靠的依据。

13

第3章 数据库结构设计

3.1数据库系统简介

随着计算机技术在现代社会各领域的广泛应用,数据库技术的作用也越来越举足轻重。大到银行、通信、航空、气象等领域,小到商场、超市,凡是与数据打交道的地方,都要依靠数据库技术进行管理。

当前市场上出现的数据库系统多种多样,常见的有:DB2,Oracle, SQL

Server,MySQL, PostgreSQL, Access等。本系统的开发使用了IBM的DB2数据库系统。BM DB2通用数据库是全球第一个具备网上功能的多媒体关系数据库管理系统。它具有操作简便、安全性高、并行性好等特点。

3.2 JAVA中的数据库访问技术—JDBC

JDBC技术是Java Database Connectivity的缩写,它是JavaSoft公司设计的Java语言的数据库访问API最初的Java语言并没有数据库访问能力。JDBC是第一个支持Java语言的标准的数据库API能方面JDBC与其目的在于使Java程序与数据库服务器的连接更加方便。在功能ODBC相同,它给程序员提供了统一的数据库访问接口。 JDBC访问数据库的过程是这样的:用户通过浏览器从Web服务器上下载含有Java Applet的HTML页面。如果其中的Java Applet调用了JDBC,则浏览器运行的Java Applet直接与指定的数据库建立连接。

JDBC是一个与数据库系立的AP工,它包含两部分:JDBC API和JDBC DriverAPI. JDBC API提供了应用程序到JDBC Driver Manager的通信功能;JDBC DriverAPI支持JDBC Driver Manager与数据库驱动程序的通信。

JDBC Driver Manager类似于ODBC Driver Manager,用来管理各数据库软件商提供的JDBC驱动程序。JavaSoft公司提供了一个通用的JDBC Driver Manager,而各数据库公司只需提供一个与ODBC类似的JDBC驱动程序,开发人员就可以用Java语言访问数据库。此外,JavaSoft公司还提供了一个特殊的驱动程序,JDBC_ODBC桥,该软件支持JDBC通过现有的ODBC驱动程序访问数据库服务器。

3.3数据库的连接实现

在DW中通过如下代码实现与DB2数据库的连接: <0,'&a.page contentTvpe=\"text/html: charset=gb2312\" errorPage=\"error. jsp\"%>

14

<% try {

language=\"Java\" import='java.sql.'\"

String theDriver request. getParameter(\"Driver\");

String theConnString=request.getParameter(\"ConnectionString\"); String theUserName=request. getParameter(\"UserName\"); String thePassword=request.getParameter(\"Password\"): if (theDriver!=null&&theConnString!=null)

Driver aDriver=(Driver)Class.forName(theDriver).newInstance(); Connection aConn=null;

if ((theUserName !=null)}{(thePassword !=null)) {

Connection aConn=

DriverManager.getConnection(theConnString,theUserName,thePassword); } Else {

Connection aConn= DriverManager.getConnection(theConnString):

}

catch (Exception e) {

out. println(HandleException(e)): } %>

3.4数据库设计

数据库设计应首先考虑用户的需求,在此基础上,还应满足安全性、数据完整性及可扩展性方面的要求。

在网络教学应用系统中,总共有4个功能模块。.在同一系统的4个不同模块中,所使用的系统数据在作用上既有区别,又有联系。每一模块都要涉及到多种表,而这些表及表与表之间的关系就是数据库设计的重点。在对这些功能模块进行需求分析的基础上,根据实际情况,将所有表大体分了3类:系统管理类,教学资源类和辅助应用类。

15

系统管理类数据包括用户的信息、系统发布的公告和系统新闻等。

教学资源类数据包括课程、课件、软件、图片、地址,文档等资源的说明等信息数据。

辅助应用类数据包括学科分类、年级分类等用来辅助进行分类查询或进行统计分析等应用操作的数据。

用户 系统 维护系统运进行统计分析,协助系统查询 在线教学 资源管理 网上交流 辅助管理 系统管理数据 辅助应用数据 教学资源数据 图3.1 系统数据库设计示意图

这样分的目的是:一方面便于对系统数据进行组织与存储,另一方面便于理清表之间的关联,在系统建成后,有利于管理员进行维护。

数据完整性是使无序的数据条理化,确保数据一致起来,并且正确的数据被存放在正确的位置的一种手段,是系统能否正常运行的重要保证。因此,在系统数据表的设计中除了充分考虑现有模块功能需要,还应尽量减少各表之间的关联,如实在避免不了,也应当谨慎考虑主外键的设置。如在用户表的设计中,表本身要作为用户登陆

16

系统,教师进行身份认证,管理员管理系统的重要依据,因此,整个用户表要包含用户、教师、管理员的信息。然而,用户、教师和管理员信息在应用又有一些差异,譬如作为一个学生用户来讲,他在登陆以后,系统应该可以了解到他是哪一个年级的;教师用户登陆后,系统可以帮助在线学生查询到在

线老师的信息。因此,在表中通过添加主键来唯一识别用户的身份,通过添加外键将用户与其相关特定信息建立关联。另外,在系统的网上交流模块中,论坛也要有用户表。考虑到论坛用户与系统用户所管理用户的信息内容具有很大差异,要将两个表合二为一进行统一管理与维护,不但占用资源较多,而且使用中容易发生错误。因此,将两个表分别设计,这样减化了表的数据结构,也使得表的作用也更加清晰明了。 系统中各数据表之间的关系如下: 1.系统管理类:

单独的表包括:服务器信息表、留言表、论坛表情表、论坛规则表与其他表有关联的表包括:用户信息表、站内公告表、站点新闻表、论坛用户表

单位用户表 单位用户ID 用户信息表 单位用户ID 年级ID 系统ID 用户名 系统分类表 单系统ID 年级表 年级ID 教师信息表 教师ID 图3.2 用户信息表与其他表的关系

17

站内公告表 系统ID 系统分类表 系统ID 图3.3 站内公告表与其他表的关系

18

站点新闻表 系统ID 系统分类表 系统ID 图3.4 站点新闻表与其他表的关系

论坛用户表 用户ID 论坛栏目表 栏目ID 图3.5 论坛用户表与其他表的关系

2.教学资源类:

单独的表包括:教师信息表与其他表有关联的表包括:信息资源表、信息下载表

19

资源类型表 资源类型名 年级表 年级ID 年级ID 学科ID 教师名 学科表 学科ID 教师信息表 教师ID

图3.6 信息资源表与其他表的关系

信息下载表 信息资源ID 信息资源类 资源类型表

信息资源表 信息资源ID 图3.7 信息下载表与其他表的关系

3.辅助应用类:

单独的表包括:年级分类表、学科分类表、系统分类表、软件分类表、资源类型表、单位用户表、

20

在线用户登记表与其他表有关联的表包括:论坛栏目表、论坛帖子表

论坛栏目表 学科ID 学科表 学科ID 图3.8 论坛栏目表与其他表的关系

论坛栏目表 栏目ID 论坛帖子表 论坛栏目ID 表情ID 论坛表情表 表情ID 图3.9 论坛帖子表与其他表的关系

21

第4章 系统设计与实现

4.1系统设计与实现原则

在系统的构建中应遵循以下原则: 1.具有一定的通用性、可扩展性

2.功能模块性原则:模块的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。模块性是通过指定具有单一功能并且和其它模块没有过多联系的模块来实现的。

3.系统结构深度适当原则:深度表示从根模块到最低层模块的层数,层数设置过多不但增加系统的复杂度,而且用户使用起来也会产生厌烦。 4.良好的容错功能 5.系统响应时间尽可能短 6.具有一定的可操作性和可移植性 7.数据一致性原则

8.系统应可靠,维护起来方便

9.在设计用户界面时通常要满足以下原则: (1)统一的风格 (2)较好的视觉效果 (3)网页简洁,便于传输

(4)用户界面的友好性、透明性 如下图所示:

22

图4.1 登陆窗口

4.2系统工作流程分析

23

用户访问 网上教学系统 在线教学系统 教学资源管理系统 网上交流系统 辅助管理系统 用户管理 验证身份 用户注册 用户信息修改 图4.2 系统工作流程

工作流程描述:用户进入系统后,根据需要登录,然后根据分配的权限,可以进行相应的操作。

4.3在线教学模块设计与实现

4.3.1工作流程分析

24

在线教学系统 课程点播 网上答疑 课程提交 教师信息查询 分类显示 关键词搜索 课程点播 登陆 登陆 授课教师信息验证,登记 验证 课程信息 课程播放 学生平台 教师平台 退出 选择在线教统一解答 统一讲解 教师信息修课程管理 提问 解答 统一讲解 退出 课程提交 信息修改 退出 退出 图4.3 在线教学系统工作流程

工作流程描述:用户在进入后可选择相应的功能,只有在需要登陆时才提供身份说明。

(1)课程点播:或根据课程列表,或根据课程的分类显示结果,或根据关键词搜索得

25

到的结果,用户选择相应的课程进行播放,同时还可以查询到课程的详细信息。 (2)网上答疑:用户登陆后,系统验证用户的身份。通过验证后,将数据自动添加在线用户表中,同时根据用户的身份不同,转到不同的操作平台。用户使用完系统退出时,系统删除其在表中的信息记录。

(3)课程提交:这一部分主要是方便教师提交课程材料的。通过这一平台,教师可以对自己所提交过的所有资料进行修改、删除,并且还可以修改自己的个人信息。 (4)教师信息查询:主要为学生提供方便。学生可以查到系统登记的所有老师的个人情况介绍,对自己所要请教老师的专业有所了解。 4.3.2数据库设计与实现

为保证该模块的正常功能的运行,要构建以下数据库表:资源信息表、资源分类表、学科表、用户信息表、教师信息表、在线用户表、问题与解答。它们的具体实现见附表。

图4.4 数据库的录入

4.3.3实现中的问题分析

1.课程点播play. jsp

网上课程视频资源通常以流媒体的方式在网上传输。当带宽资源有限时,课程采用什么样的视频压缩技术决定了课程实时播放和音视频同步的效果以及同时在线观看人数。现在工nternet上使用较多的流式视频格式主要有以下三种:

RealNetwork公司的RealMedia、微软公司的ASF以及苹果公司的QuickTimea。本系统采用RealNetwork公司的rm格式来实现课程的在线播放。这种格式的文件可以在28K到1200K的带宽环境下获得高品质的在线音频和视频观看效果,制作技术

26

简单,是现今网络中较为流行的流媒体传送方式。

用来实现课程点播的JSP代码片断如下:

<%@page contentType=\"text/html; charset=gb2312\" language=\"Java\" import=\"java.sql.\"\" %>

<%@include file=\"Connections/linkIjsp\" %>

\"

type=\"audio/x-pn-realaudio-plugin\" width=\"362\" height--\"281\" controls=\"ImageWmdow\"

console=\"cons\">

印aram name=\"SRC\" value=\"otsl_play.rpm\">

\" t

ype=\"audio/x-pn-realaudio-plugin\" width=\"368\" height=\" 100\" controls=\"All\" console=\"cons\"

>

……

在此代码片段中,课程播放功能是通过指定的object对象来实现的。 在jsp页面中通过<<%@ include file=\" Connections/linklJsp\" %>

Connections/linkl.jsp来建立与数据库中的课程资源表的连接。用来指定播放源的则是表中的URL字段。 2.课程查询find. jsp

在实现课程查询过程中主要用到了数据库语言中的“SELECT*FROM数据库名WIRE字段LIKE‘关键词’”语句。

通过index. jsp指定选择域来选择查询分类,指定文本域来输入查询关键词,然后系统将用户的请求参数传递给find. jsp页。在此,页面通过如下代码将分类信息

27

request.getParameter(\"SORT\")赋予参数MMCoParam,将关键词输入信息(request. getParameter (“WORD”)赋予另一参数MuIColParaml 。

<%

String RI_ MMColParaml=“0”; if (request.getParameter(\"WORD\") !=null)

{R1_MMColParaml=(String)request.getParameter(\"WORD\");}

<%

String R1_MMColParam=“0“;

if (request.getParameter(\"SORT\") !=null) {RI-一 MMColParam=(String)request.getParameter(\"AREA\"); }

%>

然后利用上面提到的数据库语句就可以实现用户的查询。 3.网上答疑

在网上答疑中学生登陆后需要看到在线的教师,同时教师也要看到有哪些学生在与其交流。通过设计一个在线用户登记表就可解决这一问题。

用户一旦登陆成功,系统自动将其添加到表中;当学生通过在线老师显示界面选择了老师以后,系统会将其选择记录下来;系统会通过数据库检索到这一信息告知该老师,有哪些学生正在提问;当在线的教师或学生离开后,系统会随后删除他的在线信息。

这是实现网上答疑的基本jsp页面构架。其中,Quit. jsp没有相应的界面显示,它只是为平台提供一个隐性的退出功能,在此,还要完成用户信息在系统在线用户表中的注销。其实现代码为:

<%@page contentType=\"text/html; charset=gb2312\" language=\"Java\"

import=\"java.sql.*\" errorPage=\"\"%>

<%@include file=\"Connections/linkl.jsp\"%> <%

String Prepared)_Param=null;

If(session.getValue(\"MM_Usemame\")!=null)

(Prepared)_Param=(String)session.getValue(\"MMee Usemame(); %> <%

Driver DriverPrepared1=(Driver)Class.forName(MM_link1_RIVER).newInstance(); Connection ConnPreparedl=

DriverManager.getConnection(MM_linkl_ STRINQMM_linkl一SERNAME,MM_linkleePASSWORD);

PreparedStatement Prepared I=ConnPreparedl.prepareStatement(\"DELETE FROM

28

ADMINISTRATOR.ONLINE WHERE ONLINER=”'+Preparedl_Param+“'”); Prepared 1.executeUpdate(); %>

退出并注稍在线用户</tiitle> </head> <body><p><jsp:forward page=\"ots_index.jsp\" /> </body> </html> <%<p>ConnPrepared 1.close(); %><p>如下图所示:<p>29<p>图4.5 教师解答问题<p>4.实时问题解答<p>实时问题解答实际上就是涉及到一个页面刷新显示的问题。实现刷新的方法很多,可通过利用JAVA, CGI, JavaScript等来实现。其中通过HTML语言的META也可以完成,只需要在开头部分键入如下代码段: <HEAD><p><META http-equiv=\"refresh\" content=”秒数” url=\"URL\"> <TITLE>

url的参数可以是刷新的内容,要跳转的地址(包括本页)。 5.用户身份认证

进行用户身份认证是为了便于系统管理员进行管理,防止外来因素干扰系统的一项重要举措。常用的一种方法是:进入系统,首先进行身份认证。但本系统中,不同的模块对用户身份确定的目的是不一样的,并且先进行身份认证的做法了系统的用户群,不利于系统的推广。因此,采用了根据实际需要,进行用户身份认证的方法。如在本模块的实现中,网上答疑和课程提交就要求用户提供身份说明,前者是为了在

30

答疑是提供登陆用户的身份,后者则是考虑了系统的安全性。而在线课程和授课教师信息查询作为一种系统提供的通用功能,就无需用户的身份认证了。

4.4教学资源管理模块设计与实现

4.4.1工作流程分析

教学资源管理系统 资源管理 信息查询 资源下载 资源提交 登陆 分类查询 验证身份 关键词查询 资源信息显示 登陆 资源下载 验证身份 修改 删除 信息显示 退出 信息显示 资源下载 用户信息修改 资源管理 提交 删除 退出 退出 退出 图4.6 教学资源管理系统工作流程图

31

4.4.2数据库设计与实现

在此模块中需要使用到的数据库表有:资源信息表、资源分类表、用户信息表。它们的具体实现见附表。

4.5网上交流模块设计与实现

该模块主要提供了一个利用网络进行交流的平台。其中有3种较为通用的交流方式:留言板、论坛、实时会话。

在此模块中除了留言板所使用到的表之外,论坛与在线交流都脱离了系统用户表,另外新建了自己的用户表。需要设计与使用的表有:用户信息表、留言板;论坛用户表、论坛栏目表、论坛帖子表、论坛表情表、论坛规则表;在线用户表、实时会话记录表。

4.6辅助管理模块设计与实现

4.6.1工作流程分析

工作流程描述主要为系统正常运行提供帮助,流程分4部分:

(1)网站管理:管理员登陆后,系统会根据其身份自动转到相关页面。单位管理员在此可以对本单位的用户进行管理:站点管理员可以添加本站点的新闻和公告;系统管理员则可以对所有数据进行维护。

(2)帮助系统:在网站管理中系统管理员可以通过修改系统帮助信息,为用户提供帮助。同时,每一个站点管理员也可以填写本站点的帮助信息。

(3)意见与建议:可以通过留言的形式留下自己的意见与建议,系统默认的接受者为系统管理员。

(4)联系方式:用户可以查询到各管理员的联系方式,或直接留言。 4.6.2数据库设计与实现

该模块用来维护系统所有使用到的数据库表,包含未确定的用户身份申请。未确定用户是指通过注册在系统数据中有记录,但是他们的身份还没有经过管理员的证实。对于这一点是通过在用户表中额外添加了Reliable字段来实现的。

32

4.6.3实现中的问题分析 1.资源管理

在系统的教学资源管理中,教学资源的种类较多。而每一种形式的资源类型特点存在较大的差异,在它们的管理具有一定的难度。因此,在建表时,对几种资源进行了合理分类,提取出它们共性的特点和属性,同时,利用添加外键的方式将它们较为个性的部分提取出来单独列表。 2.系统维护与管理 (1) 系统访问权限管理

访问权限设置是一个系统多权限系统的设计的关键。本系统根据要求,对于用户权限划分为6个等级,普通用户、学生、教师、单位管理员、站点管理员、系统管理员。

(2)数据库维护

在系统的运行过程中要注意对数据库进行备份。在DB2数据库中备份数据库的方法为:打开DB2控制中心;选择要备份的数据库,点右键选择“根据向导备份数据库”。在出现数据库问题需要重新恢复时,首先创建数据库,如出现问题,通常是由于要创建的数据库之前使用过,没有被系统完全删除掉,可打开命令中心,输入Catalog db[数据库名];Drop db[数据库名]。然后,选择“根据向导创建数据库”,“根据备份恢复数据库”。并且,注意时间戳要定义准。

33

图4.7 系统首页

4.7系统测试

系统测试是在集成测试之后,与计算机硬件、和某些支持软件、数据和人员等系统元素结合起来,在实际运行环境下对计算机系统进行严格的测试,来发现软件的潜在问题,它保证应用程序的各个组成部分能够有交地协同工作。

本系统在进行系统测试的过程中,经过多个用户参与测试,放在不同的运行环境下软硬件不冲突,对各个功能块都测试了一遍,最后系统功能都能实现。

至此,本系统的系统目标功能模块已全部实现。多次登录测试均没有出错,说明性能其优越,测试成功。综合我的系统测试,本网上教学管理系统的各项功能都很好的满足了用户的需求并达到了预期的目标。当然本系统也存在一小些隐含的错误,需要进一步完善。

34

结 语

本文介绍了一种在Struts架构下比较通用的网上教学系统的构建方法。通过研究当今流行的J2EE技术,结合项目开发过程管理的一些做法,从实际出发,提出了以Struts架构为基础,通过过程管理,实现网上教学系统的解决方案。

本文从某种意义上来讲不但是该课题研究过程的一个总结,也是对相关理论、技术综合应用的一种探索。

1.是对目前网上教学实施系统构建方案的一种探索。从系统的使用角度,从系统的设计角度、实现技术角度,都进行了大胆的尝试和改进,为Struts架构网上教学系统提供了可行的解决方案。

2.是对目前网络、数据库技术的一种实践和探索。在系统的实现技术方面使用了较为流行的B/S网络运行模式、J2EE技术和数据库技术,它们都是目前软件行业普遍采用的系统构建技术。这些技术的使用不但为系统的开发提供了方便,而且增强了系统的应用可靠性、安全性和可扩展性。

3.在整个系统构建的过程中运用了现代软件项目管理的相关理论。理论指导实践,通过在本课题的研究中实践软件项目管理的相关理论,不断增强了对理论的认识,加深了对课题的理解,也为今后的项目实施积累了经验。

由于自己水平有限,对目前网络教学系统的应用情况和相关理论、技术的理解和掌握不够,系统中尚存在一定的不足:

1.功能设计还不够完善、全面。不够完善是指系统的基本功能虽已具备,但设计的合理性,运用的科学性还需要进一步完善。不够全面是指网络教学是一个复杂的系统,要完成最终教学目的,还需要引入大量的功能支持,在这方面所作的工作还远远不够。作为对网络教学系统的一种探索式开发,系统本身在设计方面还不够深入、科学。

2.缺乏实际检测。一个系统是否成功是需要大量的实践和量化的测试分析来评估决定的。由于本系统成型较晚,开发时间较短,只是通过了小范围的测试运行,缺乏系统、规范、量化的测试结果。因此,对系统的各项性能指标的评估缺乏依据。 3.数据库和系统页面设计还有待进一步改进。因此,在下一步工作中,需要进一步改进。一是进一步加深对网络教学的认识和理解。二是从实际出发,着眼发展,逐

35

步完善系统的合理化、科学化设计。三是研究当前先进的开发技术和理念,不断提高系统的实现能力,增强系统的功能。四是注重加强对系统的测试评估。

36

参考文献

[1][美] WalkerRoyce著,周伯生等译,软件项目管理[M],机械工业出版社,中信出版社2002.8

[2]黄理曹林友张勇等编著,JSP深入编程[J],北京希望电子出版社,2001.10 [3]飞思科技产品研发中心编著,精通JBuilder9 [M],电子工业出版社,2003.8 [4]龙马工作室编著,JSP+Oracle组建动态网站实例精讲[M],人民邮电出版社,2004.8

[5]倪鹏云编著,计算机网络系统结构分析[J],国防工业出版社,1999.1 [6](美)Dean Leffingwell Don Widrig编著,软件需求管理:统一化方法[J],高等教育出版社,2002.10

[7J胡晓虹编译,投资专业人员培训优先选择在线方式[M],机械工业出版社,2004.10

[8]赵国宏等著,论网络高等教育的现状及其发展趋势[M],西南知识出版社,2004.5

[9]孙兰著,中络教育发展现状比较[J],电子工业出版社,2001.9

37

附 录

1. 在线注册本系统

在使用时,为了加强对使用者的管理,要求使用者在使用前必须先经过注册获一方面使用注册ID进行系统登录,方便对用户身份进行确认,同得合法ID后才能使用,时有利于建立用户档案,便于管理,用户注册信息通过WEB页面传输到服务器中的注册信息库中,管理员和教师的注册信息库是相同的,只有学生的注册信息库稍有不同。如图所示:

附图1 注册系统

38

2. 课件管理

教师登录课件管理系统后,可以在页面上填入自己所制作的课件相关信息。管理员可对课件表资源进行管理维护,包括对课件的添加、修改、删除等。教师用户也可对自己制作的课件进行维护。

附图2 视频上传

3. 学生提问

选课制度是学分制管理模式的灵魂,没有选课制度的学分制管理不是真正意义上的学 分制管理。选课既有指导性,又有自由性。所谓的指导性是指:学校规定一位学生在每个 学期必须学习的所谓必修课程,不能是自由的。自由性是指学生在学校的指导下根据自己 的兴趣可以自由地选取其他课程。学生可以在自己的课程表的空余时间选课,选择的课程 可以是本专业的,也可以是其他专业的,只要时间与必修课程没有冲突,就可以选择。由 于必修课是每位学生都必须学习的课程,所以本系统的学生选课只针对选修课进行操作。 选课的业务流程是:首先由学校教务处确定全校各年级及各专业的课程表及教学计划 执行表,然后学生根据自己的课程表及学校选修课教学计划,在课程表的空余时间进行选 课。学生所选的课程可以是全校范围的,也可以是本专业的。选课完毕后,教务处将记录 学生的选课情况,并把学生名单交给任课教师。

为了更好地做好选课工作,对选课时间还要做必要的规定,否则,如果学生在学期中 间进行选课,不仅学生完不成规定的学时数,而且还将影响教师的授课,给整个教学工作 带来不良的后果。因此,必须规定选课时间。学生在规定的选课时间里,进行选课,也可 在规定的选课时间里对所选择的课程进行添加、修改、退选等操作。

39

附图3 学生提问系统

40

部分功能代码如下: 添加用户: addwatercash.jsp <%@ page language=\"java\" import=\"java.util.*\" import=\"po.*\" pageEncoding=\"gb2312\"%>

<%@ include file=\"mindex.jsp\"%>

\">

My JSP 'addwatercash.jsp' starting page

修改用户信息: userupdate.jsp <%@ page language=\"java\" import=\"po.*\" import=\"java.util.*\" pageEncoding=\"gb2312\"%>

<%@ include file=\"mindex.jsp\"%>

\">

My JSP 'userupdate.jsp' starting page

管理员先生,现在你可以操作用户了
<%

List list=(List)request.getAttribute(\"list\");

for(int i=0;i

查询用户信息: uservo.jsp

<%@ page language=\"java\" import=\"po.*\" import=\"java.util.*\" pageEncoding=\"gb2312\"%>

<%@ include file=\"mindex.jsp\"%>

42

\">

My JSP 'uservo.jsp' starting page

public void destroy() { super.destroy(); // Just puts \"destroy\" string in log // Put your code here }

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\"text/html;charset=gb2312\"); PrintWriter out = response.getWriter(); doPost(request,response); }

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\"text/html;charset=gb2312\"); PrintWriter out = response.getWriter(); ServletContext context=getServletContext(); String wid=null; String num=null; wid=request.getParameter(\"wid\"); num=request.getParameter(\"num\"); WaterCashImpl wci=new WaterCashImpl(); List list1=wci.queryByid(wid); String url=null; System.out.println(\"是否有记录\"+list1.size()); if(list1.size()==0) { /*request.setAttribute(\"hao\数据库中没有这个记录\"); RequestDispatcher rd=context.getRequestDispatcher(\"/addwatercash.jsp\");

43

rd.forward(request,response);*/ out.println(\"数据库中没有这个记录,请后退继续操作\"); //response.sendRedirect(\"addwatercasherror.jsp\"); request.setAttribute(\"mess\数据库中没有这个记录,请后退继续操作!\"); url=\"/addwatercasherror.jsp\"; } UserVoImpl uvii=new UserVoImpl(); List list2=uvii.queryBylike(\"wid\wid,new Integer(new Date().getMonth()+1).toString(),new Integer(new Date().getYear()+1900).toString()); System.out.println(\"是否插入完毕\"+list2.size()); if(list2.size()!=0&&url==null) { //response.sendRedirect(\"./addwatercash.jsp\"); url=\"/addwatercasherror.jsp\"; request.setAttribute(\"mess\这个用户记录已经插入完毕,不能重复插入!\"); } else if(wci.insert(wid, num)!=0&&url==null) { UserVoImpl uvi=new UserVoImpl(); List list=uvi.queryByWid(wid); request.setAttribute(\"uv\ request.setAttribute(\"mess\操作成功\"); url=\"/addwatercash.jsp\"; } else { System.out.println(\"操作中的某部没有过去\"); } RequestDispatcher rd=context.getRequestDispatcher(url); rd.forward(request,response);

}

public void init() throws ServletException { // Put your code here }

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\"text/html;charset=gb2312\"); session=request.getSession();

44

} }

List list=new ArrayList();

list=(List)session.getAttribute(\"user\"); int id=((User)list.get(0)).getId();

float cash=Float.parseFloat(request.getParameter(\"money\").trim()); String date=request.getParameter(\"date\"); System.out.println(\"date=\"+date);

String surplus=request.getParameter(\"balance\"); toSave=new Tosave(id,date,cash); int i=0; try { i=toSaveImpl.insert(toSave); }catch(Exception e) { e.printStackTrace(); }

System.out.println(\"i=\"+i); if(i!=0) { try { if((userImpl.updateSurplus(id,surplus))==0) i=0; }catch(Exception e) { e.printStackTrace(); } System.out.println(\"up\"); }

if(i==0) { session.setAttribute(\"error\数据存入错误\"); dispatcher=request.getRequestDispatcher(\"/errorpage.jsp\"); dispatcher.forward(request,response); } else { dispatcher=request.getRequestDispatcher(\"./charge/chooseWid.jsp\"); dispatcher.forward(request,response); }

45

通过ID查询信息: ChooseById.java

package servlet;

import java.io.IOException; import java.io.PrintWriter; import java.util.*;

import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;

import po.*;

import bean.*;

public class ChooseById extends HttpServlet {

private RequestDispatcher dispatcher;

private HttpSession session=null;

private UserImpl userImpl=new UserImpl(); private WaterCash waterCash=new WaterCash();

private WaterCashImpl waterCashImpl=new WaterCashImpl(); private WaterTypeImpl waterTypeImpl=new WaterTypeImpl(); List list1=new ArrayList(); List list2=new ArrayList(); List list3=new ArrayList();

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //读取表单中的信息 response.setContentType(\"text/html;charset=gb2312\"); session=request.getSession(); int id=Integer.parseInt(request.getParameter(\"id\")); try { list1=userImpl.queryByid(id); if(list1.size()==0) { request.setAttribute(\"error\编号为\"+id+\"的用户不存在,请输入正确

46

的用户编号\"); dispatcher=request.getRequestDispatcher(\"../charge/chooseWid.jsp\"); dispatcher.forward(request,response); } else { String wid=((User)list1.get(0)).getWid(); Date d=new Date(); int mo1=d.getMonth()+1; int year1=d.getYear()+1900; String mo=\"\"; String year=\"\"; System.out.println(\"mo=\"+mo+\" year=\"+year); if(mo1==1) { mo1=12; year1=year1-1; } if(mo1<10) { mo=\"0\"+Integer.toString(mo1); year=Integer.toString(year1); } else { mo=Integer.toString(mo1); year=Integer.toString(year1); } list2=waterCashImpl.queryByYM(wid, mo, year); int wtid=((User)list1.get(0)).getWtid(); list3=waterTypeImpl.queryById(wtid); session.setAttribute(\"user\ session.setAttribute(\"waterCash\ session.setAttribute(\"waterType\ dispatcher=request.getRequestDispatcher(\"../charge/charge.jsp\"); dispatcher.forward(request,response); } } catch(Exception e) { System.out.println(\"异常\"); e.printStackTrace(); }

47

48

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务