JSP技术中数据库的应用

时间:2022-10-22 09:04:08

JSP技术中数据库的应用

摘要:在互联网高速发展的今天,JSP技术也得到了飞速的发展,它在运行速度、安全性、可移植性均比传统的Web编程语言有很大的改进。因此了解并掌握在JSP开发中使用数据库的方法和技巧日益重要。

关键词:JSP;数据库;网站

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)27-1889-03

The Application of JSP Technology in Database

LIU Jun

(Henan Mechanical and Electrical Engineering College, Xinxiang 453000, China)

Abstract: Nowadays when the internet develops very quickly,The JSP technology is also at full speed development. JSP technologyhas improved inrun speed , security , ransportability comparing with traditional Web programming language.therefore, it is important that grasping the method of JSP Technology applicattingin Database.

Key words: JSP; database; Website

1 引言

J2EE技术无疑成为当今电子商务的最佳解决方案,在最近两年,JSP技术又有了巨大的发展和变化。在J2EE1.4框架中,对JSP和Servlet技术进行了升级。在新的JSP2.0规范中,为JSP的易用性进行了重新的设计,而JSP技术继续继承了Java技术的优势,如简单易用、完全面向对象、具有平台无关性且安全可靠、主要面向Internet的所有特点。

2 JSP技术原理

JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP技术的基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP动态网页生成的技术原理是:用户向表单中输入数据,确定后浏览器把客户端的数据发送到Web服务器,服务器编译解析JSP并生成动态网页返回到客户端的浏览器中(图1)。

3 JSP平台搭建

现在中小企业及个人较为流行的jsp平台配置是windows xp professional+JDK+TOMCAT.Tomcat6.0,是当今使用广泛的Servlet/JSP服务器,它运行稳定,性能可靠,可以直接从网络中下载。Java开发工具和运行环境为JDK1.6。数据库使用的是微软的MySQL。UltraEdit进行代码编写,Dreamveaver MX进行页面设计。

首先要安装JDK,它是整个框架的基础,然后安装Tomcat6.0过程中需要指定JDK的安装地址。JDK安装成功后需要设定JAVA_HOME、CLASSPATH和PATH三个环境变量,具体的是,JAVA_HOME是软件安装的地址,CLASSPATH为.;JAVA_HOME:\lib\tools.jar; JAVA_HOME:\lib\dt.jar,PATH设为Java bin的位置即可。数据库MySQL和Tomcat,能直接从网络中获取,同其它大型数据库软件如Oracle、SqlServer2000等不同的是,整个数据库运行环境都是在字符操作界面下完成的,而不是现在流行的Windows窗体,但它的优势也是显而易见的,对平台要求低、免费、高效,完全满足一般需求。由于要通过JDBC将数据库和前端页面衔接起来,我们还需要MySQL的JDBC驱动程序mm.mysql-2.0.4-bin或者是mysql-connector-java-3.0.11-stable-bin,两者均可。这样整个平台就搭建成功了。整个平台的成本非常低,最为重要的几个软件都是免费获取的。就系统配置和成本方面考虑,此平台是较为理想的选择。

4 数据库设计

4.1 数据库驱动程序

JDBC API为Java开发者使用数据库提供了统一的编程接口,它由一组Java类和接口组成。JDBC API使得开发人员可以使用纯Java的方式来连接数据库并进行操作。在JDBC3.0版本里,由两个包java.sql和javax.sql来提供这些功能。Java数据库驱动一共有四种,它们之间的优势与区别如表1。本网站使用的是部分Java、部分本机驱动程序。

4.2 JDBC接口的实现

通过JDBC操作数据库大致过程如下:首先装载驱动程序,然后通过DriverManager来获得一个连接,接下来创建Statement以执行SQL操作。在执行完操作后,需要关闭数据库的连接以释放资源。在开发中,具体的代码可以这样来实现:

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

Connection con=java.sql.DriverManager.getConnection("jdbc:mysql://127.0.0.1/jspdev","root","");

Statement stmt=con.createStatement();

ResultSet rst=stmt.executeQuery("select * from wetland;");

其中,Class.forName装载了特定厂商提供的数据库驱动程序,并且显式地加载驱动程序类。Connection对象代表与数据库的连接,也就是在已经加载的Driver和数据库之间建立连接。getConnection()方法中,url="jdbc:mysql://127.0.0.1/jspdev",user="root",password="",127.0.0.1是本机地址,通过localhost也能访问,jspdev是使用的数据库的名称,user是数据库的用户名,默认的是root,password是密码,默认为空。Connection接口方法createStatement()用于创建一个Statement来执行SQL语句,其返回的结果集就保存到rst实例中,结果集一般就是一个表,其中有查询返回的列标题及相应的值。通过JSP中的脚本元素、动作元素及内建对象的引用,JavaBean的实现就能将数据库中的内容调用到客户端页面中显示出来。

在数据库调用之后,需要使用代码关闭连接以释放资源:

rst.close();

stmt.close();

con.close();

4.3 数据源和连接池

数据库连接的建立及关闭对系统而言是耗费系统资源的操作,在多层结构的应用程序环境中,这种耗费资源的动作对系统的性能影响尤为明显。在传统的数据库连接方式中,一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。

数据库连接池的解决方案就是在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应在请求队列中排队等待。并且应用程序可根据池中连接的使用率,动态增加或减少池中的连接数。连接池技术尽可能多地重用了消耗内存的资源,大大节省了内存,提高了服务器的服务效率,能够支持更多的客户服务。通过使用连接池,将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。在本网站的开发中,实现连接池关键代码如下:

Context initCtx = new javax.naming.InitialContext();

Context envCtx = (Context) initCtx.lookup("java:comp/env");

DataSource ds = (DataSource)envCtx.lookup("jdbc/jspdev");

同时,我们还要在Tomcat中配置数据源,这样,Tomcat就会把这个数据源绑定到JNDI名称空间,可以通过(DataSource)envCtx.lookup("jdbc/jspdev")来查找这个资料源。查找到资料源,就可以通过Connection conn = ds.getConnection();方法来获得一个到数据库的连接。当执行完数据库操作时,我们可以执行con.close()方法,以让连接池管理器回收这个连接,但并不用关闭到数据库的物理连接。

5 JavaBean设计

JSP最强有力的一个方面就是能够使用JavaBean组件体系。JavaBean往往封装了程序的页面逻辑,它是可重用的组件。通过使用JavaBean,可以减少在JSP中脚本代码的使用,这样使得JSP易于维护,也使得JSP网站的安全性大大提高。

JavaBean传统的应用在于可视化领域,现在,JavaBean更多的应用在不可视化领域,它在服务器端应用方面表现出了越来越强的生命力。不可视化的JavaBean在JSP程序中常用来封装事务逻辑、数据库操作等,可以很好地实现业务逻辑和前台程序的分离,使得系统具有更好的健壮性和灵活性。

本网站作为数据库专业网站也使用了JavaBean来封装逻辑和数据库操作。在数据库的访问中,我们可以把查找资料并访问连接的操作封装起来,作为一个工具类使用,这就是JavaBean,它大大提高了组件的重用性,也使得数据库操作更为简单与容易:

package com.jspdev.util;

import java.sql.*;

import javax.naming.*;

import javax.sql.DataSource;

//一个用于查找数据源的工具类。

public class DatabaseConn {

publicstaticsynchronized Connection getConnection() throws Exception

{try

{Context initCtx = new javax.naming.InitialContext();

Context envCtx = (Context) initCtx.lookup("java:comp/env");

DataSource ds = (DataSource)envCtx.lookup("jdbc/jspdev"); ;

return ds.getConnection();}

catch(SQLException e)

{throw e;}

catch(NamingException e)

{throw e;}}}

这个是该工具类的源代码DatabaseConn.java,用javac将它编译后就能产生JavaBean工具类。

6 树状菜单

在网站的主页面中,采用JSP和JavaScript相结合的方法来创建树状菜单。这样做的好处是能够适应树状菜单总是经常变化的需要,其内容可以动态的生成,而不是JavaScript创建的静态菜单。其中又涉及到了一个记录树状结构的表(表2)及表中树状结构的记录(图2)。

7 总结

JSP技术是当今IT行业发展最快的技术之一,这不仅是因为它基于强大的Java语言,更重要的是它得到了许多主要的Web服务器、应用服务器和开发工具商的巨大支持,在实践中不断升级与完善。“一次开发,多个平台应用”更是JSP动人之处。但是JSP开发离不开JDBC数据库编程,几乎所有的JSP项目都使用到数据库,所以在开发基于JSP技术的动态网站中掌握JDBC数据库编程技术非常重要。

上一篇:虚拟典型仪器的设计与实现 下一篇:探析僵尸网络犯罪的危害及防控