浅谈基于JSP的数据库Web访问技术

时间:2022-10-25 05:58:49

浅谈基于JSP的数据库Web访问技术

摘要:本文简要介绍JSP技术的运行原理,阐述了JSP对数据库访问的方法步骤。分析了JSP数据库访问技术JDBC的体系结构和驱动程序之间的类别。

关键词:Java;Java服务器网页;Java数据库连接;数据库

中图分类号:TP311.131 文献标识码:A文章编号:1007-9599 (2010) 07-0000-02

Discussion on Technology of Access Database in Web Based on JSP

Wang Haichao

(PLA 92474 Troop,Sanya572018,China)

Abstract:This paper briefly introduces the theory of JSP technology.Means and approaches of accessdatabase with JSP are explained.JDBC system framework and different JDBC drivers are analyzed.

Keywords:Java;JSP;JDBC;database

JSP(Java Server Pages)是有Sun Microsystems公司倡导、许多公司参与建立的一种动态网页技术标准,类似于其他动态网页技术,如ASP,PHP等,它在动态网页的建设中有强大而特别的功能。作为一种主要的动态网页技术,JSP可以通过JDBC(Java Database Connectivity)访问数据库,加之Java平台的跨平台性、良好的可移植性和高安全性等特点,相比ASP,PHP及CGI等其他技术,更适合网站开发。

一、JSP的技术特点

JSP是在Servlet的基础上发展起来的一门技术,是基于Servlet和整个Java体系之上的。Servlet是运行在服务器端的Java程序,可以响应用户请求,并将处理结果组织成HTML页面,通过服务器发送给用户,由于它必须使用out.println()一句一句地输出HTML语法,这样就催生了JSP技术的产生。许多Servlet是通过程序生成整个页面,而JSP是在HTML中嵌入JSP标签和Java程序片断,生成动态数据与静态页面相结合的HTML网页。JSP文件使用.jsp后缀,由安装在Web服务器上的JSP引擎执行。用户通过浏览器访问JSP网页,服务器收到请求后触发JSP引擎,对于首次被访问的JSP文件,引擎将其翻译成Servlet程序,再编译生成.class文件,由Java虚拟机执行,生成响应页面发送给客户。当相同的JSP网页再次被访问时,JSP引擎就直接调用已经装载的Servlet程序。

二、JSP对数据库访问的原理和方法

现在的Web网站主要以C/S结构为主,在由Web服务器和JSP引擎实现中间层的网站中,对数据库的访问通常由Java调用JDBC进行,JDBC是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问接口,它由一组Java语言编写的类和接口组成,它使数据库开发人员能够用标准JavaAPI编写数据库应用程序。通过使用JDBC,可以将SQL语句传送给几乎如何一种数据库,即不必为不同的数据库编写不同的数据库访问程序。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行。

(一)JDBC的结构

JDBC API通过驱动程序管理器(Driver Manager)和为各种数据库定制的驱动程序相互协作来提供与不同数据库的透明连接。JDBC驱动程序管理器将确保正确的驱动程序被用于数据源连接。它可以同时支持不同数据库连接。图1所示的是驱动程序管理器与数据库之间的关系。JDBC驱动程序管理器将标准的JDBC指令转换成适用于不同数据库通信的网络协议指令或其他API指令。这种指令的转换机制使基于JDBC接口开发的程序可以独立于数据库的种类。JDBC主要提供了3项功能:一是同一个数据库建立连接;二是向数据库发送SQL语句;三是处理数据库返回的结果。

(二)JDBC驱动程序类型

JDBC API分为两个不同的层次:应用层和驱动程序层。应用层的API主要是给数据库的应用程序开发者使用的。驱动程序层则是撰写驱动程序的厂商才需要用到的API。一般而言,JDBC连接数据库可以分为四大类:

1.JDBC-ODBC桥接驱动程序,将JDBC调用转化为ODBC调用,通过ODBC驱动程序来提供JDBC对数据库的访问。

2.原生API驱动程序,这种方法是将JDBC指令转换成DBMS所指定的原生码。也就是说,有一套不是以Java所撰写的函数库,介于Java应用程序与数据库之间。

3.JDBC通过网络的纯Java驱动程序,这个驱动程序是一个3-Tier(层)的解决方案。这种驱动程序传送JDBC的指令到一个中介软件(Middleware),这个中介软件再将JDBC的要求传送到DBMS当中,结果集合(ResultSet)也是通过中介软件传回到应用程序。

4.原生协议以及纯Java驱动程序,这种驱动程序是由纯Java所写成,并且直接与数据库沟通。这种驱动程序的性能是最好的。

(三)主要的JDBC类介绍

JDBC规范包含大约十多个关键的类定义以及核心的java.sql接口和多个相关的类,以下为几个常用的类:

1.Java.sql.DriverManager:该类负责处理JDBC数据库驱动程序的加载和卸载。

2.Java.sql.Connection:该类负责建立与数据库服务器的连接。

3.Java.sql.Statement:该类可以通过Connection对象执行一条SQL语句。

4.Java.sql.ResultSet:该类表示从数据库服务器返回的结果集。

(四)用JDBC连接数据库

使用JDBC连接数据库存取数据必须执行下列步骤:

1.用Driver Manager加载注册的JDBC驱动程序,一般用Class.forName()加载。

2.用JDBC URL定义驱动程序与数据来源之间的连接,并用DriverManager.getCon-

nection()来建立一个连接对象。

3.建立一个SQL陈述式对象(Statement Object),并使用SQL陈述式对象来执行SQL语句,一般只用Statement类中三种语句执行方法:

a)executeQuery():该方法是以一个SQL语句作为自变量,回传一个ResultSet对象格式的查询结果。这个方法主要用于查询数据库。

b) executeUpdate():该方法主要用于两方面,一为执行CREATE TABLE,DROP- TABLE和ALTER TABLE等SQL DDL语句;二为执行INSERT,DELETE,UPDATE等SQL DML语句。

c) execute():如果不知道正要执行的SQL语句是查询还是更新时,就可以利用这个方法。

三、结束语

文中讨论了在JSP中访问数据库的方法,但要深入研究还有许多问题值得思考。第一是安全性问题,他人可通过反编译工具获得程序代码中的用户名和密码;第二是代码的可移植性问题,即软件无法脱离数据库独立存在;第三是对于一个复杂的数据库应用,频繁的建立、关闭连接,会极大地减低系统的性能。对于第一、二个问题可通过建立JNDI (Java- Naming and Directory Interface)服务中的数据源来解决,对于第三个问题可通过建立一个数据库连接池方法得以解决。

参考文献:

[1]林上杰,林康司.JSP2.0技术手册[M].北京:电子工业出版社,2004

[2]Deitel H K.高级Java2大学教程[M].钱方等译,北京;电子工业出版社,2003

作者简介:

王海超,男,辽宁人,1979年3月出生,大学本科,工程师,研究方向:计算机应用与网络。

上一篇:计算机辅助教学初探 下一篇:基于SOA架构的省级集中税收管理信息系统性能测...