• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      JSF框架開發(fā)技術(shù)淺析

      2016-11-23 08:30:46
      無線互聯(lián)科技 2016年20期
      關(guān)鍵詞:程序開發(fā)用戶界面程序員

      張 捷

      (黃岡職業(yè)技術(shù)學(xué)院,湖北 黃岡 438002)

      JSF框架開發(fā)技術(shù)淺析

      張捷

      (黃岡職業(yè)技術(shù)學(xué)院,湖北 黃岡 438002)

      JSF是由 SUN公司推出的一種面向組件 Web應(yīng)用程序的開發(fā)技術(shù),是J2EE 5的一個(gè)重要組成部分,同時(shí)也是對(duì)諸多Web程序規(guī)范的一種補(bǔ)充。文章主要是對(duì)JSF以及基于JSF的Web應(yīng)用程序的開發(fā)步驟進(jìn)行介紹。

      Java;JSF技術(shù);Web應(yīng)用

      在“互聯(lián)網(wǎng)+”的時(shí)代到臨之際,Web應(yīng)用的范圍越來越廣泛。對(duì)于基于J2EE的平臺(tái)來說,該平臺(tái)是實(shí)現(xiàn)分布式企業(yè)應(yīng)用的開發(fā)平臺(tái),但是由于可視化工具的支持較少,開發(fā)者在開發(fā)Web用戶界面時(shí)編寫代碼任務(wù)重,開發(fā)效率低且難度大。Java 服務(wù)器界面(Java Server Faces,JSF)框架技術(shù)是基于MVC模式的開發(fā)框架,有豐富的用戶界面組件,集普遍性、簡單性、強(qiáng)大功能于一身,使得Web開發(fā)變得簡單。JSF不僅包含于J2EE 規(guī)范中,而且允許開發(fā)者在一個(gè)頁面中迅速高效地集合UI 組件去構(gòu)建想要的Web界面。因此,開發(fā)者可以專注于應(yīng)用業(yè)務(wù)邏輯的實(shí)現(xiàn)而擺脫HTTP細(xì)節(jié)方面的束縛。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展JSF的實(shí)現(xiàn)會(huì)被越來越多的供應(yīng)商所提供,而且JSF也會(huì)成為一種主流的新的Web 框架。

      1 JSF簡介概述

      JSF是一種新標(biāo)準(zhǔn)的Java框架,JSF在構(gòu)建Web應(yīng)用程序時(shí),使用以組件為中心的方法來開發(fā)Jave Web用戶界面,簡化程序的開發(fā)過程。為了確保應(yīng)用程序的可維護(hù)性更高,JSF的體系結(jié)構(gòu)中還集成了模型—視圖—控制器(Model, View, Controller, MVC)的設(shè)計(jì)模式。

      JSF是一個(gè)基于組件的框架,它和傳統(tǒng)請(qǐng)求驅(qū)動(dòng)的MVC開發(fā)框架不同。在開發(fā)工具的支持下,開發(fā)者不需要做太多的代碼設(shè)計(jì),Web 用戶界面可以通過拖放組件的方式來進(jìn)行可視化編輯,然后將用戶界面上的組件與數(shù)據(jù)源進(jìn)行綁定,并將用戶界面管理問題交給服務(wù)器端處理就可以完成程序開發(fā)的全部過程。并且在綁定界面的值和方法同后臺(tái)數(shù)據(jù)時(shí),JSF使用統(tǒng)一表達(dá)式語言(Unified Expression Language, UEL)代替了以往冗長而毫無意義的 request.getParameter(),簡化了表達(dá)式,提高了效率。

      JSF的請(qǐng)求生命周期根據(jù)規(guī)范定義,包含以下6個(gè)階段,如圖1所示。

      (1)重置 UI視圖階段:對(duì)于頁面對(duì)應(yīng)的組件樹來說,一般只構(gòu)建一次。用戶在請(qǐng)求頁面所對(duì)應(yīng)的組件樹時(shí),如果組件樹不存在,該階段會(huì)則構(gòu)建該頁面的組件樹,如果存在則會(huì)使用已有的組件樹。

      (2)應(yīng)用請(qǐng)求之階段:先讀取客戶端參數(shù),使用processDecodes方法處理各個(gè)組件,然后在內(nèi)部調(diào)用decode方法,并且由Renderer來執(zhí)行decode方法。

      (3)處理驗(yàn)證階段:對(duì)每個(gè)組件的信息進(jìn)行驗(yàn)證。

      (4)更新數(shù)據(jù)模型階段:在這個(gè)階段,JSF會(huì)更新用戶界面的每個(gè)組件數(shù)據(jù)模型,然后為后面的實(shí)踐應(yīng)用處理打好基礎(chǔ),做好準(zhǔn)備。

      (5)應(yīng)用調(diào)用階段:處理之前排入隊(duì)列的所有應(yīng)用級(jí)事件。

      (6)呈現(xiàn)響應(yīng)階段:渲染組件樹的當(dāng)前狀態(tài),并且為當(dāng)前請(qǐng)求準(zhǔn)備響應(yīng)。一旦處理完畢,Web服務(wù)器將結(jié)果通過物理傳輸發(fā)回給用戶,然后在用戶的瀏覽器中顯示。

      圖1 JSF 請(qǐng)求處理生命周期

      2 JSF優(yōu)勢分析

      相比傳統(tǒng)的JSP/Servlet 框架來說,JSF具有以下8個(gè)優(yōu)勢:

      (1)全面使用了UI組件。JSF的組件是真正意義上的 UI組件,UI組件能幫助程序員在極大程度上簡化代碼,程序員在設(shè)計(jì)程序過程中,不需要通過復(fù)雜代碼使其保持一致性,而更多地關(guān)注如何實(shí)現(xiàn)業(yè)務(wù)邏輯,程序員在JSF中開發(fā)Web應(yīng)用程序完全不需要考慮代碼之間的配合,只需考慮業(yè)務(wù)邏輯,JSF后臺(tái)能保證合適的代碼在合適的時(shí)候被執(zhí)行。

      (2)界面到業(yè)務(wù)邏輯的直接映射。如Web編輯最常見任務(wù)表單提交。在JSF下,復(fù)雜的解碼、類型轉(zhuǎn)換、有效性驗(yàn)證、狀態(tài)保存、數(shù)據(jù)更新等操作這些工作的很大一部分都由框架承擔(dān),程序員的工作負(fù)擔(dān)大大減輕。

      (3)多階段劃分請(qǐng)求處理生命周期。JSF的生命周期相對(duì)與傳統(tǒng)的JSP框架來說,更加復(fù)雜。一個(gè)完整的Web應(yīng)用程序的請(qǐng)求處理生命周期會(huì)被JSF劃分成6個(gè)階段,分成多個(gè)處理階段帶來的最大好處就是,程序員可以在程序中引入更多的處理功能,并且可以讓JSF框架來管理這一切。程序員在工作量沒有增加的情況下可以獲得更多的控制能力。

      (4)各種各樣的可視化圖形開發(fā)工具。JSF帶來Web應(yīng)用程序開發(fā)方式革命性變化的同時(shí),市場上各種開發(fā)工具也隨之改變,應(yīng)運(yùn)而生。特別是圖形化的開發(fā)工具,百家齊鳴,互爭長短。比較有名的例如:Borland公司的JBuilder,SUN公司的Java Creator Studio,Bea公司的Workshopfor JSF等等。

      (5)程序員和網(wǎng)頁開發(fā)人員分離。傳統(tǒng)開發(fā)中,往往會(huì)涉及網(wǎng)頁設(shè)計(jì)人員不熟悉的標(biāo)簽,甚至是Java代碼,使得網(wǎng)頁設(shè)計(jì)人員與程序員工作相互交織、無法區(qū)分。在JSF中,只需要一套標(biāo)準(zhǔn)的UI組件和優(yōu)秀網(wǎng)頁編輯工具,程序員與網(wǎng)頁設(shè)計(jì)人員可以各司其職,互不干擾,充分發(fā)揮團(tuán)隊(duì)合作的優(yōu)勢。

      (6)事件驅(qū)動(dòng)模式。事件在面向?qū)ο蟮某绦蛟O(shè)計(jì)中是一個(gè)很重要的組成部分,用戶和程序間可以通過事件處理來進(jìn)行很好的溝通和交流。在傳統(tǒng)Web應(yīng)用程序開發(fā)中,程序員在實(shí)現(xiàn)業(yè)務(wù)邏輯之外的功能市往往需要編寫大量代碼,浪費(fèi)時(shí)間且效率低下。JSF的組件可以產(chǎn)生事件(例如值變化的事件),因此,JSF可以通過類似 JavaBean 的事件模式,讓程序員編寫邏輯代碼對(duì)事件迅速作出響應(yīng)。很好地解決了傳統(tǒng)的Web 應(yīng)用程序開發(fā)需要編寫大量代碼的這種狀況。

      (7)全面支持用戶的自定義。JSF有很多開放的接口,這些接口可以讓程序員根據(jù)自己的愛好和習(xí)慣更好地定義屬于自己的開發(fā)框架,滿足不同程序開發(fā)人員的不同需要。

      (8)Web 應(yīng)用開發(fā)的官方標(biāo)準(zhǔn)。JSF是SUN Java EE 5的重要組成部分,是當(dāng)前Web開發(fā)的官方標(biāo)準(zhǔn)。在如今開發(fā)框架泛濫的時(shí)代,SUN公司樹立Web開發(fā)標(biāo)準(zhǔn)能傲視群雄,獨(dú)領(lǐng)風(fēng)騷。JSF在Web應(yīng)用開發(fā)領(lǐng)域的領(lǐng)先的地位毋庸置疑。

      3 基于JSF開發(fā)Web應(yīng)用程序的步驟

      JSF是構(gòu)建Web應(yīng)用程序新的標(biāo)準(zhǔn)框架,使用JSF開發(fā)Web應(yīng)用程序可以大大提高Web應(yīng)用程序開發(fā)、運(yùn)行、調(diào)試的效率。其中,使用快速開放工具RAD是實(shí)現(xiàn)JSF可視化開發(fā)的先決條件。RAD快速開發(fā)工具可以使程序開發(fā)的整個(gè)過程顯得尤為快捷和高效。一般JSF開發(fā)Web應(yīng)用程序分為3個(gè)步驟。

      (1)模型設(shè)計(jì)(Model)。JSF的模型層主要通過JavaBean 程序來實(shí)現(xiàn),模型層在MVC開發(fā)模式下主要是用于實(shí)現(xiàn)業(yè)務(wù)邏輯的。設(shè)計(jì)JSF的模型需要分析頁面中組件,并依據(jù)組件處理的業(yè)務(wù)邏輯來設(shè)計(jì)。在JSF中,界面表示和應(yīng)用程序邏輯是完全分離的,因此,程序員只需要在模型設(shè)計(jì)部分考慮程序的邏輯功能就可以了,不需要考慮數(shù)據(jù)的表現(xiàn)形式。

      (2)視圖設(shè)計(jì)(View)。作為與用戶交互的視圖層是JSF技術(shù)重點(diǎn)所在,是由JSF頁面來實(shí)現(xiàn)應(yīng)用程序的視圖的。用戶在開發(fā)工具的支持下,僅僅只需可以利用組件就可以很輕松地設(shè)計(jì)好Web 用戶界面,并進(jìn)行事件處理、數(shù)據(jù)驗(yàn)證等程序管理問題。用戶只需要設(shè)計(jì)好每個(gè)JSP頁面,并在頁面中定義好組件,將組件與應(yīng)用層的JavaBean進(jìn)行綁定就可以完成程序的整個(gè)開發(fā)過程。利用RAD工具在不需要手寫大量代碼的情況下,通過拖放組件的方式輕松實(shí)現(xiàn)頁面文件。頁面對(duì)應(yīng)的java 文件會(huì)由開發(fā)工具自動(dòng)生成,頁面的JSF組件會(huì)在文件中被定義好,并且其setter、getter方法以及JSF組件的“action”屬性對(duì)應(yīng)的方法也會(huì)一并生成定義。程序員可以在已有程序的基礎(chǔ)上很方便地進(jìn)行修改和調(diào)試。

      (3)控制器設(shè)計(jì)(Controller)。在模型層(Model)與視圖層(View)之間存在著控制器(Control),控制器的主要作用是控制管理視圖與模型之間的交互工作。設(shè)計(jì)JSF的控制器是需要用到faces,javax,F(xiàn)acesServlet,We-bapp這幾個(gè)類,并在配置文件faces config.xml和Web. xml中完成的。具體步驟如下:首先,要分析應(yīng)用程序的具體情況,然后根據(jù)具體情況來配置Web應(yīng)用程序的Web.xml文件。Web.xml文件主要用于實(shí)現(xiàn)部署的描述符并且控制JSF的生命周期;然后,配置實(shí)現(xiàn)導(dǎo)航的faces-config.xml文件,在文件中控制頁面之間的跳轉(zhuǎn)流程是由此文件實(shí)現(xiàn)的。

      4 結(jié)語

      JSF是基于MVC模式的開發(fā)框架,使用JSF開發(fā)Web應(yīng)用程序可以使開發(fā)過程簡潔而高效,并能使Web應(yīng)用程序獲得更好的擴(kuò)展。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,JSF的應(yīng)用范圍會(huì)更加廣泛,JSF的功能也會(huì)越來越強(qiáng)大,基于JSF的開發(fā)必將成為當(dāng)前主流的開發(fā)模式。

      [1]China IT Lab. JSF 框架中使用的設(shè)計(jì)模式介紹[EB/OL].(2010-10-25)[2009-04-20].http://Java.chinaitlab.com/model/727604.html.

      [2]朱睿. JSF與Web之完美組合[J].軟件世界,2007(7):66-67.

      [3]裴嫣珺. JSF技術(shù)的應(yīng)用及發(fā)展趨勢[J].上海第二工業(yè)大學(xué)學(xué)報(bào),2009(3):235-241.

      [4]雷遠(yuǎn)平.基于JSF技術(shù)的Web應(yīng)用開發(fā)研究[J].計(jì)算機(jī)與信息技術(shù),2006(12):27-28.

      Analysis of JSF framework development technology

      Zhang Jie
      (Huanggang Polytechnic College, Huanggang 438002, China)

      JSF is a kind of development technology component oriented Web application introduced by SUN company, and it is also an important part of J2EE 5, which is also a supplement to the many Web program code. This paper is an introduction of JSF, and introduces the development process of JSFWeb application based on.

      Java; JSF technology;Web application

      張捷(1979— ),男,湖北黃岡,碩士,副教授;研究方向:軟件設(shè)計(jì),數(shù)據(jù)庫管理。

      猜你喜歡
      程序開發(fā)用戶界面程序員
      自然用戶界面在智能家居系統(tǒng)中的應(yīng)用路徑創(chuàng)新研究:生成式人工智能技術(shù)的調(diào)節(jié)作用
      包裝工程(2023年16期)2023-08-25 11:40:58
      為了讓媽媽看懂地圖,一位“野生程序員”做了個(gè)小程序
      基于CiteSpace的國外用戶界面體驗(yàn)圖譜量化分析
      怎樣成為一名優(yōu)秀程序員
      幼兒100(2020年29期)2020-10-21 06:17:58
      APP應(yīng)用程序開發(fā)模式探究
      電子制作(2019年19期)2019-11-23 08:42:02
      基于TestStand的自動(dòng)檢測程序開發(fā)
      電子測試(2018年11期)2018-06-26 05:56:16
      程序員之子
      意林(2017年24期)2018-01-02 22:49:14
      UI用戶界面色彩設(shè)計(jì)研究
      流行色(2017年12期)2017-10-26 03:08:44
      基于嵌入式系統(tǒng)Windows CE的應(yīng)用程序開發(fā)
      基于App inventor 2手機(jī)程序開發(fā)過程的學(xué)習(xí)與實(shí)——以“喵喵定時(shí)器”APP開發(fā)為例
      電子制作(2017年1期)2017-05-17 03:54:08
      濮阳市| 沂南县| 游戏| 柳州市| 巨野县| 朔州市| 尚义县| 崇左市| 水城县| 治县。| 云阳县| 原阳县| 缙云县| 丹阳市| 玉山县| 公安县| 临安市| 高青县| 瑞金市| 乌海市| 建宁县| 林甸县| 阳信县| 保靖县| 汶川县| 台北县| 宁河县| 平武县| 盐亭县| 竹北市| 黄梅县| 黑河市| 鹿邑县| 大城县| 巍山| 扬州市| 神农架林区| 山西省| 延边| 永泰县| 蓝田县|