音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

簡(jiǎn)述利用JavaServer Faces開發(fā)Web應(yīng)用程序

出處:維庫電子市場(chǎng)網(wǎng) 發(fā)布于:2023-06-25 11:29:29

  JavaServer Faces (JSF) 是一種用于構(gòu)建 Web 應(yīng)用程序的新標(biāo)準(zhǔn) Java 框架。它提供了一種以組件為中心來開發(fā) Java Web 用戶界面的方法,從而簡(jiǎn)化了開發(fā)。JavaServer Faces 還引起了廣大 Java/Web 開發(fā)人員的興趣?!捌髽I(yè)開發(fā)人員”和 Web 設(shè)計(jì)人員將發(fā)現(xiàn) JSF 開發(fā)可以簡(jiǎn)單到只需將用戶界面 (UI) 組件拖放到頁面上,而“系統(tǒng)開發(fā)人員”將發(fā)現(xiàn)豐富而強(qiáng)健的 JSF API 為他們提供了無與倫比的功能和編程靈活性。JSF 還通過將良好構(gòu)建的模型-視圖-控制器 (MVC) 設(shè)計(jì)模式集成到它的體系結(jié)構(gòu)中,確保了應(yīng)用程序具有更高的可維護(hù)性。,由于 JSF 是通過 Java Community Process (JCP) 開發(fā)的一種 Java 標(biāo)準(zhǔn),因此開發(fā)工具供應(yīng)商完夠?yàn)?JavaServer Faces 提供易于使用的、高效的可視化開發(fā)環(huán)境。JavaServer Faces 的 MVC 實(shí)現(xiàn) JSF 的主要優(yōu)勢(shì)之一就是它既是 Java Web 用戶界面標(biāo)準(zhǔn)又是嚴(yán)格遵循模型-視圖-控制器 (MVC) 設(shè)計(jì)模式的框架。用戶界面代碼(視圖)與應(yīng)用程序數(shù)據(jù)和邏輯(模型)的清晰分離使 JSF 應(yīng)用程序更易于管理。為了準(zhǔn)備提供頁面對(duì)應(yīng)用程序數(shù)據(jù)訪問的 JSF 上下文和防止對(duì)頁面未授權(quán)或不正確的訪問,所有與應(yīng)用程序的用戶交互均由一個(gè)前端“Faces”servlet(控制器)來處理。

  1  JSF出現(xiàn)的背景和技術(shù)優(yōu)勢(shì)

使用Java開發(fā)Web應(yīng)用程序經(jīng)歷了幾個(gè)發(fā)展階段。一開始是使用Servlet,直接利用requeST和response對(duì)象接收和響應(yīng)客戶端的請(qǐng)求。Servlet的一個(gè)顯著缺點(diǎn)是需要在Java代碼中嵌入大量的標(biāo)記語言(如HTML),處理邏輯和顯示邏輯嚴(yán)重耦合,非常不利于程序的維護(hù)和界面的設(shè)計(jì)。JavaServer Faces 的用戶界面組件 JavaServer Faces 的真正威力在于它的用戶界面組件模型。在該模型中,應(yīng)用程序完全用組件集合構(gòu)建,這些組件可以針對(duì)多種客戶端類型用不同的方式來進(jìn)行顯示。與其他專有技術(shù)(如 ASP,Net)有點(diǎn)類似,JSF 的 UI 組件模型技術(shù)使開發(fā)人員能夠使用預(yù)先構(gòu)建的用戶界面 (UI) 組件來構(gòu)建 Web 用戶界面(而非完全從頭構(gòu)建用戶界面),從而提供了前所未有的開發(fā)效率。JSF UI 組件有多種形式,可以簡(jiǎn)單到只是顯示文本的 outputLabel,或者復(fù)雜到可以表示來自數(shù)據(jù)集合(如數(shù)據(jù)庫表)的表格化數(shù)據(jù)的 dataTable。

遵循MVC-Model2架構(gòu)開發(fā)的應(yīng)用程序框架(Framework)已有不少,例如當(dāng)今比較流行的Struts、Tapestry、Turbine等。JSF的出現(xiàn)并不是要代替這些框架,相反,由于技術(shù)的著重點(diǎn)不同,JSF可以和這些Framework很好地協(xié)同工作。JSF基于JSTL技術(shù),著力于解決現(xiàn)有框架不能完成的難題。


JSF的技術(shù)重點(diǎn)在View部分,它實(shí)現(xiàn)了Web應(yīng)用程序設(shè)計(jì)角色的完全分離。JSF網(wǎng)頁設(shè)計(jì)者只需要專注于頁面的設(shè)計(jì);應(yīng)用程序開發(fā)者主要關(guān)心Model部分的JavaBean的開發(fā)。

JSF還可以根據(jù)不同的客戶端標(biāo)記語言做相應(yīng)的調(diào)整,使Web應(yīng)用程序能在的改動(dòng)下適應(yīng)不同的客戶端類型,JavaServer Faces 規(guī)范在其參考實(shí)施中提供了一組基本 UI 組件,這些組件本身是非常有用的。它們包括兩個(gè)組件庫,即“HTML”組件庫 — 它大部分映射了標(biāo)準(zhǔn)的 HTML 輸入元素;以及“”庫 — 它輔助常見的應(yīng)用程序開發(fā)任務(wù)(如,國(guó)際化和驗(yàn)證/轉(zhuǎn)換輸入數(shù)據(jù))。除了提供一個(gè)基本 UI 組件庫之外,JSF API 還提供了擴(kuò)展和創(chuàng)建定制 JSF UI 組件的功能,從而在基本組件之上提供更多功能。


