APP下载

基于JSP的数据库开发技术研究

2011-03-06杨馥显刘嘉勇

通信技术 2011年3期
关键词:开发技术应用程序网页

杨馥显,刘嘉勇

(四川大学 电子信息学院,四川 成都 610064)

0 引言

JSP技术作为一种动态网页技术标准[1],与其他传统开发技术相比,在易用性、效率、安全性和可移植性[2]方面都有很好的表现。在 Web开发应用中,与数据库的交互是整个开发过程中非常重要的一个部分。JSP访问数据库主要是使用JDBC连接技术来实现。在Web环境中,如果有大量的用户频繁的访问数据库,那么 JSP和数据库之间交互效率将是整个Web应用中很重要的一个问题。这里针对JSP使用JDBC访问数据库时的效率问题,提出并实现了数据库连接池的技术。

1 JSP技术简介

JSP是Java Server Pages的缩写,是由Sun公司倡导,于1999年推出,正日益成为开发Web动态网站的重要而快速有效地开发技术。JSP充分利用了Java技术的优势,具有极强的扩展能力和良好的收缩性,与开发平台无关,这源于Java的“一次编写,到处运行”[3]的特点,同时也是一项安全的技术。它具有良好的动态页面与静态页面分离的能力,编译后运行,因而正逐渐成为因特网开发的主流技术。

2 JDBC技术

在基于JSP开发的Web系统中,JDBC是程序员和数据库打交道的主要途径,它提供了完备的数据库操作方法接口。JDBC[4]的全称为Java DataBase Connection, 是一套面向对象的应用程序接口(API),制定了统一的访问各类关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现。通过使用JDBC技术,开发人员可以用纯Java语言和标准的SQL语句编写完整的数据库应用程序,并且真正的实现了软件的跨平台性。

3 JDBC数据库访问机制的实现

JDBC是Java应用程序和数据库沟通的桥梁,通过JSP程序完成与数据库的连接,执行相应的数据库操作。程序访问数据库时,通过JDBC Driver Manager调度取得与要访问的数据库对应的 JDBC Driver,建立与数据库的连接,然后传送SQL语句,数据库处理SQL语句以及返回处理的结果。最后,关闭数据库的连接。这个访问机制的实现过程可以用如图1总结表示[5]。

图1 JDBC数据库访问机制

下面是作者在具体试验中,使用 JDBC连接数据库的方法,其中用到的数据库是MYSQL5.1,数据库名为project_1,数据库用户名为root,密码为1234:

虽然用这种方法成功的连接了数据库并继续进行下一步操作,但是上面使用JDBC访问数据库时,每一次Web请求都要建立一次数据库连接、建立连接是一个费时的活动,每次都得花费0.05~1s的时间[6],而且系统还要分配内存资源。这个时间对于一次或几次数据库操作,或许感觉不出有多大的开销。可是如果需要频繁的和数据库交互,则数据库连接操作势必占用很多的系统资源,而且网站的响应速度必定下降,严重的甚至会造成服务器的崩溃。不幸的是,在笔者实际项目实现中,需要和数据库频繁的交互。在数据库访问过程中,数据量稍微一大,网站响应速度就会明显慢下来。为了提高访问效率,笔者使用了数据库连接池技术。

4 数据库连接池技术及其实现

为了解决 JDBC数据库连接时的效率下降、耗时多的缺陷,笔者提出并使用了数据库连接池技术。在JSP中,把连接池技术和 JDBC结合起来使用,就能极大的提高数据库的访问效率[7]。

连接池的概念是:连接池允许应用程序从连接池中获得一个连接并使用这个连接,而不需要为每一个连接请求重新建立一个连接。一旦一个新的连接被创建并且放置在连接池中,应用程序就可以重复使用这个连接而不必实施整个数据库连接创建过程。当应用程序请求一个连接时,连接池为该应用程序分配一个连接而不是重新建立一个连接; 当应用程序使用完连接后,该连接被归还给连接池而不是直接释放。

数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是可以通过连接池的管理机制监视数据库的连接的数量、使用情况,为系统开发、测试及性能调整提供依据。连接池的基本工作原理如图 2所示。

图2 数据库连接池基本工作原理[8]

在实验过程中所用的服务器为 TOMBAT6.0。为了实现数据库连接池只需要做以下配置工作:

在实际 Web应用系统的 WebRoot目录下,新建一个META-INF的目录(假如不存在),在该目录下创建一个context.xml文件,并且在context.xml文件中添加以下的配置信息:

其中, name 表示指定的 jndi名称;auth 表示认证方式,一般为Container;type 表示数据源床型,使用标准的javax.sql.DataSource;maxActive 表示连接池当中最大的数据库连接;maxIdle 表示最大的空闲连接数;maxWait当池的数据库连接已经被占用的时候,最大等待时间;username 表示数据库用户名;password 表示数据库用户的密码;driverClassName表示JDBC DRIVER;url表示数据库URL地址。

除此之外,需要在应用程序下的web.xml中的<web-app></web-app>之间加入:

至此,在应用中已经配置好了数据库的连接池。这里有很重要的一点就是context.xml下的Resource name和web.xml下的<res-ref-name>一定要相同。在笔者项目系统中,为了提高数据库代码的可重用性[9],笔者用JavaBean封装数据库连接代码:

在JSP页面通过调用JavaBean实现对数据库的访问。首先,引用该JavaBean的类:

与数据库交互时,只需要在JSP页面执行以下操作:

在实现了连接池之后,整个系统的运行效率有了显著地提高。满足了实际工作中的需要。

5 结语

这里简单介绍了基于JSP的 Web应用系统中使用JDBC操作连接数据库的相关知识。并且结合实际项目系统中访问数据库低效率、性能低下无法满足日益增长地访问请求的缺点,提出了JSP 和数据库连接池技术相结合的方法,可以使系统的性能明显得到提高,并在实际工作中运用了连接池技术,提高了数据库访问效率。

[1] 吴佳,李建民,林振荣.基于JSP的科研成果管理系统的设计与实现[J].通信技术,2008,41(08):210-212.

[2] 韩建宁,高波.数据库连接池在动态 Web网页开发中的设计与实现[J].电子设计工程,2009(04):7-9.

[3] 王炎.浅析 JSP技术在动态网页技术中的应用[J].商场现代化,2009(07):18.

[4] 明日科技.JSP开发技术大全[M].北京:人民邮电出版社,2007.

[5] 孙卫琴.Tomcat 与Java Web开发技术详解[M].北京:电子工业出版社,2009.

[6] 刘京华.Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)[M].北京:清华大学出版社,2010.

[7] 李亚平.JSP和数据库连接池在MVC模式中的应用[J].电脑知识与技术,2009(12):3056,3062.

[8] 李平.基于JSP的动态网页开发技术[J].微计算机信息,2009(21):108-110.

[9] 石国河.网页设计中 JSP和 ASP技术的应用[J].通信技术,2010,43(02):98-100,104.

猜你喜欢

开发技术应用程序网页
基于HTML5与CSS3的网页设计技术研究
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
计算机应用软件开发技术的几点探讨
基于URL和网页类型的网页信息采集研究
中国煤层气开发技术的现状与未来
复杂产品设计知识应用开发技术研究
基于Top-down设计方法的客车底盘开发技术