计算机工程
COMPUTER ENGINEERING
1999年  第25卷 第7期 Vol.25 No.5 1999



利用JDBC实现基于Internet的网上答疑系统
印　王行言　王蕾
摘要　介绍了一个利用JDBC实现的基于“客户机-Web服务器-数据库服务器”三层体系结构的因特网上答疑系统。系统的功能设计方便、有效，在实现上选用了新兴网络编程语言JAVA及其数据库存连接技术JDBC，使系统可在不同的软硬件平台上顺畅运行；管理和使用也非常方便、灵活，只需因特网上的通用浏览器软件即可，具有一定的推广价值。
关键词　网络教学 网络答疑 JDBC
An Internet-based Network Answering System Using JDBC
Yin Min Wang Xingyan Wang Lei
Computer and Information Management Center of Tsinghua University beijing 100084
Abstract：This paper introduces an Internet-based network answering system with a three layer architecture of “Client-Web Server-Database Server”implemented with JDBC and other network development technologies.The functions of our system are carefully designed and performed in order to get more convenience and wider usability,which is easy to achieve with the help of an innovative network language Jave and is database connection tools JDBC.These technologies enable the system to work under any kind of platform,with no more requirements other than an Internet browser to perform both routine and management working effcctively.
Key words：Network education；Network answering；JDBC
1　传统答疑模式
　　答疑是教学中一个十分重要教学环节，与课堂上一对多的讲授不同，答疑是教师和学生间一对一的交流；通过答疑，学生可以弄清不少课堂上群体教育未涉及的细节并获得教师有针对性的指导；教师也可以通过答疑了解学生对课程的掌握和适应情况，并利用这些信息来修正课堂教学。
　　传统的答疑一般采取类似于医院里专家门诊看病的形式，由任课教师定期在固定地点"坐堂"，接待前来答疑的学生并解决他们的"疑难杂症"。这种方式存在着不均衡、不充分、不灵活和效率低等缺点。为此，人们一直在试图对它进行改进。计算机网络技术的成熟和发展，为解决这个问题，提供了一个新的思路。
2　网络答疑模式及其平台环境
　　网络答疑，就是利用计算机网络设施和相关软件来帮助教师和学生间进行超越时空的网上交流，将答疑的场所从固定的教室转移到无所不在的网络，将答疑的时间从有限的固定时段变换成自由随意的时刻，从而实现更加方便、高效的答疑活动。近几年来，我校的教学网络建设连跨大步，围绕着校园网这一主干动脉，先后建成了具有500多个机位的大型计算机开放实验室、5个多功能教室、多台教学服务器和CAI服务器，为实现网络辅助教学提供了良好的软硬件环境，尤其是不断完善和发展的开放实验室，目前配有500多台微机，它们均通过专用的网络设备与校园网、中国教育科研网和因特网相连，基本上满足了同学们通过网络获取知识的需求；同时，教学服务器、CAI服务器等大容量、高性能的大型服务器中则保存着大量丰富的教学资源，如教师的教案、有关参考资料、课堂练习、习题、疑难解答等等。这样，一个网络辅助教学系统的软硬件平台和基本框架就已经建成，而我们的网络答疑系统，作为整个网络辅助教学系统的一部分，就是运行工作在这样一个平台上(如图1所示)。

图1　校园网络教学环境
　　传统的WWW网络应用，以单纯地浏览保存在服务器上的静态信息为主；随着需求的提高和变化，在静态内容的基础上加入动态的、交互的功能，已经成为目前网络应用的一大发展趋势。为适应这一趋势，网络应用的体系结构也已经从原有的"客户机-服务器"两级模式逐步转变成"客户机-服务器-数据库"的三级模式，或者更进一步的"客户机-Web服务器-应用服务器-数据库"四级模式结构。网络答疑系统是利用网络来沟通教师和学生，无论是学生提问还是教师解答，都需要主动的参与性的活动，所以我们采用了三级的系统体系结构来开发和实现交互式的网络答疑系统，如图2所示。

