《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > XSLT技術在JavaWeb開發中的應用

XSLT技術在JavaWeb開發中的應用

2009-03-05
作者:易小華

引 言
隨著Web2.0的提出,web開發將成為未來軟件發展的主導,各行各業都離不開網絡,因此軟件開發人員也一直在探討一種好的開發框架模型,使得開發的軟件在給用戶最好的體驗,最大限度地滿足客戶需的同時,也給開發人員最大的便利和好的分工。本文從一個側面分析了XSLT技術在JavaWeb開發中的應用,這種探討是符合軟件開發目的的可行的方案。
1 技術背景
Servlet是開發服務器端應用程序的一種強大的語言,它使用Java語言編寫,提供了對整個JAVA API的完全訪問,而且具有一個完備的Servlet API來處理HTTP請求,使用java語言編寫使他與其他相關技術相比具有易于編寫,簡單,平臺無關,可擴展性強,好維護,安全,面向對象等優點,給程序員在使用最先進的技術上帶來了極大的便利性,另外他只需裝載一次從而速度較快。但是由于它在數據處理結果顯示也就是界面設計方面的天生不足,使他在當今強調分工的社會得不到很好普及,因為編寫服務器端代碼的人一般是軟件開發人員,用Servlet使得他們不僅要編寫業務邏輯,還要考慮怎么設計界面,而這些只是美工的專長,顯然不利于分工,很容易分散程序員的精力。那么怎樣來解決這個問題呢方法有很多譬如:JSP技術,XML技術。
使用XML技術很好的解決了這個問題不失為一種上上之策。XML是一種可擴展標記語言它在描述結構型數據信息,并對他進行有效性驗證,以及轉化處理和顯示上有自己得天獨厚的優勢,因為使用Schema可以很好的描述現實世界中業務數據的規則,使用DOM技術將XML文檔抽象成一棵節點樹進行數據處理非常便利和靈活,使用Xpath和XSLT語言又可以實現數據的靈活顯示,實現與用戶交互的界面設計的靈活性也就是按需取值。另外使用自定義標記是文檔具有很好的可讀性。這兩者各自的優點便利性和強大的功能正好實現了優勢互補,非常適合Web開發中的分工和配合,另外現在隨著JAVA和XML這兩大語言的流行,也正說明了他們的融和將是一種必然的趨勢。
具體實現的探討
.
可行的模型:
下面是Servlet和XML結合應用的一種可行的MVC模型:??

??????

????????

????????

