999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JSF框架技術的Web應用系統開發

2012-12-19 08:54:48河南人民廣播電臺映像網黃星辰
河南科技 2012年23期
關鍵詞:頁面

河南人民廣播電臺 映像網 黃星辰

一、Web應用程序開發階段

1.利用Servlet階段,使用request和response對象接收和反饋客戶端的請求。它是開發Web應用程序的基石,在Web應用程序中,Servlet 是一個基本的Web 組件,開發Web 應用的許多技術,如JSP及一些Web層的框架都是建立在其基礎之上。Servlet的缺點是在Java 代碼中兼有業務和邏輯,不利于程序設計和界面開發。

2.JSP技術階段,JSP是在標記語言中以<%@…%>的形式嵌入Java代碼,使得頁面會話可以調用后臺Bean來處理事件,但是仍然沒有將表示層和業務層分割開來,往往是互相嵌套,這就要求美工人員要懂技術,技術人員要懂美工,不利于程序的維護。隨后JSP引入了標簽庫,來分離業務邏輯,經過SUN公司的標準化之后,就形成了JSTL(Java Standard TabLibrary)。JSTL 對于頁面顯示以及顯示邏輯的弱耦合已經實現,方便了Web 的開發。但隨著Web應用程序規模的不斷擴大,如今現有的JSTL技術已越來越無法滿足開發者的需求,復雜的業務流程和頁面之間的交互都需要程序員自己編寫代碼實現,加大了開發難度。

3.框架開發階段,所謂框架就是可重用的,半完成的應用程序,可以用來產生專門的定制程序。為了適應新的開發環境,一個中間件廠商開發出了像Struts、Spring、Hibernate以及后來出現的JSF 等框架。這些框架為Web 應用程序開發提供了模板,開發人員只要配置好相應的參數就可以完成對Web應用程序的開發。更重要的是,這些框架在不長的時間內相互融合,現在的Web應用程序開發都用到了一種或多種框架。

基于JCP制定的Web應用框架標準而開發的JSF框架技術,采用了模型—視圖—控制器(MVC)的設計模式,憑借良好定義的請求處理生命周期和豐富的組件層次結構,大大提高了基于Java的Web用戶界面開發的簡易性。MVC框架模型如圖1所示。

圖1 M VC 框架模型

JSF技術提供了一個表現和行為徹底隔離的能力,使得先前只有在客戶端UI 體系(DOM)下完成的細粒度隔離移到了服務器端,客戶端只需解釋標準的HTML語法,從而達到了完全瘦客戶端的目標。JSF另一個主要特點在于,JSF利用熟悉的UI組件和Web 級概念,并不把開發者局限在某種特定的腳本技術或標記語言。JSF提供了一個JSP標簽庫,實現與JSP的綁定,但開發者完全可以用另外的表現技術,因為它直接依賴于JavaServletAPI。以用戶界面組件為主的JSF與以頁面為中心的Struts框架不盡相同,它對應用程序的各個部分劃分得比較清晰。利用JSF實現的MVC結構如圖2所示。

圖2 利用JSF 實現的M VC 結構

由圖1,圖2可知,JSF的控制器部分,由FacesServlet、動作處理方法、動作監聽器方法和Faces 配置文件組成。JSF 的視圖部分基于用戶界面組件,組件構成組件樹,用戶界面組件具有快速應用程序開發工具的特征,優于Struts。此外,JSF具有事件粒度細化的新特性,每個用戶界面組件可以觸發事件,不像Struts 只有在提交頁面時才能觸發一個事件,JSF中事件的粒度細化為組件級別,而不是表單級別。JSF的核心部件如圖3所示。

圖3 JSF 核心部件

圖3中用戶界面組成組件樹,構成JSF視圖。用戶在與視圖上的組件相互交映時觸發了事件,事件通過事件監聽器處理,在處理事件的過程中訪問應用程序的模型對象,最后,導航系統根據這個邏輯結果來選擇下一個應該呈現的視圖,呈現視圖的任務可以由組件自身直接完成,也可委派給專門的呈現器來完成。但有時碰到的特殊情況,僅用上面的步驟是無法完成的。如在要求輸入字符串的文本框中輸入數字或日期,或者輸入的是字符串,卻是無效數據等,于是在JSF中引入了轉換和驗證機制,來協助用戶組件更好的完成任務。在數據類型轉換、驗證及處理事件的過程中一旦發生錯誤,便產生相應的消息,并顯示給用戶,提示用戶下一步的策略。