图2 网络辅助教学系统的应用结构
　　图2中所示的是我们开发的网络辅助教学系统的应用体系结构，网络答疑系统是这个辅助教学系统中的一个子系统。整个系统以课程为基本的管理单位，有关的信息都围绕着课程进行组织，其中数据库中存放着不同课程的答疑信息，包括学生的问题和教师的解答等等；服务器则负责将数据库中的答疑信息检索出来发布在网络上，并接受学生的提问和教师的回答及其他管理命令，根据这些命令来维护数据库中的答疑信息，这些工作都是由存储在服务器中的有关程序来完成的；教师和学生则只需要在一台连接入网的计算机上运行通用的浏览器软件，就可以方便地实现网上答疑了。
3　网络答疑系统的功能
　　网络答疑系统按照功能可以划分为两个部分：一个是学生使用的提问和查看常用问题及解答部分；另一个是教师使用的回答问题和维护答疑区部分。
3.1　学生使用功能
　　提问：当学生连接到特定的网络地址并输入课程编号时，将启动服务器上负责处理提问的CGI程序，这个程序将接受学生提出的问题，包括问题题目、问题内容，以及可能的附加文件，并将这些信息传回与服务器相连的后台数据库保存起来。
　　查看FAQ列表：在网络答疑系统中，为了提高效率，我们引入了"常用问题解答列表"(FAQ--Frequently asked questions)，FAQ中列出了一些常见的共有问题及其解答，学生在提出新的问题之前，可以先查看一下FAQ，如果发现自己的问题已经有了答案，就不必再提问了，这样大大提高了答疑系统的使用效率，避免了教师的重复劳动。
　　学生的提问和老师的回答都可以附带各种类型的附加文件，如计算机课程中的源程序文件、可执行文件、包含了公式和图表的WORD文件等，查看时只需点击所显示的附加文件名就可以把它从服务器端下载到本地保存或直接打开查看。
3.2　教师答疑功能
　　教师答疑功能模块首先列出所有学生的问题帮助教师查看和管理，当教师选定一个问题之后，它可以完成如下的操作：
　　删除：教师可以删除重复的、过时的或其他没有意义的问题，以保持答疑区的清洁、有效。
　　修改问题：若教师认为某个问题可以保留，但是学生提问的表述不是很确切，可以修改这个问题的内容，使之更加清楚、明确。
　　给出答案和附加文件：对于可以保留的问题，教师应给出问题的解答，必要时还可以附加一个文件来进一步明确问题的答案。
　　设置问题为FAQ：对于有代表性的问题，教师可以把它列入FAQ列表在网上发布。
4　网络答疑系统的设计与实现
　　在设计上述网络答疑系统时有这样一些考虑：①通用性  主要包括学科通用和环境通用；②方便性  主要包括学生的使用方便和教师的维护方便。为了达到上述的系统要求，我们选择了与软硬件平台无关的JAVA语言作为主要开发工具，并选用了比较成熟的CGI编程方法，用JAVA语言来开发服务器端的CGI程序。由于我们的系统涉及了较多的数据库操作，就必然要使用到JAVA连接数据库的JDBC技术。
4.1　JDBC技术概述
　　由于JAVA具有一次编写，到处运行的跨平台特点，所以特别适合在网络开发中应用。网络应用有多种层次，最简单的可以划分为客户机端和服务器端；客户机端的JAVA程序通常是用来生成界面和引入交互功能的小程序；而服务器端的JAVA程序则承担着更为关键和重要的任务，如对数据库的访问、操作和维护。1998年被称为是JAVA在服务器端大量应用的一年，这与JDBC技术的广泛使用是分不开的。
　　JDBC是Java DataBase Connection的缩写，代表了通过JAVA程序访问数据库的技术，其基本结构如图3所示。

图3 JDBC基本结构
　　可见JDBC主要包括JDBC API，JDBC Driver API和各种JDBC驱动程序，它是JAVA程序通过因特网访问数据库的接口。使用JDBC实现应用程序对数据库的访问主要有如下的好处：
　　(1)平台独立：同一个具数据库功能的应用程序可以运行在不同的软硬件平台上，
　　(2)多数据库连接：同一个应用程序可以与不同平台上的不同数据库相连接。
　　在网络答疑系统中有大量需要通过因特网来访问数据库的操作，为了提高系统的通用性和可推广性，我们选用了上述的JDBC技术来实现系统的核心部分。
4.2　网络答疑系统的实现
　　早期的因特网上，只有一些静态的图文信息供人们浏览，后来随着技术的发展和网民需求的提升，动态、交互功能被逐渐引入到网页之中。
　　扩展网页功能的方法有很多，如动态HTML、Script脚本语言、JAVA Applet、CGI、专用API等等。这些方法各有特色，有的刚刚起步，有的已渐趋成熟，总的来说还未形成一个默认的标准和共识，实际应用中到底采用何种方法还要具体情况具体分析。
　　在我们的网络答疑系统中，采用了服务器端JAVA语言编写的CGI程序和客户机端Java Script编写的脚本语言相结合的模式。整个系统的模块结构可以用图4表示。

图4 网络答疑系统实现结构示意图
　　这样的设计主要是出于如下的考虑：
　　(1)CGI是一种比较成熟和广泛使用的网上编程模式。网络答疑系统主要以数据库修改、查找和结果返回为主，没有太高的实时性要求，可以采用CGI模式。
　　(2)JAVA是跨平台的编程语言，用它编写的CGI程序可以工作在不同的服务器上。
　　(3)Java Script是嵌在静态HTML中的脚本语言，它方便易用，可以实现诸如返回上一页等简单操作，适合于在客户端使用，可提高应用的易用性、交互性，使界面更加友好。
5　小结
　　本文阐述了一个利用JDBC技术实现的基于Internet的网络答疑系统的设计、功能与实现。相对于传统的教室答疑模式，这种网上答疑具有以下的特点和优越性：
　　(1)方便灵活：网上答疑最大的优点是它跨越了时空的界限，解放了以往答疑活动对教师和学生双方的束缚。只需要一台连入校园网、装有通用浏览器的微机，答疑活动可以在任何时间进行；
　　(2)通用高效：由于采用了网上公布FAQ列表的方式，大大节约了教师的时间，学生也可以通过查看别人的问题来提高自己对课程的全面认识。由于系统的特别设计，对不同的课程和不同的平台都是通用的。
　　当然，这个网络答疑系统还存在着一定的欠缺和不足，需要作进一步的改进，如增加系统功能：通过发E-mail的方式，在公布FAQ列表的同时增加对个别同学个别问题的辅导；在查看问题列表时增加根据检索词的查找等等。需要说明的是，由于网络答疑系统是网络辅助教学系统中的一个子系统，有关身份认证等问题由主系统中的其他模块来完成，这里不再赘述。目前本系统已经投入使用，并受到了广大师生的欢迎，我们将在应用中不断完善，使它能发挥更大的作用。
作者简介：印 女，27岁，讲师，主要研究方向为面向对象的程序设计和Internet上的数据库开发应用
作者单位：清华大学计算机信息管理中心北京100084
参考文献
1　Thomas M,Patel P,Hudson A,et al.熊伟华译.Java for Internet编程技术.北京：电子工业出版社, 1997-11
收稿日期：1998-08-03
