六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

XML在B/S架構開發中的應用

[摘要]傳統上, 我們利用JSP+Bean來開發用戶界面, 這里介紹一種利用XML+XSLT的方法來替代JSP  動機:  1. JSP構造頁面太痛苦. 代碼嵌入頁面導致頁面臃腫, 邏輯復雜, 不易編輯.  2. 程序員和美工的接口必須精確定義. 復雜的嵌套輸出必須構造復雜的顯示類作為接口.  3. 調試...
傳統上, 我們利用JSP+Bean來開發用戶界面, 這里介紹一種利用XML+XSLT的方法來替代JSP

  
動機:

  1. JSP構造頁面太痛苦. 代碼嵌入頁面導致頁面臃腫, 邏輯復雜, 不易編輯.
  2. 程序員和美工的接口必須精確定義. 復雜的嵌套輸出必須構造復雜的顯示類作為接口.
  3. 調試JSP必須等到前端程序結束才能看到效果.
  4. 調試JSP效率極低, 一點點小的修改都會引起jsp的重新編譯.

  新的XML的解決方案:

  1. 一個servlet做統一管理. 接受url請求, 映射到對應的程序bean.
  2. 程序bean只產生XML, 由servlet統一用對應的XSL轉換為html.

  好處:

  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的工具, 比如sql2000, 可以直接生成XML結果, 無需復雜編程.

  
壞處:

  1. 因為要進行XSLT轉換, 服務器工作量稍微增大.

  以下是幾個關鍵環節的簡單示例:

==============servlet中的XML轉換==========
/**
* XML是String
* XSL從文件中讀取
* 直接寫入response
*/
//import javax.xml.transform.*;
//import javax.xml.transform.stream.*;

StreamSource xml = new StreamSource(new StringReader(xmlSource));
StreamSource xsl = new StreamSource(xslFileName);

response.setContentType("text/html; charset=UTF-8");
StreamResult result = new StreamResult(response.getWriter());

Transformer trans = TransformerFactory.newInstance().newTransformer(xsl);
trans.setOutputProperty("encoding","UTF-8");
trans.transform(xml, result);

==================接口XML文件樣本=============
<?xml version="1.0" encoding="UTF-8"?>
<?xml:stylesheet type="text/xsl" href="xxx.xsl"?>
<PAGE>
<OUTPUT>
<INFO>推廣UNICODE, 解決多語言問題.</INFO>
</OUTPUT>
</PAGE>

==================XSL文件樣本=============
<?xml version="1.0" encoding="UTF-8"?>
<?xml:namespace prefix = xsl /><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">

<P align=center>
<xsl:value-of select="page/output/info"></xsl:value-of>

</xsl:template>
</xsl:stylesheet>

  考慮:

  1. 可以把XSLT轉換放在IE進行, IE6以下版本要安裝MSXML3, 對客戶端限制太多.
  2. 在客戶端的XSLT轉換必須完全讀入XML+XSL, 在網速不高或者內容很多的時候反應相當遲鈍.
  3. 手機, pda等設備不能進行XSLT轉換, 所以XSLT轉換還是放在服務器上比較合適.
  4. 因為一般提交內容都比較簡單, 所以沒有采用XML處理, 在程序中也盡量少用XML, 避免影響速度.
  5. 可以在servlet判斷特定參數, 比如發現有xml-view參數時, 不做XSLT轉換, 直接輸出XML到瀏覽器, 供程序調試用.

  說明:

  1. 這里只是利用XSLT的功能來解決網站建設中最頭痛的界面和邏輯分開問題, 不是基于XML的內容處理.
  2. 如果你想趕時髦, 用XML來全副武裝, 可以參考cocoon2, http://xml.apache.org/cocoon/. 但是請記住, cocoon

  還不完善, 你將碰到亂碼, 速度, 文檔不足的問題, 但是它的思想的確值得學習.
  3. 在tomcat, resin中有用filter實現的xslt轉換,可參考。





主站蜘蛛池模板: 婷婷五色 | 日韩爱爱视频 | 婷婷春色| 五月婷婷俺来也 | 日本在线观看高清不卡免v 日本在线观看a | 中文字幕在线乱码免费毛片 | 欧美一级三级 | 亚洲免费视 | 人人爽天天爽夜夜爽曰 | 青青草原手机在线视频 | 伊人影视频| 在线观看精品国产福利片100 | 日韩在线不卡视频 | 一级做性色a爰片久久毛片 一级做受视频免费是看美女 | 中文字幕在线三浦惠理子 | 天堂中文网 | 日韩二级片 | 欧美怡红院视频一区二区三区 | 新激情五月 | 天天色天天干天天射 | 中文天堂在线视频 | 日韩免费在线视频观看 | 欧美综合图区亚洲综合图区 | 青青草国产免费久久久91 | 四虎澳门永久8848在线影院 | 欧美在线中文 | 欧美一级视频在线观看 | 午夜在线观看视频在线播放版 | 天天操天天射天天爽 | 日本免费网站视频www区 | 视频一区二区三区欧美日韩 | 亚洲视频免费在线观看 | 色偷偷91综合久久噜噜app | 在线资源天堂 | 亚洲综合站 | 亚洲s色大片在线观看下载 亚洲s色 | 新午夜影院 | 欧美视频一区二区 | 亚洲成a人片在线观看中文动漫 | 日本高清免费在线视频 | 日本不卡视频在线观看 |