JSF的事件監聽器Listener是建立在JavaBean的事件處理機制上的,與JavaBean 的事件模型一樣,JSF 框架中有強類型的事件類和監聽器接口,應用程序可以通過類Listener 和Event 來處理UI組件生成的事件。當用戶與用戶界面組件交互時會觸發某種類型的事件,事件監聽器根據組件上的EL表達式的值來確定待處理的事件。

當一個對象A 依賴于B,則對象B 對A 有控制權,如若B 發生變化,對象A 也一定隨之發生變化。而控制反轉IOC 就是讓這種對象間的依賴關系發生轉移。它要求“程序不應依賴實現,而是依賴接口”。也有人把IOC 稱為依賴注入。為了達到控制反轉的目的,容器或者框架需要引入一個裝配者對象,在JSF中就是托管Bean的任務。對象依賴關系如圖4所示。

圖4 對象依賴關系

Backing Bean 不再依賴業務服務的具體實現對象,而是被托管Bean所依賴,此時托管Bean還依賴于具體的業務實現。將Backing Bean和具體的業務服務實現配置在faces文件中供托管Bean使用,無須對托管Bean代碼做更改,Backing Bean具體的業務服務的實現無須再改動其代碼了,而是更改相應的配置文件,大大降低了程序的耦合度。依賴注入分為接口注入、設值注入和構造子注入3種類型。實際應用中,后兩種出現較多。

二、JSF 框架技術的優勢

1.UI 組件。JSF 的UI 組件是真正意義上的UI 組件,能極大地簡化程序員的工作,如,在頁面上放置一個文本輸入框,這個輸入框立即具備了數據填充、界面更新、事件偵聽、動作觸發、有效性檢查和類型轉換的功能。更為重要的是,程序員只需根據業務邏輯編寫核心業務代碼,JSF會保證代碼在合適的時候被執行,完全不用考慮代碼與代碼之間該如何來配合。

2.事件驅動模式。事件是面向對象方法的重要組成部分,對象之間通過事件進行溝通和交流,使得一個或多個對象能夠對另一個對象的行為作出響應,共同合作去完成一項業務邏輯。通常,編寫Web 程序時,程序員要為對象之間的溝通設計機制,編寫代碼。雖然溝通的內容屬于業務邏輯,但溝通的機制顯然與業務沒有太大關系,程序員因此為業務邏輯之外的功能浪費了時間。JSF改變了這種狀況。JSF的事件和偵聽模式與大家熟悉的Javabean 的事件模式類似,有Java 基礎的程序員并不需要學習任何新的東西。JSF的UI組件可以產生事件,如,當頁面上一個文本輸入框的內容被修改時,會發出一個“值改變事件”。另一個對象如果對“值改變事件”感興趣,只需注冊為該對象的偵聽者,并編寫處理例程,即可命令JSF在事件發生時自動調用處理例程。JSF做了所有該做的事,留給程序員的只有業務邏輯代碼的編寫。

3.用戶界面到業務邏輯的直接映射。如,表單提交是Web編程最常見的任務,也是最復雜的任務之一。當用戶在網頁上點擊“確定”按鈕時,瀏覽器將生成一個HTTP請求,發往服務器端的某個Servlet,執行該Servlet 的service 方法。在service 方法中,HTTP請求需要經歷解碼、類型轉換、有效性驗證、狀態保存、數據更新等環節,處理這些環節的所有細節,對程序員來說是沉重的負擔。在JSF下,這些工作的很大一部分都由框架承擔了,在程序員看來,這個過程是透明的,用戶界面端的HTTP請求可以直接映射到后端的一個事件處理例程,JSF起到了承前啟后的作用。

4.程序員和網頁設計人員的分工。在JSP中,程序員和網頁設計人員的工作有時是互相交織、無法區分的。這是因為JSP頁面中摻入了網頁設計人員所不熟悉的一些JSP標簽,甚至是晦澀的Java代碼。要求網頁設計人員理解這些標簽和代碼是不現實的,不符合分工合作的原則。在JSF中,框架為網頁設計人員提供了一套標準的UI組件,在工具的支持下,可以通過拖放簡單地添加到網頁上,然后設置某些顯示屬性來滿足視覺要求。網頁設計人員不需要知道UI組件背后的復雜代碼,而程序員也不需要再處理任何與視覺相關的細節,程序員所做的只是給UI組件綁定類的屬性或方法。雖然程序員和網頁設計人員需要修改同一份文件,但他們各司其職,各得其所,互不干擾。程序員和網頁設計人員工作的明確劃分,是JSF在易用性方面邁出的一大步。

5.請求處理生命周期的多階段劃分。雖然都是建立在Servlet基礎之上,但JSF的生命周期要比JSP復雜得多。JSP的生命周期非常簡單,頁面被執行時,HTML標記立即被生成了,生命周期隨即結束。而一個完整的JSF請求—處理生命周期被精心規劃為6個階段,典型的JSF請求需要經歷所有階段,某些特殊的請求也可以跳過一些階段。階段的細分,顯然引入了更多的處理,但JSF框架會管理這一切,所以,程序員在獲得更多控制能力的同時,工作量并沒有增加。

6.全面的用戶自定義支持。JSF為程序員提供了很多默認的組件和類,通常情況下,JSF 的這些默認組件和類足以滿足Web開發的需要。但是,考慮到在某些應用場合,框架的默認行為也許不符合業務的要求,JSF特別允許程序員編寫自己的組件和類,來滿足客戶的特殊需求。例如,程序員可以編寫自己的UI組件,甚至可以創建自己的EL解釋器,來支持非標準的EL表達語言。

三、結論

JSF 技術是基于MVC 模式的開發框架,它提供了豐富的用戶組件UI,較完美地將JSP,Servlet,JavaBeans 結合起來,提高了開發效率。并且JSF實現了一個開放的架構,允許開發人員創建自己的組件,或者在現有的組件上繼承,開發功能更強大的組件,體現了JSF的靈活性和可延展性。相信隨著JSF技術的不斷完善,基于JSF 框架的Web 應用將會越來越多,JSF 的運用范圍也會更加廣泛。

猜你喜歡
頁面
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
在本機中輕松完成常見PDF操作
電腦愛好者(2022年3期)2022-05-30 10:48:04
移動頁面設計:為老人做設計
工業設計(2016年1期)2016-05-04 03:58:09
Web安全問答(3)
通信技術(2012年4期)2012-02-15 07:10:35
同一Word文檔 縱橫頁面并存
網站結構在SEO中的研究與應用
幾種頁面置換算法的基本原理及實現方法
淺析ASP.NET頁面導航技術
主站蜘蛛池模板: 日韩大乳视频中文字幕| 午夜高清国产拍精品| 九九九久久国产精品| 四虎国产在线观看| 成人福利在线看| 沈阳少妇高潮在线| 美女无遮挡拍拍拍免费视频| 欧美a在线| 欧美成人免费午夜全| 欧美高清日韩| 在线综合亚洲欧美网站| 99手机在线视频| 婷婷久久综合九色综合88| 免费A级毛片无码免费视频| 亚洲自偷自拍另类小说| AV无码无在线观看免费| 伊人无码视屏| 性欧美精品xxxx| 日韩 欧美 国产 精品 综合| 国内丰满少妇猛烈精品播| 二级特黄绝大片免费视频大片| 国产一区二区三区精品久久呦| 国产国拍精品视频免费看| 找国产毛片看| 精品无码一区二区三区电影| 国产免费福利网站| 中国一级特黄视频| 91成人在线观看| 伊人精品成人久久综合| 四虎成人免费毛片| 成人亚洲国产| 先锋资源久久| 国产门事件在线| 澳门av无码| 亚洲免费三区| 国产精品视频导航| 嫩草在线视频| 亚洲人成网7777777国产| 国产福利小视频高清在线观看| 国产色图在线观看| 中文字幕亚洲无线码一区女同| 9cao视频精品| 久久福利片| 日韩国产一区二区三区无码| 色婷婷天天综合在线| 2019年国产精品自拍不卡| 国产麻豆福利av在线播放| 国产美女一级毛片| 欧美人与牲动交a欧美精品| 影音先锋丝袜制服| 亚洲成人黄色网址| 欧美日韩亚洲国产主播第一区| 四虎精品黑人视频| 美女毛片在线| 99热亚洲精品6码| 欧美日韩高清在线| 国产一区二区福利| 国产亚洲精品自在线| 无码中文字幕加勒比高清| 高清乱码精品福利在线视频| 99激情网| 国产一区二区三区日韩精品| 国产久草视频| 99人妻碰碰碰久久久久禁片| 全部免费毛片免费播放| 亚洲综合欧美在线一区在线播放| 91探花在线观看国产最新| 国产欧美在线观看视频| 一本一道波多野结衣av黑人在线| 亚洲aⅴ天堂| 日韩无码视频网站| 欧美成a人片在线观看| jizz在线免费播放| 国产高清免费午夜在线视频| 色网站免费在线观看| 亚洲一级毛片在线观| 欧美精品v欧洲精品| 国产好痛疼轻点好爽的视频| 欧美一级高清视频在线播放| 亚洲欧美不卡中文字幕| 日本高清免费不卡视频| 中文字幕佐山爱一区二区免费|