资源描述
基于Servlet+JDBC的学生Web信息管理系统的设计与实现
摘要
本文重点介绍如何整合编程语言和数据库,讨论了通过Servlet和JDBC开发Web应用程序的方法,并举例介绍了一个Web管理信息系统(Web MIS)的设计与实现,为设计其他系统提供了参考。
关键词:Servlet;JDBC;Web
I. 介绍
随着Web的发展,信息的共享变得越来越方便。但是与此同时,关于如何更高效地发布、分享和交互操作信息,它也带来了新的任务和新的挑战。Java的发展和应用改变了软件的开发和使用方式,使其无需在平台上运行。作为网络发展的重要支柱,数据库技术推动了分布式网络的开发和使用。如今,在信息技术快速发展的形势下,如何完美地将编程语言和数据库系统结合起来,变得越来越重要和紧迫。
II. B/S三层架构和Servlet+JDBC技术说明
A. B/S三层架构
在B / S(Browser / Server)三层架构体系中,用户可以通过浏览器向分布式Web服务器发送请求。在B / S三层架构中,表示层、业务逻辑层和数据服务层被分为三个相对独立的单位[2]。图1为B / S三层架构的表现图。
图1 B/S三层架构
B. Servlet技术和它的作用
“Servlet是在Web服务器中运行的一个小程序。它接收并响应来自Web客户的请求”。Servlet实现了Java Servlet应用程序编程接口(API)及其相关的类和方法。除了Java Servlet API,Servlet也可以用于扩展和添加到API类别的Java软件包。Servlet在Web服务器或应用程序服务器上运行,用以打开Java并扩展其功能。Java Servlet对于Web服务器就像Java 小程序对于Web浏览器一样。Servlet安装在Web服务中并在其中实现其功能。Java Servlet API提供了用于Servlet服务器和Java服务器之间的标准接口的定义,它提供了Servlet跨平台服务器功能。
C. JDBC技术说明
JDBC(Java数据库连接)是Java API,它是一组Java编程语言的类和接口,用于执行SQL语句。它有三个主要功能,包括创建与数据库的连接、将SQL语句发送到数据库和返回数据库处理结果。JDBC使SQL语句发送到各种数据库的过程变得更加容易。数据库开发人员可以只用Java和JDBC API编写程序,它将发送各种相关的SQL语句到数据库,以便Java应用程序可以访问分布在网络上的各种关系数据库。此外,JDBC和Java的结合使得程序员可以做到平台无关。
图2 JDBC驱动API结构图
JDBC API定义了用户应用程序和驱动程序管理器之间的交互以及驱动程序管理器和所有驱动之间的交互[4]。图2为JDBC驱动API的结构示意图。
III. 系统的分析与设计
这个学生信息管理系统是一个小应用程序,它有自己的特点:(1)访问数据库作为数据源;(2)局域网用户;(3)目的是实现教学业务部门和其他部门的数据查询、更新等功能。
A. 需求分析和数据库设计
根据各部门的需要,系统分为五个部分,分别是基础信息管理系统、学校管理系统、文件管理系统、学费和住宿管理系统以及学术成绩管理系统。每个子系统均实现了单个查询、多个查询、新数据添加、数据删除、数据修复和其他功能。
在这个系统中,我们必须为不同的子系统创建不同的表,子系统之间可以通过公共ID相互连接形成一个访问数据库。例如,我们可以针对基础信息管理子系统和文件管理系统分别设置以下结构表(表1,表2)。
表1 基础信息管理系统结构表
Name(姓名)
Gender(性别)
Race(民族)
Student number(学号)
Grade(年级)
Major(专业)
Admission nature(入学性质)
ID number(ID号)
Tutor’s name(导师姓名)
Source(出生地)
Cadre experience(干部经验)
Dormitory address(宿舍地址)
Mobile phone number(移动电话号码)
Dormitory phone number(宿舍电话号码)
E-mail(邮箱)
Home address(家庭住址)
Home poster code(家庭邮政编码)
Home phone number(家庭电话号码)
表2 档案系统结构表
Name(姓名)
Company(公司)
Company address(公司地址)
Company postcode(公司邮编)
Letter of Admission(入学通知书)
Examination registration form(考试报名表)
Graduation registration form(毕业登记表)
Report card(报告卡)
Diploma(文凭)
Degree certificate(学位证书)
Procedure form of leaving school(离校手续表)
Past materials(过往材料)
Party member’s materials(党员材料)
Feedback form(反馈表)
The unit to receive the personal file(个人文件接收单位)
The postcode to send the personal file(个人文件发送地邮政编码)
The time of sending the personal file(个人文件发送时间)
B. 系统结构设计
图3 系统结构模型
系统结构是建立在B / S三层结构的框架的基础上设计的,它分为三部分:客户端,Web应用层,数据库层。图3为系统结构的模型。
该系统技术结构的工作原理是:Web浏览器发送HTTP请求后,通过Web服务器接收并传输请求,并且应用服务器引擎调用Servlet,Servlet通过JDBC连接到数据库处理请求然后将结果返回到客户端Web浏览器。
采用基于B / S三层建筑的Servlet和JDBC技术来使用Web应用程序的优点是:
l 高效。客户端只需要安装最新的浏览器,就可以使负担大大减少。Servlet在第一次调用后保留,以便它可以直接访问内存以提供更快的反应[5]。维护和升级系统在服务器端执行,可以大大减少开发和维护成本。
l 使用简单,对用户友好。
l 灵活安全。三个模块是相对独立的,如果其中一个模块改变,其他模块不会受到影响,所以更容易对系统进行改进。在客户端和数据库服务器之间还有一个额外的Web服务器,使它们不再是直接连接; 客户不能直接操作数据库。结合Servlet在中间层的安全机制,它将更有效地保护系统。
C. 连接JDBC与数据库
目前,常见的驱动程序包括4种类型,JDBC-ODBC桥接器加ODBC驱动程序,结合Java驱动程序的本地API,JDBC网络协议下的Java驱动应用程序,以及JDBC本地协议下的Java驱动应用程序。
图4为JDBC-ODBC桥接器加ODBC驱动程序的原理图。JDBC使用JDBC-ODBC桥接器并通过ODBC提取数据。JDBC调用通过 JDBC-ODBC桥接器并翻译成C语言形式的ODBC API,然后通过ODBC调用适当的ODBC驱动程序,以实现最终的数据访问[4]。
图4 JDBC-ODBC桥接器加ODBC驱动程序原理图
IV. 系统的实现
A. 软件安装和环境变量配置
在这个系统中,服务器所使用的软件和组件以及环境变量配置分别列于两个表格中(表3,表4)。
表3 软件或组建路径说明
软件或组件
安装目录或存储路径
Jakarta-Tomcat-5.0.30
D:\Apache Software Foundation\Tomcat 5.0
JDK1.5.0_01
D:\Java\jdk1.5.0_01
JSDK2.1
D:\Java\JSDK2.1
JK1.2.2(i.e. isapi_redirect.dll)
D:\Apache Software Foundation\Tomcat 5.0\IIS\
IIS5.1
表4 环境变量配置
变量名称
变量值
JAVA_HOME
D:\Java\jdk1.5.0_01
TOMCAT_HOME
D:\Apache Software Foundation\Tomcat 5.0
Path
%JAVA_HOME%\bin
classpath
.;D:\Java\JSDK2.1\servlet.jar
B. Web服务器的环境配置
系统使用TOMCAT + IIS构建服务器环境,其集成过程如下:
l 在IIS管理器中添加虚拟目录Jakarta,指向isapi_redirect.dll,并将其设置为可执行文件。在Web的默认属性中添加JK插件作为ISAPI过滤器。
l 在路径%TOMCAT_HOME%\conf\下创建workers.properties文件,内容为:
Workers.tomcat_home=%TOMCAT_HOME%
Workers.Java_home=%JAVA_HOME%
ps=\ # specified the sigh of partition
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13 # type
worker.ajp13.lbfactor=1 # Load balancing factor
在路径%TOMCAT_HOME%\conf\下创建uriworkermap.properties文件,内容为:
/*.jsp =ajp13
/*.do =ajp13
l 修改注册表以创建新密钥:
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0,并在此键后创建一个新的字符串。下表5给出了要创建的字符串及字符串值。
表5 JAKARTA ISAPI REDIRECTOR\1.0键下创建的字符串
字符串
字符串值
描述
extension_uri
/jakarta/isapi_redirect.dll
指定访问isapi_redirect.dll文件的URL
log_file
%TOMCAT_HOME%\logs\isapi.log
指定JK插件使用的日志文件
log_level
info
指定JK插件使用的日志等级,可选值包括调试(debug),信息(info)和错误(error)等。
worker_file
%TOMCAT_HOME%\conf\Workers.properties
指定JK插件的工作文件
worker_mount_file
%TOMCAT_HOME%\conf\Uriworkermap.properties
指定JK插件的映射文件
TOMCAT和IIS的集成使IIS可以支持JSP和Servlet,以便于扩展中间层。两者集成还使TOMCAT和IIS可以共享80端口(通过修改workers.Properties文件的pot配置来实现),以及IIS可作为Web服务器和TOMCAT可作为应用程序服务器。该集成也可以弥补TOMCAT在处理静态html图像时速度慢的劣势,服务器端的服务器将变得更加高效和强大。
C. 数据库连接和Servlet的部分代码实现
数据库连接使用设计数据源的方法(配置ODBC数据源名称、路径以及访问系统配置的用户名和密码),然后通过数据源连接到Access数据库。Servlet继承HttpServlet以后,需要通过以下代码加载JDBC-ODBC桥接器驱动程序,与Access数据库建立连接:
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
con=DriverManager.getConnection(“jdbc:odbc:STUDE NT”, “user”,“password”);
V. WEB.XML配置
<?xml version=“1.0” encoding=“ISO-8859-1”?>
<web-app xmlns=“”
xmlns:xsi=“”
xsi:schemaLocation=“
”
version=“2.4”>
<servlet>
<servlet-name>InformationQuery</servlet-name>
<servlet-class>InformationQuery</servlet-class>
</servlet>
// 省略其他Servlet配置信息
<servlet-mapping>
<servlet-name>InformationQuery</servlet-name>
<url-pattern>/servlet/InformationQuery</url-pattern>
</servlet-mapping>
</web-app>
<!--在Web.Xml这一段宣布了要调用Servlet,并且servlet-mapping将已宣布的servlet“映射”到了地址/InformationQuery上-->
VI. 结论
本文讨论了在基于B/S三层架构的情况下,如何使用Servlet和JDBC开发学生信息管理系统。从本文举例中我们可以看到,Servlet和JDBC技术具有简单、灵活、高效和易于操作及管理的优点[9]。当然,在系统上还有一些不足。例如,JDBC-ODBC桥接器加ODBC作为转换的驱动程序,要求本地数据库必须安装在同一台计算机上。除此以外,还有部分驱动程序不允许发送实时的Java Applet等缺点。但是,对于小型的Web应用来说,这个技术仍然具有十分重要的意义。当然,我们也可以使用更复杂的系统框架,例如在中间层使用MVC模型,以满足更大的应用程序的需求并获得更高的效率[3]。在此框架的基础上,可以轻松实现中间层的扩展。
参考文献
[1] X. Zhang, Senior Java Database Programming. Beijing, Tsinghua University Press, 2004.
[2] X. Yang, “Design and Implement1ation of On-line MIS Based on B/S Structure,” Modern Electronics Technique, vol. 24, 2006, pp. 63–67, doi: CNKI:ISSN:1004-373X.0.2006-24-022.
[3] Z. Dai and M. Wu, “Analysis and design of a management information system with MVC pattern,” Journal of Central South University of Technology. vol. 34, Aug. 2003, pp. 413–415, doi: CNKI:ISSN:1005-9792.0.2003-04-021.
[4] Z. Li and R. Yang, Java programming of network programming. Beijing, Tsinghua University Press, 2006.
[5] W. Lin, C. Wang, and H. Lin, “Eveloping and implementing of enterprise geographical information network issuing based on servlet,” Science of Surveying and Mapping. vol. 29, Oct. 2004, pp. 80–82, doi: CNKI:ISSN:1009-2307.0.2004-05-024.
[6] B. Hou and X. Li, “To Integrate Tomcat and IIS for Web Server Supporting JSP and Servlet,” Journal of Xianyang Teachers College. vol. 18, Dec. 2003, pp. 36–38, doi: CNKI:ISSN:1008-7591.0.2003- 06-009.
[7] Y. Zhang, Y. Yang, Q. Mi, and W. Liu, “Research on integration of Tomcat 5.5 with IIS 5.0 and IIS 6.0,” Hebei Journal of Industrial Science and Technology. vol. 23, July. 2006, pp. 243–245, doi: CNKI:ISSN:1008-1534.0.2006-04-016.
[8] R. Jia, Introduction to Java and Web site database design. Beijing, Tsinghua University Press, 2006.
[9] D. Cao and Z. Yue, “Design and Implementation of a Servlet-Based Web Database Interface System,” Journal of Beijing Institute of Technology. vol. 20, Aug. 2002, pp. 453–455, doi: CNKI:ISSN:11- 5125.0.2000-04-013.
展开阅读全文