`
zhouxing
  • 浏览: 199065 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

簡介 JSF

    博客分类:
  • JSF
阅读更多
Web應用程式的開發與傳統的單機程式開發在本質上存在著太多的差異,Web應用程式開發人員至今不可避免的必須處理HTTP的細節,而HTTP無狀態的(stateless)本質,與傳統應用程式必須維持程式運行過程中的資訊有明顯的違背,再則Web應用程式面對網站上不同的使用者同時的存取,其執行緒安全問題以及資料驗證、轉換處理等問題,又是複雜且難以解決的。

 

另一方面,本質上是靜態的HTML與本質上是動態的應用程式又是一項違背,這造成不可避免的,處理網頁設計的美術人員與程式設計人員,必須被彼此加入至視圖元件中的邏輯互相干擾,即便一些視圖呈現邏輯以標籤的方式呈現,試圖s展現對網頁設計美術人員的親切,但它終究必須牽涉到相關的流程邏輯。

 

有很多方案試著解決種種的困境,而各自的著眼點各不相同,有的從程式設計人員的角度來解決,有的從網頁設計人員的角度來解決,各種的框架被提出,所造成的是各種不統一的標籤與框架,為了促進產能的整合開發環境(IDE)難以整合這些標籤與框架,另一方面,開發人員的學習負擔也不斷的加重,他們必須一人瞭解多個角色的工作。

 

JavaServer Faces [http://java.sun.com/j2ee/javaserverfaces/] 的提出在試圖解決這個問題,它試圖在不同的角度上提供網頁設計人員、應用程式設計人員、元件開發人員解決方案,讓不同技術的人員可以彼此合作又不互相干擾,它綜合了各家廠商現有的技術特點,由Java Community Process(JCP)團隊研擬出來的一套標準,並在2004年三月發表了JavaServer Faces 1.0實作成果。

 

從網頁設計人員的角度來看,JavaServer Faces提供了一套像是新版本的HTML標籤,但它不是靜態的,而是動態的,可以與後端的動態程式結合,但網頁設計人員不需要理會後端的動態部份,網頁設計人員甚至不太需要接觸JSTL這類的標籤,也可以動態的展現資料(像是動態的查詢表格內容),JavaServer Faces提供標準的標籤,這可以與網頁編輯程式結合在一起,另一方面,JavaServer Faces也允許您自訂標籤。

 

從應用程式設計人員的角度來看,JavaServer Faces提供一個與傳統應用程式開發相類似的模型(當然因某些本質上的差異,模型還是稍有不同),他們可以基於事件驅動來開發程式,不必關切HTTP的處理細節,如果必須處理一些視覺元件的屬性的話,他們也可以直接在整合開發環境上拖拉這些元件,點選設定元件的屬性,JavaServer Faces甚至還為應用程式設計人員處理了物件與字串(HTTP傳送本質上就是字串)間不匹配的轉換問題。

 

從UI元件開發人員的角度來看,他們可以設計通用的UI元件,讓應用程式的開發產能提高,就如同在設計Swing元件等,UI開發人員可以獨立開發,只要定義好相關的屬性選項來調整細節,而不用受到網頁設計人員或應用程式設計人員的干擾。

 

三個角色的知識領域原則上可以互不干擾,根據您的角色,您只要瞭解其中一個知識領域,就可以運用JavaServer Faces,其它角色的知識領域您可以不用瞭解太多細節。

 

當然,就其中一個角色單獨來看,JavaServer Faces隱藏了許多細節,若要全盤瞭解,其實JavaServer Faces是複雜的,每一個處理的環境都值得深入探討,所以學習JavaServer Faces時,您要選擇的是通盤瞭解,還是從使用的角度來瞭解,這就決定了您學習時所要花費的心力。

 

要使用JSF,首先您要先取得JavaServer Faces參考實作(JavaServer Faces Reference Implementation),在將來,JSF會與Container整合在一起,屆時您只要下載支援的Container,就可以使用JSF的功能。

 

請至 JSF 官方網站的 下載區 [http://java.sun.com/j2ee/javaserverfaces/download.html] 下載參考實作,在下載壓縮檔並解壓縮之後,將其 lib 目錄下的 jar 檔案複製至您的Web應用程式的/WEB-INF/lib目錄下,另外您還需要 jstl.jar 與 standard.jar 檔案,這些檔案您可以在 sample 目錄下,解壓縮當中的一個範例,在它的/WEB-INF/lib目錄下找到,將之一併複製至您的Web應用程式的/WEB-INF/lib目錄下,您總共需要以下的檔案:
  • jsf-impl.jar
  • jsf-api.jar
  • commons-digester.jar
  • commons-collections.jar
  • commons-beanutils.jar
  • jstl.jar
  • standard.jar

 

接下來配置Web應用程式的web.xml,使用JSF時,所有的請求都透過FacesServlet來處理,您可以如下定義:
  • web.xml
 
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<description>
JSF Demo
</description>
<display-name>JSF Demo</display-name>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>
javax.faces.webapp.FacesServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>

 

在上面的定義中,我們將所有.faces的請求交由FaceServlet來處理,FaceServlet會喚起相對的.jsp網頁,例如請求是 /index.faces的話,則實際上會喚起/index.jsp網頁,完成以上的配置,您就可以開始使用JSF了。
分享到:
评论

相关推荐

    网络安全密码安全.pdf

    ¸ ¨« £˚¶ : 1¡¢¡`¿ »"ˇ´ ¨¸ª˜ —, ˛" ——¿˜ —¨`¸ ¡¶£ »·ł—"ˆ¯¡£ 2¡¢ »"¸—— »˚ˇ ˜¿·——˛˜ …, ¨˘˚˙»—'¿·¸˘—¨ ˜—¡˛ˇ ¡£ 3¡¢ »"¸–ª «˜...

    基于PLC的模糊控制新算法

    ÈçÉÏËùÊö£¬¼òµ¥µÄÄ£ºý²é±í·¨ËäÈ»·½±ãÒ×Ó㬵«ÓÉ ÓÚÆä×ÔÊÊÓ¦ÄÜÁ¦½Ï²î£¬ËùÒÔÁ¼ºÃµÄÐÔÄܵò»µ½³ä·Ö·¢ »Ó¡£ÎªÁË...

    《数据科学与大数据分析:数据的发现分析可视化与表示》.pdf

    r¡§ , ¡£ j ¿" l_1 j 1 j ¡¢ " ¡ L¡» m £ I ¡Œ ˛¨ ¡¢f }_ _ J ¿´l ¡¢ 71 ~JU£ ij ¶ß ¡¢ §¡ ˙œ· —¡·¤ ˜ ffj · ˇ ˝ ¢ j ¡» ¡¢ ˆ ¡£ 5 …' &gt; ¤ - —¯ ˇ¢ ¨« ¶` ...

    opencv学习程序集合

    opencv学习程序集合例2-1显示照片 #include "stdafx.h" #include ...函¡¥数ºy等̨¨待äy按ã¡ä键¨¹,ê?按ã¡ä键¨¹盘¨¬任¨?意°a键¨¹就¨ª返¤¦Ì回? waitKey(); return 0;}

    网络安全知识测试题(2).pdf

    ¨ 8¡¢ ¡—¯ˇ¢ ¨«¡–—˜¡—¯ˇ¢¡–˚˙ £¤ £'¡£ A¡¢—˛˚ ·˜˚ B ¡¢…˘¸ª»œ˝ł´ ˚`ˇ˚… ˝ł´£ ¨—˙¨¤ ˙º`"ˇ˝ł » '§ˇº »` C¡¢—¯ˇ¢–¡¢—¯ˇ¢·ƒ ...

    max232(中文)

    l ¡À30VÊäÈëµçƽ l µÍµçÔ´µçÁ÷£ºµäÐÍÖµÊÇ8mA l ·ûºÏÉõÖÁÓÅÓÚANSI±ê×¼EIA/TIA-232-E¼°ITUÍƼö±ê×¼V.28 l ¿ÉÓëMaxim¹«Ë¾µÄMAX232»¥»» l ESD±...

    C课程设计 交通咨询

    金典实例,数据结构光盘资源。 /* ´Ë³ÌÐòΪȫ¹ú½»Í¨×ÉѯģÄ⣻ ¾ßÓн»Í¨ÏµÍ³... ¿ª·¢Ê±¼äÊÇ2003.10¡ª¡ª2003.12£» ´Ë³ÌÐòΪ×îÖÕ°æ±¾£» */

    浅谈计算机网络安全相关问题.pdf

    ˚ ¡¿ …˘ ¸ª »œ ˝ł ´ £» ˝ł ´ ¨« £» ¶·º ˚' ¡ —˝… "¯ ¡¿ TP 309 ¡ ˛˜ ˇ –Œ ˚¶´º 1A ¡ ˛˜ ´ – "¯ ¡¿ 1001 ¡"8794(2011)O 7 ¡"0l l4 ¡"02 ¸ ¯ ˝ł ´ …… ˚...

    三农大数据.pdf

    £» £" ¨ ¯' · ˚ 15 3 7 £ 7 8 ¡¢ ¡» 1 H £ ª ¶ß˚¡ —¸ ˜ I » f£» « · £ ¡ »" ˜ˇ ¸ …¶ ˜Œ œ3000 ¯ »œ —» ´ « I —§ ˜£˚ ¥ » ¡– ˇ I 1 Ø ˚ Ø œ " —ß … £...

    信息安全技术保障措施.pdf

    —¯ˇ¢ ¨«–£ˇ·º˚' ˝ł´º—¯ˇ¢˜ ¨« » ˇ «¸ £˛æ˜¿" £ » «ˇ œ…˜ ¨«¡¢ »Æ˜˛¨ ¶¤¡£˛ «¸ «¨ˇ¿" ˝ł´º—¯ˇ¢ ¨« £ ˝¤ … Ø ł» ˆ¨ ¨«¨˛£ ¤`¢...

    [详细完整版]3软件工程.pdf

    …˘ ¸ª Ł¯ ´ƒ ¨ … H £§ » —˛ ˆ˙ ˚ ·¤ »œ ¡¢ ˜ ¨ J ¶ œ M ł —— _¡" £" ¡¢Ø » ¶ ˚– £ ˛ ˆ˙ ¿· ˜ ª ˚ ¡¢ j I£ £ ¶ł …˘ ¸ª »œ ¸ i J '091 ~- ª !...

    LECCO SQL Expert for sql server

    LECCO SQL Expert for sql server,Ò»¿îºÜºÃÓõÄSQLÓï¾äÓÅ»¯¹¤¾ß ...°²×°ºÃLECCO SQL Expert for SQL Serverºó£¬°ÑÎļþ¸´ÖƵ½°²×°Ä¿Â¼¼´¿É¡£

    Studio培训教程.pdf

    ˜'˝… ł—— ˛ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 108 –Œ» ˜'˝… ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 117 ˛»œ˛˜ Rietveld «— ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡...

    水泥行业大数据分析报告.pdf

    — º » –£ ¶ ØØ ¨º ¿" ¶ Ø£ ¢ ˇ — ˜ ¸ ˜ ˘ · ¡¢ ´ ˛ ¡– ˇ ˇ ¡£ ˘ … ˚ — » ¡" ¡" ¡" £ » ¡" ¡" £ £ £ £ £ L J ^¡£ » ¡"¡"¡"¡"¡« » ¡æ ¡æ ˘ …˙ ˚...

    CDH5.X Centos安装手册

    1. ¼¯Èº·þÎñÆ÷ÅäÖ㬰üÀ¨°²×°²Ù×÷ϵͳ¡¢¹Ø±Õ·À»ðǽ¡¢Í¬²½·þÎñÆ÷ʱÖӵȣ» 2. °²×°Cloudera ¹ÜÀíÆ÷£» 3. °²×°CDH ¼¯Èº£» 4. ...

    浅谈大数据技术及应用.pdf

    ¡£ ¶ ¡¢ · ˚ ˜ ¯ ˜ … ˘ … ( » ) · ˚ ˜ ¶¤ · ˚ ˚˙ —Ł " ˝¤ ¿ ¸ »æ ¨¡ ¡¢ ·ƒ ¡¢ ˛ · —ƨ¡ … ˜ "£ `¿ ¡¢ ¶ ø » ˜ » ˚ ¡¢ » »¥˚ º ·« —˚ ¡£ ( ...

    OTC代表业务培训教程(下).pdf

    OTC ·œ–˛æ¯ ˚ `ø¡¢¨"˛ø¨¡…߈»œ»Æ ˝¤ £·¸£ œœ·£ "…ߘ¨¸œ˚˙·¨¸˛£ œ˜"˝¸ß…߈£ ˜˙ˆ·£ ˜ »…߸߶·˛˝ ˆ¿·˜ª˜–``¸¡£ ˚ˇ¨£ ˜ª"¸ß˚...

    ClipboardFusion监控系统的剪贴板v3.0.2免费版

    当它找到任何有关剪贴板将¡ ° ¡ ±擦洗(或¡ ° ¡ ±的文字干净)的文本,以消除所有格式。这是伟大的复制和粘贴到电子邮件的文本,文件或任何其他地方。 功能:您还可以(可选)删除剪贴板文本,这是极好的...

    学籍管理系统数据库课程设计.pdf

    ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 2 ˚¿Ł…˘ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 2 1£ —Ł˙ ˛ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ...

    软件工程-工资管理系统.pdf

    ¨ …¶¡¢ »ø– ˚¨¡£ £¤3£'– ø—¯ˇ¢¡£¤˜˚ˇ—…˚–…¡¢…˚¡¢ …–¨¡£ £¤4£'– »ø–—¯ˇ¢¡£¤˜˚ˇ—– "¯¡¢– —ˆß¡¢– ¡¢ – ¸ø˚ ¿ˆ¯¨¡£¡£ £¤5£'...

Global site tag (gtag.js) - Google Analytics