WEB开发网
开发学院数据库DB2 创建访问 DB2 Everyplace 的 JSP 应用程序 阅读

创建访问 DB2 Everyplace 的 JSP 应用程序

 2009-11-16 00:00:00 来源:WEB开发网   
核心提示:简介IBM® DB2® Everyplace™ 是为个人数字助理(PDA)、手持个人电脑、移动电话和嵌入式设备设计的占用资源较少的关系数据库解决方案,它是 IBM 移动计算解决方案的一部分,创建访问 DB2 Everyplace 的 JSP 应用程序,它能让移动的专业人士(如销售人员)无论走

简介

IBM® DB2® Everyplace™ 是为个人数字助理(PDA)、手持个人电脑、移动电话和嵌入式设备设计的占用资源较少的关系数据库解决方案。它是 IBM 移动计算解决方案的一部分,它能让移动的专业人士(如销售人员)无论走到哪里都可以访问所需要的重要数据。

在关于 DB2 Everyplace 的前几篇文章中,我已经描述了:

使用 DB2 Everyplace 创建用于掌上设备的移动应用程序(Creating a Mobile Application for Palm Devices Using DB2 Everyplace),

使用 DB2 Everyplace 构建无线 Java 应用程序(Building Wireless Java Applications Using DB2 Everyplace)和

使用 DB2 Everyplace 使无线应用程序数据同步(Synchronizing Wireless Application Data Using DB2 Everyplace)。

在本文中,我将更进一步,向您描述如何创建和部署 JSP 应用程序以从移动应用程序访问 DB2 Everyplace 数据。我们将完成下列步骤:

回顾 DB2 Everyplace JSP 支持和定制标记

用 Java™ 创建 DB2 Everyplace 数据库表

构建样本 JSP 应用程序

使用 DB2 Everyplace 提供的微型 HTTP Web 服务器在 Windows® 工作站上部署和测试样本应用程序

在 Windows CE® 设备上安装 DB2 Everyplace JSP 支持

本文假定已经在 Windows 2000 环境上安装和配置了 DB2 Everyplace 8.1 和 SDK。请参考 文档以了解 DB2 Everyplace 安装指示信息。当您准备试用我所描述的样本应用程序时,请转至本文 下载一节。

DB2 Everyplace 对 JSP 开发的支持

DB2 Everyplace 解决方案由下列组件构成:

数据库引擎:为移动设备设计的占用资源较少的关系数据库系统。

同步服务器:在移动设备上的 DB2 Everyplace 数据库和企业数据库之间移动数据的双向同步服务器。

移动应用程序构建器:一个用于创建在移动设备上运行的 DB2 Everyplace 应用程序的快速应用程序开发工具。

有关这些组件的更多信息,请参阅文章 使用 DB2 Everyplace 为 Palm 设备创建移动应用程序。

这个关系数据库引擎为关系数据提供持久存储并且提供使用 SQL 提供修改和检索记录的能力。可以用几种不同的方法访问 DB2 Everyplace 数据库中的数据,包括使用命令行处理器(Command Line Processor,CLP)发出 SQL 语句和使用将 ODBC 或 JDBC™ 用作调用级接口的应用程序。

此外,DB2 Everyplace 还提供了用于数据库访问的 JSP 支持,可以将这种支持部署在提供了 Java™ 运行时环境的移动设备上。

JSP 支持可用于下列操作系统:

Win32(Windows NT® 和 Windows 2000)

Windows CE/Pocket PC

使用 Java 创建 DB2 Everyplace 数据库表

为了演示 DB2 Everyplace 对 JSP 应用程序开发的支持,我在本文中包括了一个 样本应用程序。

首先,我们将创建一个稍后将由 JSP 应用程序访问的 ITEM 表。ITEM 表包含每项物品的标识、描述、价格和可用性。

要创建 ITEM 表,将 sample-db2jsp.zip 文件解压缩到 c:\\directory, directory 代表您选择的任何目录。这将创建一个名为 sample 的文件夹。sample 目录中包含 BuildDB.java 和名为 SetupDB.bat 的批处理文件。