其中JSF Core Library負(fù)責(zé)基本程序的運(yùn)行,包括程序運(yùn)行生命期控制、事件處理等。RenderKit把服務(wù)器端的UI組件轉(zhuǎn)化成任何一種使用者界面標(biāo)準(zhǔn),支持眾多的標(biāo)記語言。

為一個(gè)JSF網(wǎng)頁的生命周期。只有送給java.faces.webap.FacesServlet控制器的HTTP請(qǐng)求才進(jìn)入這個(gè)生命周期。在階段1,系統(tǒng)根據(jù)JSF網(wǎng)頁的內(nèi)容建立一個(gè)組件樹,根據(jù)組件樹中每個(gè)組件的設(shè)定將對(duì)應(yīng)的轉(zhuǎn)換器(Converter)、驗(yàn)證器(Validator)以及事件處理函數(shù)(Event Handler)與特定組件關(guān)聯(lián),在階段2中系統(tǒng)根據(jù)HTTP request的參數(shù)一一調(diào)用這些組件;然后分別在階段3、4和5中執(zhí)行參數(shù)驗(yàn)證、模型更新和事件處理;系統(tǒng)調(diào)用組件相應(yīng)的方法將它們轉(zhuǎn)化成適當(dāng)?shù)臉?biāo)簽(HTML或者WML等)送到客戶端。


  2  JSF應(yīng)用的一個(gè)簡(jiǎn)單實(shí)例

本例展現(xiàn)了使用JSF框架設(shè)計(jì)Web應(yīng)用程序的步驟。程序功能是讓用戶在瀏覽器中輸入用戶名和密碼登錄,系統(tǒng)執(zhí)行驗(yàn)證后返回登錄結(jié)果。

  2.1 視圖設(shè)計(jì)

視圖(View)部分包括login.jsp和response.jsp文件。前者是一個(gè)可以讓用戶輸入登錄名、密碼進(jìn)行登錄的頁面,后者用于返回用戶的登錄結(jié)果。所有的JSP文件都要加入以下二行,以引入JSF的自定義標(biāo)記庫:

<%@ taglib uri=″http://java.sun.com/jsf/html″prefix=″h″%>

<%@ taglib uri=″http://java.sun.com/jsf/core″prefix=″f″%>

其中l(wèi)ogin.jsp文件的主要代碼如下:


Please enter your username and password


username:



password:





注釋部分說明了View是如何與Model和Controller關(guān)聯(lián)的。

  2.2 模型設(shè)計(jì)

JSF的模型主要用JavaBean來實(shí)現(xiàn),這里定義了一個(gè)ValUser.java作為JavaBean,用于存儲(chǔ)和處理頁面?zhèn)魉偷男畔ⅰ?/p>

package myjsf;

public class ValUser{

public ValUser( ) { }

String username=null;

String password=null;

//此處省略bean屬性u(píng)sername和password的getter

//和setter方法

// ……

String resultMessage=null;

public String getResultMessage( )//返回登錄結(jié)果

{

if (isValid( ))

this.resultMessage=″valid user,welcome″;

else

this.resultMessage=″invalid user,please login again″;

return this.resultMessage;

}

public void setResultMessage(String resultMessage)

{ }

private boolean isValid( )//檢驗(yàn)用戶名密碼是否合法

{

if (this.password.trim( )。equals(″123456″))

return true;

else

return false;

}

}

為了方便說明,這里簡(jiǎn)單地定義用戶輸入123456就是合法登錄。實(shí)際應(yīng)用中,應(yīng)該使用JDBC或其他技術(shù)從數(shù)據(jù)持久層獲取該用戶的密碼進(jìn)行驗(yàn)證。

  2.3 控制器設(shè)計(jì)和配置文件

JSF的控制器設(shè)計(jì)是在配置文件中完成的。首先需要配置Web應(yīng)用程序的web.xml文件,加入以下內(nèi)容:

Faces Servlet

javax.faces.webapp.FacesServlet


1


Faces Servlet

/login/*


以上內(nèi)容表示只有對(duì)相對(duì)路徑在login下的頁面請(qǐng)求才交給JSF控制器處理,其他請(qǐng)求則不經(jīng)過該控制器。JSF本身的控制文件是faces-config.xml,其中的navigation-rule節(jié)點(diǎn)定義了頁面跳轉(zhuǎn)流程控制,managed-bean節(jié)點(diǎn)定義了JavaBean的信息等,其他用戶界面組件庫 由于 JSF API 的豐富性和靈活性,許多 Java 開發(fā)人員開始創(chuàng)建新的 JSF 組件庫和實(shí)現(xiàn)。

  3  結(jié)  論

JSF框架較好地貫徹了MVC-Model2設(shè)計(jì)體系的思想,使頁面表示和商業(yè)邏輯脫耦,讓各類Web應(yīng)用程序開發(fā)角色實(shí)現(xiàn)真正的各司其職。同時(shí),JSF支持不同的客戶端應(yīng)用,使Web應(yīng)用程序可以很容易地適應(yīng)不同的客戶端訪問協(xié)議。JSF比較適合開發(fā)大型的Web應(yīng)用程序。由于配置過程比較繁瑣,待支持JSF的集成開發(fā)工具或插件發(fā)展成熟時(shí),開發(fā)基于JSF的Web應(yīng)用程序?qū)?huì)變得十分輕松和自然。

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!