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

Flash Remoting 增強 J2EE 表現層:富客戶端與企業後端的完美整合

     編輯:Java 相關知識

表現層技術選型困境

技術優點缺點
JSP/HTML部署容易、無客戶端安裝跨瀏覽器行為難控制、互動性弱
Swing/Applet豐富 UI、行為可控、分擔伺服器負載需 JRE 與瀏覽器外掛、下載啟動慢、版本相容性問題
DHTML開放免費、跨瀏覽器、輕量瀏覽器差異大、需大量 Hack、維護複雜、彈性有限

需求:輕量瀏覽器部署 + 高互動控制 + 整合既有 J2EE 後端 → Macromedia Flash + Flash Remoting MX

Flash Remoting MX 架構

  • Gateway Servlet:標準 WAR 部署於任意 J2EE 應用伺服器,映射 ActionScript 物件至 Java 物件
  • 客戶端 ActionScript 庫 (NetServices):處理連線、服務查詢、非同步呼叫與回呼
  • AMF (Action Message Format):二進制訊息格式,透過 HTTP 傳輸,比 SOAP 更精簡、效能更高

整合實戰步驟

1. 客戶端連線與服務綁定

// 載入 NetServices 庫
#include "NetServices.as"

// 設定 Gateway URL (web.xml 中 servlet-mapping 為 /gateway)
NetServices.setDefaultGatewayUrl("https://localhost/mx/gateway");

// 建立連線
gatewayConnection = NetServices.createGatewayConnection();

// 綁定 Java 類別 com.tallan.data.providers.FlashDemo 為服務 tallanDataService
tallanDataService = gatewayConnection.getService("com.tallan.data.providers.FlashDemo", this);

// 呼叫遠端方法
tallanDataService.getReportData();

2. 非同步回呼處理

遠端方法回傳值觸發同名 _Result 函數:

function getReportData_Result(result) {
    trace(result); // 除錯輸出
    // 進一步處理 result (XML Document, Array, 基本型別...)
}

3. 伺服端 Java 實作範例

public class FlashDemo {
    public Document getReportData() {
        DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document doc = builder.newDocument();
        Element root = doc.createElement("graph");
        Element point1 = doc.createElement("point");
        point1.setAttribute("xvalue", "February");
        point1.setAttribute("yvalue", "20");
        root.appendChild(point1);
        doc.appendChild(root);
        return doc; // 自動序列化為 AMF 傳回
    }
}

Flash 內建 XML 解析與圖形化優勢

  • 客戶端原生支援 XML DOM 解析,零額外庫負擔
  • ActionScript 輕鬆走訪 XML 節點,提取資料繪製圖表
  • 社群提供免費圖形庫(柱狀圖、折線圖、餅圖等),快速構建視覺化儀表板

客戶端 XML 解析範例

function parseXML() {
    nodes = reportXML.nodes; // 取得子節點陣列
    for (j=0; j<nodes.length; j++) {
        if (nodes[j].nodeName == "graph") {
            childNodes = nodes[j].nodes;
            for (k=0; k<childNodes.length; k++) {
                if (childNodes[k].nodeName == "point") {
                    xAxisvalue.push(childNodes[k].attributes.xvalue);
                    yAxisvalue.push(childNodes[k].attributes.yvalue);
                }
            }
        }
    }
    // 繪圖邏輯...
}

Flash 圖形化輸出範例

架構優勢總結

  1. 單次資料載入,豐富互動: 使用者可縮放、鑽取、切換視圖無需再請求伺服器
  2. 分擔運算負載: XML 解析、圖形渲染在客戶端完成,伺服器專注業務邏輯與資料存取
  3. 無縫整合既有資產: EJB、Servlet、Web Services、POJO 皆可直接暴露為 Flash 服務,零代碼修改
  4. 部署輕量: Flash Player 普及率極高,無需額外安裝
  5. 多媒體優勢: 向量圖形、動畫、音視頻原生支援,構建吸引力強的企業應用

適用場景

  • 即時監控儀表板(股票、網路流量、生產線狀態)
  • 複雜資料視覺化分析工具
  • 線上教學、模擬訓練系統
  • 需豐富互動的 B2B/B2C 入口網站

結語

Flash Remoting 為 J2EE 開發者提供了「輕量部署 + 富互動 + 後端直連」的第三條路徑。結合 ActionScript 的 XML 處理能力與免費圖形庫,可快速構建高效能、視覺震撼的企業級 Web 應用,釋放伺服器資源,提升用戶體驗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved