国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

XML——連接SQL和Web程序的橋梁

2019-11-18 16:23:41
字體:
供稿:網(wǎng)友
xml——連接SQL和Web程序的橋梁

作者:Alexander PRokhorenko,Olexiy Prokhorenko

譯者:Aaron Chu(acdemo@Gmail.com)

08/22/2005


版權(quán)聲明:可以任意轉(zhuǎn)載,轉(zhuǎn)載時(shí)請務(wù)必以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明
英文原文地址:
http://dev2dev.bea.com/pub/a/2005/06/xml_bridge.Html
中文地址:
http://www.matrix.org.cn/resource/article/43/43673_XML_SQL_Web.html
關(guān)鍵詞: XML SQL Web

摘要
過去幾年XML技術(shù)作為Internet上交換信息的格式受到了極大的歡迎。今天XML常常被描述成一種孤立的技術(shù),但它最初誕生的時(shí)候卻是一種(介于HTML和SGML之間的)Internet技術(shù)。本文討論XML如何被用作數(shù)據(jù)庫和最終用戶間的“通訊協(xié)議”。

當(dāng)前最流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng)用SQL查詢語言來與數(shù)據(jù)打交道。雖然面向XML(XML-oriented)的數(shù)據(jù)庫已經(jīng)面市,卻不常見。而XML如此流行,關(guān)系數(shù)據(jù)庫開發(fā)者也在為產(chǎn)品增加XML兼容性的過程中學(xué)習(xí)進(jìn)步。本文考察其中一種途徑:讓數(shù)據(jù)庫返回XML。示范代碼中用到了一個(gè)Oracle數(shù)據(jù)庫,它被假定是XML兼容的,能處理XML數(shù)據(jù)。

本文分為兩部分。第一部分預(yù)備和Oracle數(shù)據(jù)庫打交道的java代碼:提交一個(gè)SQL查詢,獲取一個(gè)XML輸出;第二部分專注于一個(gè)web程序:將從數(shù)據(jù)庫獲取的XML數(shù)據(jù)輸出為HTML文本。

要求
本文中用到下列軟件:
BEA WebLogic Platform 8.1 with SP4 ——作應(yīng)用程序服務(wù)器。
Oracle 10g Database Server ——作數(shù)據(jù)庫服務(wù)器。你可以用不同版本的服務(wù)器來試驗(yàn)代碼;據(jù)我們所知,本方案不需要特定的版本。
Oracle XML-SQL Utility (XSU) ——XSU是一組充當(dāng)PL/SQL包裝(wrapper)的Java類,它允許查詢返回XML包裝起來的結(jié)果集或?qū)ο蟆?
Oracle XML Parser, Version 2 ——Oracle的基于Java校驗(yàn)XML有效性的解析器(parser),支持XSL。一般來講XSU和XML解析器是Oracle Developer Suite的一部分。
本文中的代碼在微軟Windows xp系統(tǒng)上運(yùn)行,但只需要很小的改動(dòng)也應(yīng)該能在任何操作系統(tǒng)上正確工作。
我們假定讀者是有經(jīng)驗(yàn)的Java開發(fā)者,熟悉BEA WebLogic Server,并且有JDBC編程經(jīng)驗(yàn)。

準(zhǔn)備連接池(Connection Pool)和數(shù)據(jù)源
如果你熟悉JDBC連接池和數(shù)據(jù)源的配置,請?zhí)^這一節(jié)。
首先需要配置連接池和數(shù)據(jù)源。代碼稍后會(huì)用JNDI來獲取數(shù)據(jù)源,這需要一點(diǎn)配置。我們要配置一個(gè)JDBC連接池來保持和數(shù)據(jù)庫的連接。登入WebLogic的控制臺(tái)并選擇Service Configurations -> JDBC -> Connection Pools節(jié)點(diǎn)。
現(xiàn)在選擇“Configure a new JDBC Connection Pool...”以創(chuàng)建一個(gè)新的連接池,在接下來的畫面里選擇數(shù)據(jù)庫類型和驅(qū)動(dòng)(圖1)。

XML——連接SQL和Web程序的橋梁(圖一)
圖1. JDBC連接池:選擇數(shù)據(jù)庫

可以看到多種不同數(shù)據(jù)庫可供選擇。我們需要的數(shù)據(jù)庫類型(Database Type)是Oracle,并且將使用BEA的Oracle Driver(Type 4)。然后點(diǎn)“Continue”按鈕定義連接屬性(圖2)。

XML——連接SQL和Web程序的橋梁(圖二)
圖2. JDBC連接池:連接屬性

在這個(gè)畫面中,為JDBC連接池選擇一個(gè)名字,并設(shè)置其它諸如數(shù)據(jù)庫名和主機(jī)名、連接端口和口令等數(shù)據(jù)庫參數(shù)。

這里并不創(chuàng)建一個(gè)新數(shù)據(jù)庫和一組表,我們將使用Oracle的示例SCOTT/TIGER模式(schema)和EMP表。幾乎每個(gè)Oracle安裝中都有這個(gè)示例,因此不需要你再去配置。如果沒有EMP表或者這個(gè)表是空的,可以用Oracle目錄下的/sqlplus/demo/demobld.sql腳本重建這個(gè)表并裝入數(shù)據(jù),還可以用/sqlplus/demo/demodrop.sql刪除原有的值。
配置好這些參數(shù)之后點(diǎn)“Continue”(圖3)。

XML——連接SQL和Web程序的橋梁(圖三)
圖3. JDBC連接池:連接測試

一般情況不必對(duì)這一頁做任何改動(dòng),這是一個(gè)連接測試頁(可以點(diǎn)“Skip This Step”跳過)。WebLogic Server顯示了驅(qū)動(dòng)類名、(JDBC驅(qū)動(dòng)使用的)URL和身份驗(yàn)證(用戶名和密碼)以供核對(duì)。復(fù)核完這些參數(shù)后準(zhǔn)備測試,點(diǎn)“Test Driver Configuration”按鈕,如果一切正確,將看到“Connection SUCcessful”的信息。最后點(diǎn)“Create and deploy”按鈕完成JDBC連接池配置。
完成了JDBC連接池的工作,現(xiàn)在我們需要?jiǎng)?chuàng)建相應(yīng)的數(shù)據(jù)源。回到WebLogic Server控制臺(tái)的主頁,按照這個(gè)順序選擇:Service Configurations -> JDBC -> Data Source。在接下來的畫面中點(diǎn)擊“Configure a new JDBC Data Source”鏈接,將看到數(shù)據(jù)源配置成功頁(圖4)。

XML——連接SQL和Web程序的橋梁(圖四)
圖4. 數(shù)據(jù)源配置成功頁

要定義JDBC數(shù)據(jù)源名稱和能找到數(shù)據(jù)源的地方——JNDI路徑。務(wù)必記住JNDI路徑,稍后將用它來建立一個(gè)與我們代碼的連接。接下來選擇“Continue”,然后選擇正確的連接池和數(shù)據(jù)源關(guān)聯(lián)。選中剛剛創(chuàng)建的連接池,再點(diǎn)“Continue”,下一頁允許你選擇部署數(shù)據(jù)源的服務(wù)器和簇。從列表里選中需要的一個(gè),接著點(diǎn)“Create”。數(shù)據(jù)源已經(jīng)創(chuàng)建好,我們準(zhǔn)備寫代碼了。

準(zhǔn)備獨(dú)立(Stand-Alone)Java程序的環(huán)境
讓我們給即將編寫的小客戶程序準(zhǔn)備一個(gè)環(huán)境。為了能執(zhí)行SQL查詢和獲取XML數(shù)據(jù)作為輸出,將用到Oracle XML-SQL utility (XSU),需要配置環(huán)境變量CLASSPATH指向Oracle XML-SQL Utility的庫(library)和Oracle XML解析器。一般情況下XSU可以在Oracle的目錄/rdbms/jlib/xsu12.jar找到,XML 解析器在/lib/xmlparserv2.jar。還有我們在使用JNDI,需要在CLASSPATH中包括weblogic.jar文件,一般在WebLogic Server的安裝目錄下:/bea/weblogic81/server/lib/weblogic.jar。
典型的CLASSPATH 看起來會(huì)像下面這樣:

