首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

XML 與 J2EE 深度融合:數據交換、訊息驅動與展現層集成實戰

     編輯:Java 相關知識

XML 在 J2EE 三大應用場域

  1. 數據表示與交換:SAX/DOM 解析、DTD/Schema 驗證、JAXP 統一 API、Castor 等綁定框架自動映射 Java 物件。
  2. 面向訊息計算:JMS 異步通訊、XML 作為訊息載體 (TextMessage)、JAXM/ebXML 標準化跨企業交換、WebLogic XMLMessage 等廠商擴展支援 XPath 過濾。
  3. 展現層集成:JSP + JavaBean 載入 XML、自定義 Tag Library 封裝解析邏輯、XSLT 轉換輸出 HTML/WML、Servlet Filter 依 User-Agent 多端適配 (WAP/cHTML/HTML)。

核心代碼模式

1. DOM 解析映射 Java 物件


public class MediaParser implements ErrorHandler {
    private DOMParser parser = new DOMParser();
    public Document parse(String url) throws SAXException, IOException {
        parser.parse(url); return parser.getDocument();
    }
    public Collection loadAssets(String url) throws ... {
        Document doc = parse(url);
        NodeList nodes = doc.getElementsByTagName("media-asset");
        List list = new ArrayList<>();
        for (int i=0; i

2. JSP 自定義標籤封裝 XML 載入


<%@ taglib uri="https://example.com/taglib" prefix="media" %>
<media:load url="/assets.xml" collectionName="assets" cursorName="asset" />
<c:forEach items="${assets}" var="asset">
  ${asset.name} ${asset.type} ${asset.urn}
</c:forEach>

3. XSLT 樣式表驅動展現

邏輯寫在 .xsl,JSP 僅引用 Tag 執行轉換,修改 UI 僅改 XSL/HTML,Java 代碼不動。

4. Servlet Filter 多端適配


public class XsltFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) {
        HttpServletRequest httpReq = (HttpServletRequest) req;
        String ua = httpReq.getHeader("User-Agent");
        // 依 UA 選擇 XSLT 樣式表轉換輸出 HTML / WML / cHTML
        chain.doFilter(new XsltRequestWrapper(httpReq, xslt), resp);
    }
}

標準演進

  • J2EE 1.2:僅部署描述符用 XML。
  • J2EE 1.3:強制支援 SAX2/DOM2/XSLT。
  • 未來:JAXM 整合、JSP/EJB/JDBC 規範深度 XML 化。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved