利用DWR開發基於Ajax的檔案上傳portlet

來源:互聯網
上載者:User

簡介

入口網站為使用者提供了訪問各種資源和服務的中心網關。與此同時,它們還為使用者提供了與其他使用者進行資源共用的平台。從照片到音頻、視頻檔案再到研究用的科學資料集,使用者可以共用任何內容。因此,檔案上傳是 入口網站的一種基本的必備功能。

當今的 入口網站在很大程度上依賴於 Java portlet 技術。雖然很多使用 Ajax 的開發人員都給出了各種各樣的檔案上傳進度條解決方案,但我們還沒有聽說過哪個是基於 portlet 的。本文展示了如何開發基於 Ajax 的檔案上傳 portlet,此 portlet 能顯示檔案上傳過程的進度條。此 portlet 對於那些想要共用大型音頻、視頻和科學檔案的人士尤其有用。

要跟上本文的進度,您應該對使用 Java Servlets 和 JavaServer Pages (JSPs) 進行 Web 開發十分熟悉。而且,還必須瞭解門戶和 portlet 技術的開發。當然,如果您對 portlet 技術還不怎麼精通,也不要現在就放棄本文,因為您會在本文中看到對 portlet 技術的簡單介紹,以及一些有用的資源可用來協助您加快學習的進程。

在測試本文給出的這個檔案上傳 portlet 前,可以考慮嘗試使用一種遵從 JSR 168 規範的門戶架構,比如 IBM® WebSphere® Portal Server、Apache Pluto、eXo 平台或 Liferay Portal。我們在本文中使用的是 Apache Pluto 1.0.1、JDK 5.0 Update 10 和 Apache Ant Version 1.6.5。

portlet 的基本概念

一般地,可以將 portlet 視為一種 Web 元件。Portlet 與 servlet 類似,但前者更關注於應用程式的展示層。portlet 的典型輸出是 HTML 片斷,這些片斷可由 入口網站隨後再組裝起來。Portlet 本身由 portlet 容器管理。portlet 的主要特性包括:

多模式:portlet 可以在不同的模式下有不同的視圖。例如,除了查看 模式,portlet 還支援編輯 模式以便使用者可以設定其自身的喜好設定。

多個視窗狀態:portlet 可以最小化、最大化等。

可定製參數:portlet 可以定義參數,而這些參數可以由使用者定製。

要獲得有關 portlet 的更多詳細資料,可以參考 Java Portlet Specification 1.0,JSR 168(JSR 168 的後續版本 JSR 286 預計會於 2007 年後半年發布,其中包含了一些改進,比如 portlet 間通訊和 portlet 過濾器)。相關連結,請參看 參考資料。

開始建立檔案上傳 portlet

檔案上傳 portlet 的基石是 Apache Commons FileUpload 包(本文也稱之為 FileUpload)。除了支援 servlet 內的檔案上傳外,Apache Commons FileUpload Version 1.1 包還支援 portlet 中的檔案上傳。本文使用的是 Apache Commons FileUpload 版本 1.2。

基本上,開發檔案上傳進度條需要兩步:

在伺服器端檢索檔案上傳過程

從門戶伺服器進行用戶端的檔案上傳檢索和顯示

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.