熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

JavaFX 深入淺出(一)富客戶端應用程序 RIAs

2013-11-15 11:35:13  來源: JSP教程 

  每當我們要學習一種新的技術首先要搞明白他是干什麼的對自己有什麼用處把相關情況弄清楚以後才能決定去不去學習他在學習JavaFX之前下面幾個問題我覺得應該先搞清楚

  什麼是 Rich Internet Applications ?

  Rich Internet Applications 縮寫RIAs翻譯過來是富客戶端應用程序或者富互聯網應用程序他是從網絡下載到本機可以在浏覽器中運行的一種應用程序當然也可以脫離浏覽器直接在操作系統下運行相對於傳統的的Web應用富客戶端應用程序主要特點是豐富的界面效果

  說白了RIAs就是把原來在桌面上跑的應用程序放到浏覽器中去跑

  富客戶端是不是為了取代傳統 Web 應用的界面?

  目前來說我覺得他們互為補充傳統 Web 應用特別是企業級應用主要突出數據的存儲檢索和管理重點在業務和邏輯而不在界面而RIAs主要突出用戶的體驗和交互性二者如何結合應該根據實際情況來你要在浏覽器中玩掃雷游戲當然得富客戶端如果是個搜索引擎傳統的 Web 界面足以如果是個銀行賬戶查詢界面可能可以把二者結合起來

  富客戶端出現的目的到底是什麼?

  可能有人問說了半天富客戶端即不是取代傳統 Web 界面也可以在桌面上直接運行那還用得著費那麼大的勁把它放到浏覽器裡面嗎?

  回答是很用得著目的有兩個跨平台易於發布

  想想不管是電腦還是手機不管是WindowsLinuxWindows Mobile塞班或者 Google 的手機操作系統哪個裡面沒有浏覽器?只要有浏覽器你寫的程序就可以在任何物理平台任何操作系統下運行這是多麼棒的一件事情啊!

  當前主流的富客戶端技術有哪些?他們的優缺點是什麼?

  基於 AJAX 技術的富客戶端比如 ExtJS

  優點純基於浏覽器不需要安裝插件

  缺點個人觀點畢竟中間多了一層浏覽器速度和功能可能稍差一點

  微軟的 SilverLight

  優點)他是微軟的技術

  ()基於Net 框架和 WPF功能強大

  ()最重要的一點Net 框架和 SilverLight 插件必定會成為微軟新的操作系統的一部分在新操作系統中你的 SilverLight 程序不用安裝插件就可以直接運行了

  缺點)還是這一條他是微軟的技術

  Adobe 的 Flex

  優點底層基於 Flash以 Flash 的形式發布想一下我們重新裝完系統打開浏覽器進入一個門戶網站一般會做什麼事?當然是安裝 Flash 插件了只要聯了因特網的機器還有幾台沒裝 Flash插件的呢?這就為 Flex 程序的發布掃清了一個很大的障礙只要程序能滿足需求用什麼平台開發用戶一般不會很介意但是動不動就安裝插件那可真的很煩而 Flash 已經被廣泛接受了

  缺點又要重新學習一套新的語言規則一套新的 Framework真的很累啊

  Sun 的 JavaFX

  優點

  ()對傳統 Java 的繼承JavaFX 主要突出的是界面和交互性這一塊剩下的功能依然調用傳統的 Java 包這種既有創新又有繼承的思路降低了學習難度這樣我們可以用以前熟悉的 Java 方式開發程序的模型層然後用 JavaFX 設計視圖層

  ()同一個程序 Build 以後會產生兩個包一個是在浏覽器中運行的一個是在桌面直接運行的當然Flex 也可以Silverlight 則可以直接變成 WPF 再變成 exe所以這點可能算不上什麼優點但是話說回來對於桌面 Java僅僅一個發布問題當初就曾經嚇退多少想入門的新手?不信你 Google 一下 java 打包

  缺點

  ()雖然 JRE 現在以插件的形式發布了但是除了 Java 開發人員普通用戶安裝的畢竟還是少數大型的 Java 程序很多都自帶 JRE 也可以反映出這個問題

  ()浏覽器中程序的啟動速度要比 Flash 和 SilverLight 慢許多可能是要從 Sun 官網下載很多 JS 腳本文件這麼多客戶同時訪問官網能不慢嗎?應該想辦法改進一下

  ()桌面運行包的擴展名是 jnlp只要你安裝了 JRE 插件運行它就像運行 exe 程序一樣雙擊就可以了這本來是一種很綠色的發布方式但實際上不是這樣每當你運行一個新的桌面版 jnlp 程序以後再打開控制面板的添加刪除程序看看都給你安裝進去了!如果你直接刪除了這個 jnlp 程序控制面板裡的信息就留在裡面刪不掉了這種發布細節問題應該可以改進

  RIAs 可以和服務器通信嗎?

  傳統的 CS 客戶端都可以RIAs當然更沒問題了不但可以通信而且 Silverlight 支持 AspNet Flex 支持 PHPASPJSP等常見的服務器技術比如在服務器端有個 Loginphp 文件你可以用 Flex 把用戶名和密碼 Post 給它裡面對應的處理函數然後由 PHP 腳本完成數據庫查詢和登錄等邏輯再返回相應的數據用來刷新界面

  注意這裡用到了刷新而不是跳轉這就是富客戶端和傳統 Web 界面的重要區別整個過程傳統的 Web 程序區別不是很大當然數據在傳輸中的格式一般都是基於 XML 的

  至於 JavaFX 還沒有看到相關資料至少會支持 JSP 吧

  到底選哪一個

  如果你是一個年輕人精力充沛學習勁頭足那麼套用一句老話全面撒網重點釣魚如果你像我一樣是個老人家了腦子越來越不好使那麼選一個對你來說能最快上手的吧附帶說一句Flex 和 JavaFX 都是開源的

  一個小例子

  下面一個簡單的 Java 類功能是返回程序運行時刻的時間這個類用 JavaFX 調用然後打包並通過互聯網發布出去可以在浏覽器或者桌面裡面運行

  第一步用 Netbeans 創建一個 JavaFX 空項目然後項目中添加一個 Java 類

   package javafxapplication;

import javautilDate;

public class Hello {
    public String getTime(){
        Date d = new Date();
        return dtoString();
    }
}

  第二步在項目中添加一個 JavaFX Stage 文件並在 Scene 中加入一個 Text看代碼吧

   package javafxapplication;

import javafxsceneScene;
import javafxscenetextFont;
import javafxscenetextText;
import javafxstageStage;
import javafxapplicationHello;


var d = new Hello();
var str :String=dgetTime();

Stage {
    title: Application title
    width: 
    height: 
    scene: Scene {
        content: Text {
            font : Font {
                size : 
            }
            x: 
            y: 
            content: bind str
        }
    }
};

  Build 以後就可以在桌面運行了如圖

  

  下面是我把它發布到服務器上當你浏覽這個頁面的時候程序就在你的浏覽器中運行了

  如果沒有安裝 JRE 運行時系統會提示你安裝浏覽器彈出的對話框都點確定或者允許就可以測試完了以後如果不喜歡可以將 Jre 從控制面板卸載如果你一直從開始看下來沒注意到這裡的程序是怎麼加載的可以刷新一下


Java Coffee Cup Java needed Click for details

  下載到本機運行點擊


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19253.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.