下面通過一個實例來解釋這個模型:
實例從表Paper中取出數據,再生成XMl文檔,再通過XSLT顯示。
(用戶請求Display.java,Display.java通過ConnectionPool.java和 CommonTable.java從數據庫Paper中提取數據并在XMLFile.java提供的接口下動態生成XML文檔Display.xml,最后通過XSLT文檔Display.xsl將XML文檔轉換成html頁面提供給用戶).
1. 數據庫連接與操作:ConnectionPool.java(負責建立數據庫連接)使用連接池實現。CommonTable.java(代碼略)它用于對數據庫進行各種操作。
2.?XML文檔的處理:XMLFile.java這是實現Sevlet與XML連接的關鍵,代碼略:
3.?XML文檔(Display.xml)和XSLT轉換(Display.xsl):(代碼略)
4.?使用Servlet生成XML文檔:Display.java
.Display.java
import common.XFile.*;?//??引進XMLFile.class
import common.database.*;?//?引入數據庫操作包
import javax.servlet.*;?//?引入Servlet包
import javax.servlet.http.*;
import java.io.*;?//?文件操作
import java.util.*;
public class Display extends HttpServlet {?//?該實例對象可以實現對已有XML靜
? private XMLFile file;?//?態文檔中插入動態內容(替換標記),并對一些字符進行替
? public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {?//?換以方便插入數據庫。
??????? response.setContentType("text/xml");?//?設置為XML類型
??????? PrintWriter out = new PrintWriter (response.getOutputStream());
??????? file=new XMLFile("xml\\Display.xml");?//?引入實例文檔
??????? CommonTable table1=new CommonTable("Paper");?//?建立對Paper的數據庫炒
??????? //?作對象,獲取Title,data,author,記錄數等數據
??????? Vector title=table1.selectCol("Title","PaperID");
??????? Vector date=table1.selectCol("SubmitTime", "PaperID");
??????? Vector author=table1.selectCol("author", "PaperID");
??????? int number=table1.count ("PaperID", "");
??????? String replace="";
??????? int i;
//??根據提取的數據生成動態XML數據
??????????? for(i=number-1; i>=0; i--)
??????????? {
??????????????? Vector num=table1.find("PaperID","Title='"+title.elementAt(i).toString()+"'","",1,1,100);
??????????????? String t=num.get(0).toString();
???? ???? long tmLong=Long.parseLong(date.elementAt(i).toString());
???? ???? Date currentDate=new Date(tmLong);
??????????????? replace+=""+title.elementAt(i).toString ()+""+
????? ???? ""+author.elementAt(i).toString()+""+
??? ?????? ""+(currentDate.getYear()+1900)+"."+(currentDate.getMonth()+1)+"."+(currentDate.getDate())+""+
??????????????????? "visit.html?ID="+t+""+
??????????? ??"
";
???????????? }
//?對一些特殊字符進行替換,以方便插入數據庫
??????? file.replaceAll("<%replace%>",replace);
??????? file.replaceAll("<%replace1%>",replace1);
??????? file.replaceAll("^","'");
??????? out.println(file.getContent());
??????? out.close();
??? }
}
下面可以對JSP和XML對界面設計的應用可以做一個比較:
.JSP:
1.? JSP構造頁面太痛苦. 代碼嵌入頁面導致頁面臃腫, 邏輯復雜, 不易編輯.
2. 程序員和美工的接口必須精確定義. 復雜的嵌套輸出必須構造復雜的顯示類作為接口.
3. 調試JSP必須等到前端程序結束才能看到效果.
4. 調試JSP效率極低, 一點點小的修改都會引起jsp的重新編譯.
.XSLT:
1.JDK1.4已經自帶XML API和XSLT, 并且支持XSLT 1.0標準. IE6也支持同樣標準.
2. 開發前先制作接口用的demo XML, 程序員的輸出必須符合此格式. 美工根據此格式制作XSL. 接口可視化, 明確定義.
3. 只要定義好接口XML, 兩邊幾乎不需要再聯合調試. 美工利用接口XML和IE6就可以直接看到效果.
4. 程序員只要保證輸出的XML的是否符合接口, 直觀的做文字性對比.
5. 大量頁面可重用的部分能方便的抽象出來, 在XSL文件中include/import進來. 高度重用, 標準化.
6. 寫XSL可大量采用template, 結構清晰, 修改方便, 寫頁面變成搭積木, 不再有jsp的層層嵌套.
7. 對于不同的終端設備, 可以定制不同的XSL, 很方便的就能夠支持手機, pda...
8. 在程序中利用支持XML的工具, 比如Mysql, 可以直接生成XML結果, 無需復雜編程
9.實現美工與程序員的很好的分工,使開發更加簡單。
總? 結
總之,隨著互聯網的日趨成熟,和XML,JAVA語言的日益流行JAVA和XML技術結合帶來的好處將呈現在大家眼前。
附注:
參考文獻:

1.?《JavaSevlet編程》Jason Hunter,William Crawford 中國電力出版社 2002年6月
2.?《XML技術及其使用》沈裕和? 北京信息工程學院內部教材? 2005
3.?《java核心技術》卷Ⅱ Cay S.Horstmann 機械工業出版社 2003.1
4.?《XML技術內幕》? Natanya Pitts? 機械工業出版社 2002年1月

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 日本视频在线免费观看 | 女人张开腿让男人桶视频免费大全 | 99精品国产成人一区二区在线 | 欧美一二区视频 | 成人免费视频一区二区三区 | 亚洲欧美一区二区三区孕妇 | 国产精品亚欧美一区二区三区 | 国产在线观看午夜不卡 | 免费在线观看一区 | 国产精品欧美亚洲 | 精品一区二区三区中文字幕 | 国产区二区 | 偷看各类wc女厕嘘在线观看 | 日韩不卡毛片 | 手机看片自拍自自拍日韩免费 | 97人摸人人澡人人人超一碰 | 久久精品视频在线观看榴莲视频 | 久久久成人啪啪免费网站 | 亚洲精品高清国产麻豆专区 | 亚洲天堂男人在线 | 麻豆国产视频 | 国内久久久| 亚洲在线视频一区 | 美女黄色三级 | 一级女性全黄久久生活片 | 亚洲欧洲国产精品 | 日韩在线视频免费 | 国产欧美综合在线一区二区三区 | 99久久精品免费看国产 | 九九在线精品 | 自拍偷拍亚洲区 | 国产欧美日韩在线视频 | 日韩美女在线看免费观看 | 高清性色生活片久久久 | 国内自产拍自a免费毛片 | 国产免费久久精品99 | 久久毛片网站 | 特黄特黄一级高清免费大片 | 综合久久一区二区三区 | 国产精品日本一区二区不卡视频 | 国产真实女人一级毛片 |