JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与建立的一种动态网页技术标准。使用JSP技术,Web页面开发人员可以使用Html或者XML标识来设计和格式化最终页面。使用JSP标识(tag)或者小脚本(Scriptlet)来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。 |
JavaBeans是一种基于Java的软件组件,JavaBeans和 ActiveX控件一样,可以通过封装业务逻辑建立一整套可重复利用的对象库。JSP对于在 Web应用中集成JavaBeans组件提供了完善的支持,这种支持不仅能缩短开发时间(可以直接利用经过测试和可信任的已有组件),避免重复开发,也为JSP应用带来了更多的可伸缩性。JavaBeans组件可以用来执行复杂的计算任务、或负责与数据库的交互以及数据提取等,本文将通过一个实例介绍在JSP中利用JavaBeans通过JDBC-ODBC Bridge访问客户信息数据库。 |
数据库连接对动态网站来说是最为重要的部分,Java中连接数据库的技术是JDBC(Java Database Connectivity)。很多数据库系统带有JDBC驱动程序,Java程序就通过JDBC驱动程序与数据库相连,执行查询、提取数据等等操作。Sun 公司还开发了JDBC-ODBC bridge,用此技术Java程序就可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、 Sybase、MS SQL Server和MS Access等数据库。下面介绍如何用Access实现一个客户信息查询程序。 |
1、首先建立一个Access数据库Customers.mdb,其中的表Customers有字段id(自动增量型,并设为主关键字)、name(文本型,长度10)、address(文本型,长度30)、 info(备注型)。 |
2、在Control Panel(控制面板)的ODBC Datasource模块中加入System DSN,取名 Customers,并指向Customers.mdb。 |
3、创建一个JavaBean,名为DBconn.java,并保存在支持JSP的Web服务器的缺省文档根目录下。DBconn.java主要是封装与数据库的连接操作,内容如下: |
import java.sql.*; |
public class DBconn { |
StringDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; |
String ConnStr = "jdbc:odbc:Customers"; |
Connection conn = null; |
ResultSet rs = null; |
public DBconn { |
try { |
Class.forName(DBDriver); |
//加载数据库驱动程序 |
} |
catch(java.lang.ClassNotFoundException e) { |
System.err.println("DBconn (): " + e.getMessage()); |
} |
} |
public ResultSet executeQuery(String sql) { |
rs = null; |
try { |
conn = DriverManager.getConnection(ConnStr); |
//与DBMS建立链接 |
Statement stmt = conn.createStatement(); |
rs = stmt.executeQuery(sql); |
} |
catch(SQLException ex) { |
System.err.println("aq.executeQuery:"+ex.getMessage()); |
} |
return rs; |
} |
} |
4、DBconn.java编辑好后,在DOS状态下,利用JDK的javac命令编译 DBconn.java形成相应的class文件。 |
5、建立Customers.jsp文件,在JSP中调用以上编译好的JavaBeans,其内容如下: |
< html > |
< head > |
< meta http-equiv="Content-Type" content= |
"text/html; charset=gb2312" > |
< title >客户信息调查< /title > |
< /head > |
< body > |
< p >< b >客户信息调查< /b >< /p > |
< %@ page language="java" import="java.sql.*" % > |
< jsp:useBean id="DBconn1" scope= |
"page" class="DBconn" / > |
< % |
ResultSet RS = DBconn1.executeQuery |
("SELECT * FROM Customers"); |
while (RS.next()) { |
out.print("< LI >" + RS.getString("name") + "< /LI >"); |
out.print("< LI >" + RS.getString("address") +"< /LI >"); |
out.print("< LI >" + RS.getString("info") + "< /LI >"); |
} |
RS.close(); |
% > |
< /body > |
< /html > |
在 < jsp:useBean > 标记内定义了几个属性,其中id是整个JSP页面内该Bean的标识, scope属性定义了该Bean的生存时间, class属性说明了该Bean的类文件。 |
事实证明,JSP是一种开发Web应用的理想构架,利用跨平台运行的JavaBeans组件,JSP为分离处理逻辑及显示样式提供了卓越的解决方案。 |