亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2819 | 回復(fù): 0
打印 上一主題 下一主題

JSF Worl Flower [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-01-29 18:24 |只看該作者 |倒序?yàn)g覽

一、JSF介紹
    Web應(yīng)用程序的開發(fā)與傳統(tǒng)的單機(jī)程序開發(fā)在本質(zhì)上存在著太多的差異,Web應(yīng)用程序開發(fā)人員至今不可避免的必須處理HTTP的細(xì)節(jié),而HTTP無狀態(tài)的(stateless)本質(zhì),與傳統(tǒng)應(yīng)用程序必須維持程序運(yùn)行過程中的信息有明顯的違背,再則Web應(yīng)用程序面對(duì)網(wǎng)站上不同的使用者同時(shí)的存取,其執(zhí)行與安全問題以及資料驗(yàn)證、轉(zhuǎn)換處理等問題,又是復(fù)雜且難解決的。
   另一方面,本質(zhì)上是靜態(tài)的HTML與本質(zhì)上是動(dòng)態(tài)的應(yīng)用程序又是一項(xiàng)違背,這造成不可避免的,處理網(wǎng)頁設(shè)計(jì)的美術(shù)人員與程序設(shè)計(jì)人員,必須被彼此加入至視圖元件中的邏輯互相干擾,即便一些視圖呈現(xiàn)邏輯以標(biāo)記方式呈現(xiàn),試圖展現(xiàn)對(duì)網(wǎng)頁設(shè)計(jì)美術(shù)人員的親切,但它終究必須牽涉到相關(guān)的流程邏輯。


   有很多方案試著解決種種的困境,而各自的著眼點(diǎn)各不相同,有的從程序設(shè)計(jì)人員的角度來解決,有的從網(wǎng)頁設(shè)計(jì)人員的角度來解決,各種的框架被提出,所造成的是各種不統(tǒng)一的標(biāo)記與框架,為了提高效益的整合開發(fā)環(huán)境(IDE)難以整合這些標(biāo)記與框架,另一方面,開發(fā)人員的學(xué)習(xí)負(fù)擔(dān)也不斷的加重,他們必須一人了解多個(gè)角色的工作。
   JavaServer Faces 的提出在試圖解決這個(gè)問題,它試圖在不同的角度上提供網(wǎng)頁設(shè)計(jì)人員、應(yīng)用程序設(shè)計(jì)人員、元件開發(fā)人員解決方案,讓不同技術(shù)的人員可以彼此合作又不互相干擾,它綜合了各家廠商現(xiàn)有的技術(shù)特點(diǎn),由Java Community Process(JCP)團(tuán)隊(duì)研究出來的一套標(biāo)準(zhǔn),並在2004年三月發(fā)表了JavaServer Faces 1.0實(shí)現(xiàn)成果。
   從網(wǎng)頁設(shè)計(jì)人員的角度來看,JavaServer Faces提供了一套像是新版本的HTML標(biāo)記,但它不是靜態(tài)的,而是動(dòng)態(tài)的,可以與后端的動(dòng)態(tài)程序結(jié)合,但網(wǎng)頁設(shè)計(jì)人員不需要理會(huì)后端的動(dòng)態(tài)部分,網(wǎng)頁設(shè)計(jì)人員甚至不太需要接觸JSTL這類的標(biāo)記,也可以動(dòng)態(tài)的展現(xiàn)資料(像是動(dòng)態(tài)的查詢表格內(nèi)容),JavaServer Faces提供標(biāo)準(zhǔn)的標(biāo)記,這可以與網(wǎng)頁編輯程序結(jié)合在一起,另一方面,JavaServer Faces也允許您自定義標(biāo)記。
  從應(yīng)用程序設(shè)計(jì)人員的角度來看,JavaServer Faces提供一個(gè)與傳統(tǒng)應(yīng)用程序開發(fā)相類似的模型(當(dāng)然因某些本質(zhì)上的差異,模型還是稍有不同),他們可以基于事件驅(qū)動(dòng)來開發(fā)程序,不必關(guān)切HTTP的處理細(xì)節(jié),如果必須處理一些視覺元件的屬性的話,他們也可以直接在整合開發(fā)環(huán)境上拖拉這些元件,點(diǎn)選設(shè)定元件的屬性,JavaServer Faces甚至還為應(yīng)用程序設(shè)計(jì)人員處理了物件與字串(HTTP傳送本質(zhì)上就是字串)間不匹配的轉(zhuǎn)換問題。
   從UI元件開發(fā)人員的角度來看,他們可以設(shè)計(jì)通用的UI元件,讓應(yīng)用程序的開發(fā)產(chǎn)能提高,就如同在設(shè)計(jì)Swing元件等,UI開發(fā)人員可以獨(dú)立開發(fā),只要定義好相關(guān)的屬性選項(xiàng)來調(diào)整細(xì)節(jié),而不用受到網(wǎng)頁設(shè)計(jì)人員或應(yīng)用程序設(shè)計(jì)人員的干擾。
   三個(gè)角色的知識(shí)領(lǐng)域原則上可以互不干擾,根據(jù)您的角色,您只要了解其中一個(gè)知識(shí)領(lǐng)域,就可以運(yùn)用JavaServer Faces,其它角色的知識(shí)領(lǐng)域您可以不用了解太多細(xì)節(jié)。
   當(dāng)然,就其中一個(gè)角色單獨(dú)來看,JavaServer Faces隱藏了許多細(xì)節(jié),若要全盤了解,其實(shí)JavaServer Faces是復(fù)雜的,每一個(gè)處理的環(huán)境都值得深入探討,所以學(xué)習(xí)JavaServer Faces時(shí),您要選擇的是通盤了解,還是從使用的角度來了解解,這就決定了您學(xué)習(xí)時(shí)所要花費(fèi)的心力。
   要使用JSF,首先您要先取得JavaServer Faces參考實(shí)現(xiàn)(JavaServer Faces Reference Implementation),在將來,JSF會(huì)與Container整合在一起,屆時(shí)您只要下載支援的Container,就可以使用JSF的功能。
   請(qǐng)至 JSF 官方網(wǎng)站的 下載區(qū) 下載參考實(shí)現(xiàn),在下載區(qū)壓縮檔并解壓之后,將其 lib 目錄下的 jar 檔案復(fù)制至您的Web應(yīng)用程序的/WEB-INF/lib目錄下,另外您還需要 jstl.jar 與 standard.jar 檔案,這些檔案您可以在 sample 目錄下,解壓縮當(dāng)中的一個(gè)范例,在它的/WEB-INF/lib目錄下找到,將之一并復(fù)制至您的Web應(yīng)用程序的/WEB-INF/lib目錄下,您總共需要以下的檔案:
jsf-impl.jar  
jsf-api.jar  
commons-digester.jar  
commons-collections.jar  
commons-beanutils.jar  
jstl.jar  
standard.jar  
接下來配置Web應(yīng)用程序的web.xml,使用JSF時(shí),所有的請(qǐng)求都透過FacesServlet來處理,您可以如下定義:
web.xml  
  
  
  
  
  
     
        JSF Demo
     
    JSF Demo
     
        Faces Servlet
         
            javax.faces.webapp.FacesServlet
         
        1
     
   
     
        Faces Servlet
        *.faces
     
   
     
        index.html
     
  
  
   在上面的定義中,我們將所有.faces的請(qǐng)求交由FaceServlet來處理,F(xiàn)aceServlet會(huì)喚起相對(duì)的.jsp網(wǎng)頁,例如請(qǐng)求是/index.faces的話,則實(shí)際上會(huì)喚起/index.jsp網(wǎng)頁,完成以上的配置,您就可以開始使用JSF了。
二、第一個(gè)JSF程序  
   現(xiàn)在可以開發(fā)一個(gè)簡單的程式了,我們將設(shè)計(jì)一個(gè)簡單的登入程式,使用者送出名稱,之后由程序顯示使用者名稱及歡迎信息。
程序開發(fā)人員
    先看看應(yīng)用程序開發(fā)人員要作些什么事,我們撰寫一個(gè)簡單的JavaBean:
UserBean.java  
  
package onlyfun.caterpillar;
public class UserBean {
    private String name;
   
    public void setName(String name) {
        this.name = name;
    }
   
    public String getName() {
        return name;
    }
}
  
這個(gè)Bean將儲(chǔ)存使用者的名稱,編譯好之后放置在/WEB-INF/classes下。
   接下來設(shè)計(jì)頁面流程,我們將先顯示一個(gè)登錄網(wǎng)頁/pages/index.jsp,使用者填入名稱并送出表單,之后在/pages/welcome.jsp中顯示Bean中的使用者名稱與歡迎信息。
   為了JSF知道我們所設(shè)計(jì)的Bean以及頁面流程,我們定義一個(gè)/WEB-INF/faces-config.xml:
faces-config.xml  
  
  
  
  
     
        /pages/index.jsp
         
            login
            /pages/welcome.jsp
         
     
        
     
        user
         
             onlyfun.caterpillar.UserBean
         
        session
     
  
  
    在中,我們定義了頁面流程,當(dāng)請(qǐng)求來自中指定的頁面,並且指定了中的為login時(shí),則會(huì)將請(qǐng)求導(dǎo)向至所指定的頁面。
    在中我們可以統(tǒng)一管理我們的Bean,我們?cè)O(shè)定Bean物件的存活范圍是session,也就是使用者開啟瀏覽器與程序互動(dòng)過程中都存活。
   接下來要告訴網(wǎng)頁設(shè)計(jì)人員的信息是,他們可以使用的Bean名稱,即中設(shè)定的名稱,以及上面所定義的頁面流程。
網(wǎng)頁設(shè)計(jì)人員
首先網(wǎng)頁設(shè)計(jì)人員撰寫index.jsp網(wǎng)頁:
index.jsp  
  
  
  
   
  
  
第一個(gè)JSF程式
  
  
     
         
            請(qǐng)輸入您的名稱
            名稱:  
            
         
     
  
  
  
   我們使用了JSF的core與html標(biāo)記庫,core是有關(guān)于UI元件的處理,而html則是有關(guān)于HTML的進(jìn)階標(biāo)記。
   與有類似的作用,當(dāng)您要開始使用JSF元件時(shí),這些元件一定要在與之間,就如同使用HTML時(shí),所有的標(biāo)記一定要在與之間。
    html標(biāo)記庫中幾乎都是與HTML標(biāo)記相關(guān)的進(jìn)階標(biāo)記,會(huì)產(chǎn)生一個(gè)表單,我們使用來顯示user這個(gè)Bean物件的name屬性,而會(huì)產(chǎn)生一個(gè)提交按鈕,我們?cè)赼ction屬性中指定將根據(jù)之前定義的login頁面流程中前往welcome.jsp頁面。
網(wǎng)頁設(shè)計(jì)人員不必理會(huì)表單傳送之后要作些什么,他只要設(shè)計(jì)好歡迎頁面就好了:
welcome.jsp  
  
  
  
   
  
  
第一個(gè)JSF程式
  
  
     
         您好!
        歡迎使用 JavaServer Faces!
     
  
  
  
   這個(gè)頁面沒什么需要解釋的了,如您所看到的,在網(wǎng)頁上沒有程式邏輯,網(wǎng)頁設(shè)計(jì)人員所作的就是遵照頁面流程,使用相關(guān)名稱取出資料,而不用擔(dān)心實(shí)際上程式是如何運(yùn)作的。
接下來啟動(dòng)Container,(站長注:我用的是Tomcat 5,整個(gè)目錄結(jié)構(gòu)請(qǐng)從本站下載)連接上您的應(yīng)用程序網(wǎng)址,例如:http://localhost:8080/jsfDemo/pages/index.faces,填入名稱并送出表單,您的歡迎頁面就會(huì)顯示了。



本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/7869/showart_2164348.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP