DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> XML和JSP交互技術(1)
XML和JSP交互技術(1)
編輯:XML基礎     

 

XML和JSP交互技術

  XML和JSP都是近兩年才出現的技術,目前已經成為了很多程序員的熱點話題。XML(可擴展的標記語言)是用來定義文檔標記語言的框架,主要用來存儲和發送數據信息,以便各種基於WEB的應用之間能更方便的交換數據。而Jsp是服務器端程序動態設計語言,可以用來設計服務器端各種程序如B2B、B2C等各種系統,由於其面向對象、編譯執行、健壯等特性,也得到了越來越多的應用。

  一個很實用的技術就是如何將XML和JSP結合起來,所幸的是我們不用去寫底支持層東西了,因為很多廠商如SUN、IBM等都發布了自己的支持XML的API,其中SUN公司提供了一個支持在Java下使用XML的API-JAXP(JAVATM API for XML Processing Optional Package),這部分API提供了基本的讀寫、操作XML文檔的功能,通過它我們可以很方便的將XML集成到Java應用程序中來。

  目前JAXP的版本是1.1,除了基本XML支持外還支持SAX 2.0 、DOM 2和XSL技術。SUN公司提供的JAXP可以在SUN公司的主頁http://java.sun.com/xml 下載。

  一、 JAXP的安裝

  1、安裝前請確認您用的是JDK 1.1.8 以上版本的Java環境。

  2、在http://java.sun.com/xml 下載JAXP1.1的zip版本,解壓到硬盤中,假定解壓目錄為#JAXP11,解壓後發現有三個jar文件jaxp.jar crimson.jar xalan.jar,這就是JAXP的核心了。

  3、修改系統的CLASSPATH變量,在Windows平台下添加這樣一行:

   #JAXP11\jaxp.jar; #JAXP11\crimson.jar; #JAXP11\xalan.jar

   在Unix/Linux系統下添加下面一行:

   #JAXP11/jaxp.jar: #JAXP11/crimson.jar: #JAXP11/xalan.jar alan.jar

如果你使用的是Java2的話,有一種更簡單的方法,將上面的三個文件直接拷貝到JDK的Lib擴展目錄中去,如#JAVA_HOME/jre/lib/ext(#JAVA_HOME代表JDK目錄),這樣就不用修改CLASSPATH了。

  4、好了,安裝完成了,下一步就是編寫程序然後運行了。

  二、 簡單的XML例子

  XML (EXtensible Markup Language )是一種類似HTML的語言,和HTML不同,XML主要用來描述結構化數據,通過XML格式我們可以很方便的在各種應用程序之間交換數據,而這些都是傳統技術需要花費很大精力才能做到的。

  讓我們來看一個簡單的XML文檔例子,這個例子保存了部分個人檔案,請將它保存為personal.xml文件,因為後面我們的Jsp文件還會調用它中間的數據。

  是不是很類似於HTML文件,如HTML中的元素"你好"等等,因為XML和HTML一樣都是標准SGML的子集合,所以有類似之處。但也有很多不同之處需要注意,比如XML文件必須有成對地標記而且大小寫敏感,而這些在HTML中都是默認允許的。

  第一行是必須的XML聲明, 我們可以看到聲明是在之間的,中間可以定義部分屬性,version="1.0"表示文檔將使用XML1.0的規范,encoding="gb2312"表示采用中文字符集,這樣我們在下面對於數據就可以使用中文了。

  接著就是<個人檔案>標記了,這是XML文件中的根元素,也是不可缺少的,而且必須有一個對應的結束標記,在開始和結束標記之間我們就可以定義自己的數據描述了。

  嵌套在<個人檔案>標記如"<姓名>劉玉鋒"就是具體的數據描述了,同根元素一樣必須是成對的標記,在標記中間可以是標記對應具體的數值。這種表示方法有點類似於數據庫中的記錄了,字段名字為"姓名"、"性別"等,上面的XML文件就相當於一個只有一條記錄的表"個人檔案"。當然在XML文件中可以進行多層嵌套,但這就不在本文的討論范圍了。

  當然,這裡只是一個特別簡單能代表XML的例子,XML的相關內容特別多,如果想更多了解XML的話建議還是看相關的書籍。

三、JSP和XML交互

  前面已經說過了,Jsp通過SUN公司的API-JAXP可以實現和XML的交互,那麼具體實現主要有兩種方法,一種是采用DOM2 API,另外一種是采用SAX2 API。

  在這裡我們主要討論JAXP中的SAX(Simple API for XML Parsing)技術,DOM2技術可以看SUN公司相關的文檔。

  1)關於SAX模型

  SAX模型是一種處理XML文件的方法,它是事件驅動的,有些類似於AWT中的事件驅動機制,通過事件驅動來識別XML文檔的內容。在API中關於SAX的主要有下面的幾個包:

  oorg.xml.sax

  oorg.xml.sax.helpers

  oorg.xml.sax.ext

在前台的Java程序或者是Jsp程序中通過調用這幾個包中的API就可以很好地實現Java和XML的交互。

  2)關於HandlerBase接口

  我們知道在AWT中一般是通過實施ActionListener等接口實現事件的處理的,同樣的在SAX中SUN也提供了一個類似的接口HandlerBase來處理XML解析的功能,通過將HandlerBase和XML文件關聯可以很好的來處理XML文件。

  在實施接口中我們主要重載三個HandlerBase的方法startElement(String tag, AttributeList attrs)、characters(char[] ch, int start, int length)、endElement(String name)。

  startElement()在讀取一行XML數據的開始標記時候觸發,子類必須覆蓋這個方法,這樣就可以在處理XML節點前先進行自己的處理(比如開始讀取或者寫入XML文件中的節點時候)。

  public void startElement (String name,

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved