国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用JSF和MyFaces實現文件上載

2019-11-18 15:42:52
字體:
來源:轉載
供稿:網友

  Web瀏覽器為我們利用Web應用程序發送文件提供了一條簡單的途徑,但是當前版本的java Web標準(servlets、jsp和JSF)卻無法為我們提供任何幫助。
幸運的是,有一些第三方框架組件(例如Apache Commons File Upload、 Apache MyFaces和Oracle ADF Faces)實現了這種特性,它們都暴露了簡單的API和定制的標記(tag)。

  本文的前面一部分介紹文件上載操作是如何實現的,解釋了MyFaces和通用文件上載(前者在內部使用了后者)。我們了解這些開放源代碼框架組件的內部工作方式是非常重要的,因為只有這樣我們才能高效率地使用它們,才能根據自己的需要對它們進行修改。本文的第二部分將介紹一個簡單的應用程序,它讓用戶使用web瀏覽器上載文件。

  基于Web的文件上載

  我們把"上載"這個專業術語用得有點過濫了。Web治理員在自己的站點上發布文件的時候,它會說自己"上載"了一個文件。Web開發者在建立Html窗體和腳本,讓普通用戶通過web瀏覽器發送一個文件的時候,他也會說自己實現了文件"上載"功能。

  這兩種含義在某些方面是重疊的,因為web治理員可能使用基于web的界面來發布文件(頁面、圖像、腳本等等)。免費提供個人web站點的公司(例如Yahoo),實現基于web的文件上載功能的目的是為了讓人們上載自己的頁面。它答應任何一個擁有web瀏覽器和互聯網訪問能力的個人發布一個小型的web站點。但是,目前有一些更好的、可用于發布web內容的方式,例如FTP或安全FTP。在這種情況下,你可以利用專用的應用程序(例如FTP客戶端)代替web瀏覽器把自己的內容上載到web服務器上。

  本文從web開發者的角度來討論文件上載的問題。例如,一個基于web的郵件應用程序(例如Yahoo郵件),就實現了文件上載,因為只有這樣,用戶才能夠發送那些帶有附件的消息。另一個比較好的例子是找工作的web站點,它答應用戶把自己的簡歷發送給招聘人員。本文的示例應用程序計算上載文件的散列值。你可以在自己的應用程序中對上載的文件進行任意的處理,例如把它們的內容存儲在數據庫中或把它們作為郵件附件發送?,F在,讓我們看看如何在web應用程序中實現文件上載吧。

  一個HTML窗體中可以包含一個或多個<input type="file">元素,瀏覽器把它們作為輸入字段來顯示(呈現),在這些字段中答應用戶輸入文件路徑。在每個文件輸入字段的后面,web瀏覽器會添加一個按鈕,它會打開一個文件對話框,讓用戶選擇一個文件(代替輸入路徑):

使用JSF和MyFaces實現文件上載(圖一)
圖1:包含文件輸入字段的web窗體

  當用戶點擊窗體的"提交(Submit)"按鈕的時候,web瀏覽器對窗體的數據進行編碼,其中包括被選中的文件、文件名(或路徑)和窗體的其它一些參數。接著,瀏覽器把編碼后的數據發送給web服務器,web服務器把這些數據傳遞給<form>標記的action屬性所指定的腳本來處理。假如你開發一個Java web應用程序,那么操作腳本可能是一個servlet(小服務程序)或JSP頁面。

  由于窗體數據默認的編碼方式和默認的GET方法都不適合文件上載,所以包含文件輸入字段的窗體必須在<form>標記中指定multipart/form-data編碼方式和POST方法:



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 山东省| 綦江县| 霍州市| 图片| 石狮市| 宽甸| 汤原县| 云阳县| 六枝特区| 渭南市| 淮滨县| 安福县| 柳河县| 简阳市| 石柱| 太康县| 乐清市| 通州市| 林口县| 登封市| 班戈县| 江津市| 保德县| 洪湖市| 沁源县| 台湾省| 阿合奇县| 常熟市| 蒙山县| 阿拉善左旗| 靖州| 来安县| 伊春市| 临城县| 安国市| 麟游县| 贵州省| 辽宁省| 馆陶县| 雷波县| 恭城|