CLASSPATH=c:/Program Files/java/jdk1.5.0_01/lib;.;
  C:/DevSuiteHome/rdbms/jlib/xsu12.jar;
  C:/DevSuiteHome/lib/xmlparserv2.jar;
  C:/bea/weblogic81/server/lib/weblogic.jar;


考察獨(dú)立Java程序的代碼
在展示代碼前,注意到Oracle中有兩種處理XML的方法是有意義的。二者的區(qū)別很大,你應(yīng)該采用適合你手頭任務(wù)的辦法。第一種辦法是用Oracle的XSU,允許從任何SQL查詢返回XML;第二種辦法是用Oracle的XMLType列類型(column type)。

XMLType列允許將XML當(dāng)做數(shù)據(jù)庫中的一種本地?cái)?shù)據(jù)類型。因此,這些列可以像其它類型的列一樣參與查詢Consequently。Oracle提供了XMLTYPE()函數(shù)來創(chuàng)建一個(gè)XMLType數(shù)據(jù)對(duì)象,同時(shí)還提供了其它處理這個(gè)數(shù)據(jù)類型的函數(shù),比如XMLELEMENT()和XMLAGG()。從WebLogic Server的在線文檔(The Oracle Driver)或技術(shù)網(wǎng)站(Oracle Technology Network)可以讀到關(guān)于這種辦法的說明和示例。本文將專注于使用XSU的方法。
下面是在Oracle數(shù)據(jù)庫上執(zhí)行SQL查詢并產(chǎn)生XML輸出所需要的全部代碼(oraxml.java)。

1. import javax.naming.*;
2. import javax.sql.*;
3. import java.sql.*;
5. import oracle.xml.sql.query.*;

5. public class oraxml
6. {
7.        public static void main(String args[]) throws SQLException, NamingException
8.        {
9.                String tabName = "emp";
10.                int maxRows = 3;

11.                Context ctx = new InitialContext ();
12.                DataSource ds = (DataSource) ctx.lookup ("MyOra");

13.                Connection conn = ds.getConnection ();

14.      OracleXMLQuery qu = new OracleXMLQuery (
                         conn, "select EMPNO, ENAME from " + tabName);
15.                qu.setMaxRows (maxRows);
16.                qu.setRowsetTag ("EMPLOYERS");
17.                qu.setRowTag ("PERSON");

18.                String xmlString = qu.getXMLString();

19.                System.out.println (xmlString);

20.                conn.close ();
21.         }
22. }


這段代碼很簡單。
11-12行獲取一個(gè)JNDI名稱為MyOra的數(shù)據(jù)源;13和20行分別建立和關(guān)閉連接;最有意思的是14-18行執(zhí)行了一個(gè)所謂的“XML查詢”;從技術(shù)上講,這是一個(gè)經(jīng)XSU轉(zhuǎn)換為XML的SQL查詢;14行初始化查詢;15-17行設(shè)置XML文檔的結(jié)構(gòu),15行設(shè)定返回的最大行數(shù)不超過maxRows,16和17行設(shè)定文檔的根元素(root element)和項(xiàng)目分隔符(item delimiters);18行生成一個(gè)XML文檔并將其放在xmlString變量中。就像你看到的這樣,代碼很簡單易懂。(英文編者注:注意,這不是成品代碼。最后應(yīng)該在一個(gè)finally語句的括號(hào)中關(guān)閉連接。)

別忘記這段代碼中用到了JNDI。作為一個(gè)獨(dú)立的Java程序,必須安排一個(gè)命名提供者(naming provider)給它使用。我們將用WebLogic Server作為提供者,配置方法首先要建一個(gè)jndi.properties文件,然后確??梢詮沫h(huán)境變量訪問這個(gè)文件。如果CLASSPATH包含當(dāng)前目錄(.),就應(yīng)該將jndi.properties文件放在當(dāng)前目錄中。這是一個(gè)jndi.properties 文件的內(nèi)容:

java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://localhost:7001


典型的編譯命令和運(yùn)行結(jié)果像下面所展示的這樣(注意輸出被限制為不大于maxRows):

C:/white/work/Java/xmlweb_src>javac oraxml.java

C:/white/work/Java/xmlweb_src>java oraxml
<?xml version = '1.0'?>
<EMPLOYERS>
   <PERSON num="1">
      <EMPNO>7369</EMPNO>
      <ENAME>SMITH</ENAME>
   </PERSON>
   <PERSON num="2">
      <EMPNO>7499</EMPNO>
      <ENAME>ALLEN</ENAME>
   </PERSON>
   <PERSON num="3">
      <EMPNO>7521</EMPNO>
      <ENAME>WARD</ENAME>
   </PERSON>
</EMPLOYERS>


現(xiàn)在來稍微了解一點(diǎn)Oracle XML-SQL Utility的細(xì)節(jié)。可以看出,要執(zhí)行SQL查詢并以XML格式輸出的話,這是一個(gè)相當(dāng)順手的工具。當(dāng)然,XSU絕非只有區(qū)區(qū)這么一點(diǎn)功能。它可以動(dòng)態(tài)生成DTD(Document Type Definition,文檔類型定義),也可以執(zhí)行簡單的轉(zhuǎn)換。XSU還可以生成XML文檔的字符串或DOM表示形式;將XML插入數(shù)據(jù)表或視圖;更新或者刪除數(shù)據(jù)對(duì)象中的記錄;對(duì)一個(gè)給出的XML文檔生成一組復(fù)雜的嵌套XML文檔,并在平面表上創(chuàng)建對(duì)象視圖,然后在這些視圖上執(zhí)行查詢,從而將這些文檔存儲(chǔ)到一些關(guān)系表中。 從Oracle9i開始,XSU還支持對(duì)一個(gè)SQL查詢生成XML模式(schema)。還有,在生成過程中支持XML屬性。要完全搞懂如何用XSU的功能來滿足你的需要請參考XSU的文檔。

用XML搭橋的好處
作者想強(qiáng)調(diào)本教程中描述的XML轉(zhuǎn)換方法的優(yōu)點(diǎn)并解釋為什么我們覺得它有用處。讀者或許會(huì)這樣問自己:“為什么要在這里要使用XML?為什么將它稱為‘橋’?”最好的辦法是通過一個(gè)小例子來解釋將XML作為“橋”的優(yōu)點(diǎn)。假設(shè)你現(xiàn)在有一個(gè)信息門戶網(wǎng)站,設(shè)計(jì)這個(gè)門戶的目的是為了將新聞從SQL數(shù)據(jù)庫傳達(dá)到最終用戶;這些用戶可能是任何人,包括使用WAP瀏覽器的移動(dòng)電話用戶,或者裝備了現(xiàn)代瀏覽器的常規(guī)網(wǎng)上沖浪者。此外,你作為信息的所有者,可以將這些新聞轉(zhuǎn)售出去,而且新聞標(biāo)題要不一樣,例如“News from the Acme, Corp.”和“Latest news from Big Company”或者別隨便的什么。而要新聞本身卻是沒有改變,所以,技術(shù)上只是改變了“外觀(look and feel)”,那為什么要為可能收到新聞的每一類最終用戶都寫一次代碼呢?

現(xiàn)在你發(fā)現(xiàn)自己需要某種既能接受SQL又能生成不同數(shù)據(jù)格式的透明橋梁——這座橋是XML。你編寫的servlet向數(shù)據(jù)庫提出一個(gè)請求,接收XML輸出然后將一個(gè)XSL模板應(yīng)用在之上,為最終用戶生成一個(gè)頁面。這樣需要改動(dòng)的僅是一個(gè)XSL設(shè)計(jì),沒有別的東西。沒有額外的代碼,不會(huì)浪費(fèi)時(shí)間。想和其他人共享你的新聞?主意不錯(cuò),但何必允許別人訪問你的SQL數(shù)據(jù)庫?又何必費(fèi)神解釋數(shù)據(jù)庫的結(jié)構(gòu)呢?——只要簡單地由基本的SQL查詢生成并共享XML就行了。

準(zhǔn)備web程序的環(huán)境
到這里已經(jīng)成功的編寫了獨(dú)立程序的代碼,能夠執(zhí)行SQL查詢并生成XML文檔,我們完成了一半的工作。下一步要掌握WebLogic Server中將XML轉(zhuǎn)換成不同格式的選項(xiàng),再構(gòu)建一個(gè)web程序?,F(xiàn)在有許多不同的處理XML流的技術(shù),我們只關(guān)注其中一種——使用XSLT jsp標(biāo)簽(tag)的方法。
WebLogic Server提供這個(gè)小型JSP標(biāo)簽庫就是為了在JSP中方便地訪問XSTL轉(zhuǎn)換器??梢杂盟鼘ML文檔轉(zhuǎn)換為HTML、WML,以及其它格式。首先看看怎么為我們的web程序準(zhǔn)備一個(gè)能夠利用這些工具好處的環(huán)境。

每有一個(gè)web程序就配置一次CLASSPATH不是個(gè)好辦法,所以必須將要用到的Oracle數(shù)據(jù)庫jar文件放到web程序的/WEB-INF/lib目錄。同時(shí)還要從Oracle的主目錄把/rdbms/jlib/xsu12.jar和/lib/xmlparserv2.jar兩個(gè)jar文件拷進(jìn)去。WebLogic Type 4 JDBC驅(qū)動(dòng)沒有和WebLogic Server一起被安裝在主目錄,但該驅(qū)動(dòng)已經(jīng)被自動(dòng)加入到服務(wù)器的CLASSPATH中。

使用WebLogic XML標(biāo)簽的過程十分簡單,并且在Developing XML applications with WebLogic Server站點(diǎn)有很好的說明文檔。當(dāng)然,為了讀者更容易使用它,本文的二位作者會(huì)引導(dǎo)大家完成整個(gè)過程。

從WebLogic Server的安裝目錄將xmlx.zip文件拷到/bea/weblogic81/server/ext/。我們需要上述壓縮文件中的xmlx-tags.jar文件,在命令行下將這個(gè)文件放到web程序的/WEB-INF/lib目錄中:

C:/white/work/Java/xmlweb/xmlweb_war/WEB-INF/lib>pkzipc -extract 
  C:/bea/weblogic81/server/ext/xmlx.zip xmlx-tags.jar
PKZIP(R)  Version 4.00  FAST! Compression Utility for Windows
Copyright 1989-2000 PKWARE Inc.  All Rights Reserved. Shareware Version
PKZIP Reg. U.S. Pat. and Tm. Off.  Patent No. 5,051,745

MaSKINg file attributes: Read-Only, Hidden, System, Archive

Extracting files from .ZIP: C:/bea/weblogic81/server/ext/xmlx.zip
    Inflating: xmlx-tags.jar


最后在WEB-INF目錄中還需要一個(gè)web.xml文件,用<taglib>標(biāo)簽引用xmlx-tags.jar文件,像這樣:

<web-app> 
  <taglib>  
        <taglib-uri>xmlx.tld</taglib-uri>  
        <taglib-location>/WEB-INF/lib/xmlx-tags.jar</taglib-location>
  </taglib>
</web-app>


你可以查看本文附帶的示例WAR程序了解完整的例子(譯注:xmlweb.war)。

編寫web程序
本節(jié)的目標(biāo)是將我們學(xué)到的關(guān)于在獨(dú)立程序里產(chǎn)生XML的知識(shí)應(yīng)用到web程序的構(gòu)建中,另外還要將XML轉(zhuǎn)換為HTML。首先大致看看這個(gè)web程序需要哪些文件。將用到的文件包括:/WEB-INF/web.xml (前面已經(jīng)提到)、html.xls(XSL轉(zhuǎn)換器用來產(chǎn)生HTML文件的樣式表)以及index.jsp (這個(gè)web程序的主頁)。
首先考察樣式表。html.xls文件用來將轉(zhuǎn)換XML文檔以輸出HTML文檔。

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<table width="60%" border="1" cellspacing="0" cellpadding="1">
<tr>
<td align="center"><b>Employer No.</b></td>
<td align="center"><b>Employer Name</b></td>
</tr>

<xsl:apply-templates select="EMPLOYERS"/>

</table>

</xsl:template>

<xsl:template match="PERSON">

<tr>
<td align="center"><xsl:value-of select="EMPNO"/></td>
<td align="center"><xsl:value-of select="ENAME"/></td>
</tr>

</xsl:template>

</xsl:stylesheet>


正如在上面看到的,這個(gè)樣式表匹配根元素,創(chuàng)建一個(gè)表格,每當(dāng)與PERSON元素的模板匹配就插入一行。
利用這個(gè)文件我們可以從新的XML文檔生成HTML文檔。

我們這個(gè)web程序的主要文件是index.jsp,一個(gè)平常的JSP文件?,F(xiàn)在看看用到的JSP標(biāo)簽,其中的XSLT JSP標(biāo)簽語法基于XML。JSP標(biāo)簽由一個(gè)開始標(biāo)記、一個(gè)可選的主干和匹配的關(guān)閉標(biāo)簽組成。以<xslt>標(biāo)簽為例,擁有可選的(特定的)參數(shù)。比如xml,標(biāo)明想轉(zhuǎn)換的XML文件的位置(相對(duì)于web程序的文檔根目錄);比如stylesheet,標(biāo)明用于轉(zhuǎn)換XML文檔的樣式表達(dá)的位置——同樣是一個(gè)相對(duì)于web程序文檔根目錄的位置。要了解標(biāo)簽和可選項(xiàng)的更多信息,可以參考在線文檔(Using the JSP Tag to Transfer XML Data)中的“XSLT JSP Tag Syntax”一節(jié)。現(xiàn)在來看JSP文件:

1. <%@ taglib uri="xmlx.tld" prefix="x"%>

2. <HTML>
3. <HEAD>
4. <TITLE>:: An XML bridge ::</TITLE>
5. </HEAD>
6. <BODY>

7. <%@page import="java.sql.*"%>
8. <%@page import="oracle.xml.sql.query.*"%>
9. <%@page import="oracle.jdbc.*"%>

10. <%

11.        String tableName = "emp";
12.        int maxRows = 3;

13.        Context ctx = new InitialContext ();
14.        DataSource ds = (DataSource) ctx.lookup ("MyOra");

15.        Connection conn = ds.getConnection ();

16.        OracleXMLQuery qu = new OracleXMLQuery
      (conn, "select EMPNO, ENAME from " + tableName);

17.        qu.setMaxRows (maxRows);
18.        qu.setRowsetTag ("EMPLOYERS");
19.        qu.setRowTag ("PERSON");

20.        String xmlString = qu.getXMLString ();

21.        conn.close ();
22. %>

23. <x:xslt stylesheet="html.xsl">  
24. <x:xml>        
25.        <%=xmlString%>
26. </x:xml>
27. </x:xslt>

28. </BODY>
29. </HTML>


第1行將稍后23行要用到的xmlx標(biāo)簽庫包含進(jìn)來。7至22行是從常規(guī)Java代碼到JSP代碼的轉(zhuǎn)換(沒有進(jìn)行異常處理)。這里的語法有些小變化,此外沒有別的。23到27行是實(shí)際顯示的XML代碼。23行配置XML輸出并設(shè)定樣式表為html.xsl。24到26行將取自數(shù)據(jù)庫,等待轉(zhuǎn)換的XML包含進(jìn)來。正如你看到的,代碼很淺顯。

熟悉了代碼,就要準(zhǔn)備編譯我們的web程序并部署到WebLogic Server上。一個(gè)這么簡單的WAR程序只要手工編譯就可以了。下面是創(chuàng)建xmlweb.war程序以備發(fā)布的步驟:

C:/white/work/Java/xmlweb/xmlweb_war>jar -cvf xmlweb.war .
added manifest
adding: html.xsl(in = 579) (out= 279)(deflated 51%)
adding: index.jsp(in = 935) (out= 486)(deflated 48%)
adding: WEB-INF/(in = 0) (out= 0)(stored 0%)
adding: WEB-INF/lib/(in = 0) (out= 0)(stored 0%)
adding: WEB-INF/lib/xmlparserv2.jar(in = 689990) (out= 645476)(deflated 6%)
adding: WEB-INF/lib/xmlx-tags.jar(in = 11106) (out= 9952)(deflated 10%)
adding: WEB-INF/lib/xsu12.jar(in = 456545) (out= 138160)(deflated 69%)
adding: WEB-INF/web.xml(in = 327) (out= 226)(deflated 30%)


現(xiàn)在,找到編譯好的web程序WAR文件并部署到WebLogic Server。
這可以利用WebLogic控制臺(tái)做到。部署好后在web瀏覽器中打開下面這個(gè)地址查看結(jié)果:
http://localhost:7001/xmlweb/index.jsp

應(yīng)該能看到類似圖5的情形。

XML——連接SQL和Web程序的橋梁(圖五)
圖5. 部署web程序

正如上圖展示的,從數(shù)據(jù)庫中以XML形式獲取的數(shù)據(jù)按漂亮的格式顯示了出來?,F(xiàn)在我們可以在很多地方用到這種技術(shù),從簡單的新聞聚合(news feed)到有模板和樣式表的復(fù)雜列表引擎。

結(jié)語
本教程為讀者奉上了整合SQL查詢和XML轉(zhuǎn)換器的基礎(chǔ)知識(shí),給出了一個(gè)可以用在你自己軟件中的特性。XML技術(shù)本身在web程序方面有許多用處,而與數(shù)據(jù)庫的整合使它成為更強(qiáng)大的工具。

下載
本文中的獨(dú)立Java程序:xmlweb_src.zip:[下載文件]
文中的web程序:xmlweb.war:[下載文件]

作者介紹
Alexander Prokhorenko 是一位經(jīng)過認(rèn)證的專業(yè)人員,獲得Sun系統(tǒng)管理員認(rèn)證和Sun Java程序員認(rèn)證。他的興趣領(lǐng)域包括系統(tǒng)開發(fā)生命周期、IT項(xiàng)目管理、服務(wù)器和應(yīng)用程序架構(gòu)。
Olexiy Prokhorenko 是一位Sun認(rèn)證企業(yè)架構(gòu)師,同樣獲得了Sun Java程序員認(rèn)證和Sun Web組件開發(fā)者認(rèn)證。他的興趣領(lǐng)域包括Web軟件架構(gòu)、高頻變更需求的軟件開發(fā),以及異地外包團(tuán)隊(duì)的管理。

(出處:http://m.survivalescaperooms.com)



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 曲阳县| 延庆县| 关岭| 弋阳县| 明星| 彭阳县| 大姚县| 新津县| 永吉县| 昌吉市| 桐乡市| 林周县| 桃园市| 清苑县| 东辽县| 石棉县| 白水县| 九寨沟县| 赤水市| 北安市| 江城| 嘉兴市| 读书| 宝清县| 昌宁县| 桃源县| 延庆县| 丰台区| 邹城市| 平遥县| 永吉县| 曲麻莱县| 锡林浩特市| 滕州市| 霍邱县| 黔南| 青阳县| 德惠市| 景东| 安顺市| 连山|