要创建数据库,修改 SetupDB.bat 以使 DB2EVERYPLACE_LOCATION 变量指向安装 DB2 Everyplace 的位置。当运行 SetupDB.bat 时,它会编译并运行 BuildDB.java 文件。

BuildDB 类将在目录 C:/sample/Data/ 中创建 ITEM 表。如果在运行该文件时发生错误,请确保为 DB2EVERYPLACE_LOCATION 设置的路径是正确的。

运行 SetupDB.bat 之后,会收到下列消息:

      Table: ITEM created    
      Results from table ITEM :     
          
ITEM_ID: A1001  
ITEM_NAME: Think Pad 
ITEM_DESC : Configuration P4,256 SDRAM. 
ITEM_PRICE : $25000. 
ITEM_AVAILABLE: Y 

DB2 Everyplace 定制标记以及 JSP 支持的概述

DB2 Everyplace 中对 JSP 的支持由两个组件构成:

微型 HTTP Web 服务器

JSP 处理器

微型 HTTP Web 服务器使用 HTTP 1.1 协议接收来自 Web 浏览器的请求,并将响应发送回 Web 浏览器。JSP 处理器解析 JSP 文件,生成相应的 Java 源代码,然后编译该源代码。Java 源代码可能包含在 JSP 页面受到请求时生成动态内容的 Java Bean。当 JSP 页面受到请求时,微型 HTTP Web 服务器执行相应的 Java 代码,然后将输出作为对请求的响应发送回 Web 浏览器。

JSP 应用程序开发是在 Windows 工作站上完成的,然后移植到移动设备上。

DB2 Everyplace JSP 支持中提供的 JSP 标记

DB2 Everyplace 中的 JSP 标记是 JSP 1.1 规范的子集。可用于 JSP 开发的标记如下:

page 伪指令:
page 伪指令定义了依赖于页面的属性。语法如下:

  <%@ 
   page page_directive_attr_list %> 
   page_directive_attr_list ::= 
   {language="scriptingLanguage"} 
   {extends="className" } 
   {import="importList" } 
   {contentType="ctinfo" } 

这条伪指令的四个有效属性是:

language— 必须是“java”。

extends — 如果被指定,必须出现在 JSP 文件的开始处。缺省情况下,导入 com.ibm.db2e.jsp.server、java.io、java.sql 和 java.util 包。

import— 如果被指定,必须出现在 JSP 文件的开始处。

contentType— 可以是任何值(如 text/HTML、text/XML 等)。

include 伪指令
include 伪指令用来包含来自于 JSP/HTML 的数据。语法如下:

 <%@ include file="relativeURLspec" %> 

脚本元素
脚本编制元素用来声明 JSP 页面中使用的 Java 变量和方法。语法如下:

 <%! declaration(s) %> 

所支持的脚本编制元素如下:

scriptlet

scriptlet 可以包含任何有效(Java)代码段。这些代码段将被放到用于 JSP 页面的 Java 类的服务函数中。语法如下:

<% scriptlet %>

表达式(expression)

表达式是数据类型的字符串表示。JSP 处理器在运行时对表达式求值,并将表达式转换成字符串。语法如下:

<%= expression %>

隐式对象
当创建 JSP 页面时,我们具有对某些隐式对象的访问权。可以在 scriptlet 和表达式中使用这些对象,而不必首先声明它们。每个隐式对象都具有一个在核心 Java 技术或 com.ibm.db2e.jsp.server 包中定义的类。隐式对象的声明如 表 1所示。

表 1. 隐式对象

隐式变量 类型 表示
requestcom.ibm.db2e.jsp.server.MiniHttpRequest对 JSP 页面的请求。
responsecom.ibm.db2e.jsp.server.MiniHttpResponse对请求的响应。
injava.io.BufferedReader此对象当前不可用。
outjava.io.PrintStream写入 Web 浏览器的对象。
exceptionjava.lang.Throwable执行 JSP 页面期间抛出的异常。

用于数据库访问的定制标记
可以在 JSP 应用程序中使用以下定制标记来访问 DB2 Everyplace 数据库:

< tsx:dbconnect >

该标记使用 DB2 Everyplace JDBC 驱动程序建立与指定的 DB2 Everyplace 数据库的连接。语法如下:

<tsx:dbconnect 
id="connection_id" 
driver="com.ibm.db2e.jdbc.DB2eDriver" 
url="jdbc:db2e:database"> 
</tsx:dbconnect> 

其中

id — 指定此连接的标识符。不要在 JSP 页面中重用此名称。该属性是必需的。

driver — 指定 DB2 Everyplace JDBC 驱动程序。该属性是必需的。

url — 指定 DB2 Everyplace 数据库。jdbc:db2e:database 变量中的项 database 表示 DB2 Everyplace 数据库的路径。该属性是必需的。

< tsx:dbquery >

此标记使用通过 <tsx:dbconnect> 标记指定的连接将查询提交给数据库,并生成一个 java.sql.ResultSet 对象,在该对象中游标指向结果集的第一行。可以使用此查询的标识符和 java.sql.ResultSet 的 DB2 Everyplace JDBC 接口引用此结果集。语法如下:

<tsx:dbquery id="query_id" connection="connection_id" limit="value"> 
select_SQL_statement 
</tsx:dbquery> 

其中

id — 指定此查询的标识符。不要在 JSP 页面中重用此查询标识符。该属性是必需的。

connection — 指定此 JSP 文件中 <tsx:dbconnect> 标记的标识符。该属性是必需的。

limit — 指定查询可以返回的最大行数。该属性是可选的。

select_SQL_statement — 指定想要提交给数据库的 SQL 查询。此 SQL 查询语句可以包含动态数据。

< tsx:dbmodify >

此标记使用通过 < tsx:dbconnect > 标记指定的连接来提交命令,以修改数据库内的数据。语法如下:

<tsx:dbmodify connection="connection_id"> 
modify_command 
</tsx:dbmodify> 

其中

connection — 指定此 JSP 文件中 <tsx:dbconnect> 标记的标识符。该属性是必需的。

modify_command — 指定要提交到数据库以修改数据的 SQL 命令。此修改命令可以包含动态数据。

< tsx:repeat >

此标记用来循环遍历查询结果中的每一行。start 和 stop 属性控制循环过程。如果未指定 start 和 stop 属性,当结果集的游标(通过 < tsx:getProperty > 标记引用)到达结果集的末尾时循环终止。可以嵌套此标记。语法如下:

<tsx:repeat index="name" start="starting_index" stop="ending_index"> 
repeat_block 
</tsx:repeat> 

其中

index — 指定此标记的循环变量的标识符。该属性是可选的。

start — 指定处理重复块之前要跳过的行数。缺省值为 0,该属性是可选的。

stop — 指定此重复块的结束循环变量值。缺省值是 2,147,483,647。该属性是可选的。

repeat_block — 指定 HTML 标记块,其中包含 < tsx:getProperty > 标记语法和用于格式化内容的 HTML 标记。如果将 < tsx:getProperty > 标记放置在重复块中,游标在每次处理重复块时都会进到下一行。

< tsx:getProperty >

此标记获取要在 JSP 页(HTML 结果页)中显示的 ResultSet bean 的值。如果将此标记放置在 < tsx:repeat> 重复块内,ResultSet bean 的游标在每次处理重复块时会进到下一行。语法如下:

 <tsx:getProperty name="bean_name" 
 property="property_name" /> 

其中

name (必需)— 指定先前在该 JSP 文件的 < tsx:dbquery > 标记中声明的 ResultSet bean 的名称。

property (必需)— 指定要访问的 ResultSet bean 的列。

有了这些信息,我们就可以着手构建 JSP 应用程序了,它将访问我们先前创建的 DB2 Everyplace 表。

构建 JSP 应用程序

先前解压缩得到的文件夹 c:\\sample\\jsp 包含 ITEMSelectView.jsp 文件,这是我们的应用程序。 ITEMSelectView.jsp 应用程序显示 ITEM 表中存在的所有项。 ITEMSelectView.jsp 利用了先前讨论的 JSP 标记。

让我们着手分析一些重要的代码片段。首先我们将创建数据库连接。

 <tsx:dbconnect 
 id="conn"  
 url="jdbc:db2e:c:/sample/data/" 
 driver="com.ibm.db2e.jdbc.DB2eDriver"> 
 </tsx:dbconnect> 

我们在这里指定的 URL 是数据库的位置,在本例中是 c:/sample/data/ 。

我们通过使用下面所示的 < tsx:dbquery > 标记执行 SQL 查询:

<tsx:dbquery connection="conn" id="Query1DBBean">  
   SELECT * FROM ITEM 
</tsx:dbquery> 

然后,我们用下面所示的 < tsx:getProperty > 检索数据库查询的结果:

<tsx:getProperty name="Query1DBBean" property="ITEM_ID" /> 

这会从 ITEM_ID 列中检索值。该技术对于我们希望检索的其余列同样有效。

接下来,我们将着手部署 JSP。

部署和测试 JSP

可以用 DB2 Everyplace 提供的微型 HTTP Web 服务器在 Windows 工作站上测试所开发的应用程序。在 Windows 上采用下列步骤测试您的应用程序:

浏览至 DB2EVERYPLACE_LOCATION\\Clients\\JSP\\WIN32 。编辑文件 MiniHttpConfig.properties ,并修改 JspPath= c:\\\\sample\\\\jsp 项使其指向您的 JSP 文件的位置。

执行 runJspServer.bat 文件以执行 MiniHttpServer。

打开浏览器并输入 http://localhost/ITEMSelectView.jsp 。您将收到下列消息,它表明 JSP 处理器已经成功编译了我们的 JSP 文件。单击 ITEMSelectView.jsp 文件以查看结果。    
      DB2 Everyplace JSP Compiler 
 JSP page: c:\\sample\\jsp\\ITEMSelectView.jsp 
   Parsing ... 
   Compiling ... 
   Done. 
 Try it: ITEMSelectView.jsp 

出现以下屏幕( 图 1),它显示了 Item 表中的数据。


图 1. JSP 结果
创建访问 DB2 Everyplace 的 JSP 应用程序

图片看不清楚?请点击这里查看原图(大图)。

接下来我们将着手在 Windows CE 设备上部署该应用程序。

在 Windows CE 设备上部署应用程序

在工作站上开发了 JSP 应用程序之后,只需将应用程序的类文件和用于执行 JSP 的微型 HTTP Web 服务器一起复制到移动设备上。

下列步骤可以用于在 Windows CE 设备上部署该应用程序(或任何 JSP 应用程序)。

下载并安装用于移动设备的 J9 JVM 运行时环境。

将下列文件从开发工作站复制到移动设备的 WINDOWS 目录: DB2EVERYPLACE_LOCATION \\Clients\\WinCE\\database\\ver\\processor_type\\DB2e.dll 
DB2EVERYPLACE_LOCATION \\Clients\\WinCE\\database\\ver\\processor_type\\db2ejdbc.dll 
DB2EVERYPLACE_LOCATION\\Clients\\WinCE\\database\\jdbc\\db2ejdbc.jar 

其中 processor_type 是设备的处理器类型, ver 是设备的版本类型。

将下列文件从 DB2EVERYPLACE_LOCATION\\SDK\\JSP\\WINCE 复制到设备的根目录。     minijsp.jar 
    MiniHttpServer.lnk 

将文件 MiniHttpConfig.properties 从 DB2EVERYPLACE_LOCATION\\Clients\\JSP\\WIN32 复制到设备的根目录。

打开 File Explorer 并单击根目录中的 MiniHttpServer 快捷方式以启动 MiniHttpServer 服务器。

创建下列目录: sample\\data 
sample\\jsp 

并将 c:\\sample\\jsp 中的 *.class 复制到设备上的 sample\\jsp ,并将 c:\\sample\\data 中的所有文件复制到设备上的 sample\\data 中。

在 Web 浏览器中输入下列 URL: http://localhost/ITEMSelectView.jsp 

您应该看到一个包含了 ITEM_ Desc 值的表。

结束语

在本文中,我们成功地创建和部署了一个 JSP 应用程序,它访问存储在 DB2 Everyplace 数据库中的数据。我们还完成了在 Windows CE 设备上部署应用程序的步骤。可以进一步使用这些知识来开发用于 Windows CE/Pocket PC 设备的复杂 JSP 应用程序。

本文示例源代码或素材下载

Tags:创建 访问 DB

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接