成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JSF在GlassFish管理控制臺中的應用

開發 后端
本文介紹如何在GlassFish管理控制臺中應用JSF模板,如何對JSF做單元測試,JSF的組件庫以及如何提高JSF的性能等問題。

相比于Tomcat,GlassFish的用戶群還沒有那么廣泛,但是因為其同樣免費、開源,而且擁有如延遲加載、 Grizzly等技術,正取得越來越多人的認可。而JSF作為一個Web開發的標準,雖然自誕生之日起就一直飽受爭議,不過在爭議中,它也在贏得更多開發者的眼光。Anissa是GlassFish的一個主要提交者,領導其管理控制臺項目,在Sun的應用服務器團隊工作了7年之久。InfoQ中文站的編輯霍泰穩有幸就JSF在GlassFish管理控制臺中的應用,如為何在GlassFish管理控制臺中應用JSF模板,如何對JSF做單元測試,JSF的組件庫以及如何提高JSF的性能等問題采訪了Anissa.

請介紹一下您自己以及目前所主要研究的技術領域。

Anissa:我是GlassFish的主要提交者,目前領導其管理控制臺項目。大約七年前,我加入了應用服務器團隊,那時GlassFish還沒有開源。我參與過許多GUI工具,包括J2EE 1.4參考實現中的deploytool以及我們深受歡迎的IDE_NetBeans的插件,而現在是負責管理控制臺。在這些年里,我見證了Web應用開發技術的發展過程,并從中受益很多。我目前專注于Web 2.0,致力于將***的技術應用到GlassFish管理控制臺。

GlassFish管理控制臺用到了JSF模板,請介紹一下選用這個技術的緣由。

Anissa:JSF是一個面向組件的框架。因此,它易于組織各種具有復雜功能的“組件”成為一個網頁,這些組件包括文件選擇、文件上傳、表格、BreadCrumb、屬性表以及其它很多組件。但是,JSF 1.2 沒有提供一種簡潔的方式重用GUI顯示邏輯或者通過模板組織頁面。 JSFTemplating通過協調模板讓定義頁面變得更有效率。它也添加了許多旨在鼓勵代碼復用的特性和其他有用的功能。這些功能包括:一個細粒度的事件模型、能夠參數化的可重用“處理函數”、支持注釋、頁面作用域、可以將任何內容來源轉化為資源流、可定制的組件工廠。這些功能和JSF豐富的組件模型結合,為創建GlassFish管理控制臺提供了豐富的開發環境。

JSF的一個初衷就是快速開發,但單元測試對快速開發同樣重要。您如何做JSF的單元測試?

Anissa:我不得不承認管理控制臺的單元測試是***缺陷的地方之一,亟需提高。對于 GlassFish V2,我們已經研究并使用Selenium做了一些測試,雖然Selenium更適合功能測試。我們也依靠質量保證部門對控制臺進行自動化測試。對于 GlassFish V3,我們正在研究不同的框架,例如JSFUnit,它可以作為Maven構建過程和Hudson的一部分。

目前關于JSF的錯誤提示似乎還不那么直觀,過于底層,對于如何定位錯誤您有什么技巧?

Anissa:JSF錯誤信息從1.0開始一直在持續改進。不幸的是,很多時候人們面對錯誤信息,仍然需要具備足夠的JSF是如何工作的知識才能完全理解。找出錯誤的根源常常需要經驗。但是,這里有一些技巧可以幫助你:
    查看JSF源代碼。JSF是開源的,不要害怕去獲取源代碼,看一看錯誤發生位置處的代碼。報告糟糕的錯誤信息。當你無法理解錯誤信息的意思時,請去https://javaserverfaces.dev.java.net,提交一個“問題 ”,這會有助于改進錯誤信息而且你也很有可能得到你所遇到的問題的答案。使用google,在論壇上提問。有很多人在使用JSF,可能有人已經遇到并提出了這個問題。如果沒有,你會發現許多人樂于幫助你、解答你的問題。確認你使用了JSF “h:messages”組件(或者另外一個顯示這些內容的組件)。JSF經常使用“Faces消息”機制報告錯誤,如果你沒有在頁面上包含 “h:messages” 組件,你就無法看到這些錯誤。

使用這些技巧,你能夠解決遇到的任何問題。

JSF用來做重業務,輕頁面的企業開發還比較合適,但現在客戶也都比較重視頁面,對界面設計也提出了很高的要求。通過IDE,JSF可以實現可視化編輯Web界面,但如何高效的實現開發人員和網頁開發人員的合作?您在開發JSF時是如何跟美工配合的?

Anissa:我們的產品對界面設計感觀有一個非常明確的標準。我們使用的組件(Woodstock)默認情況下就反映了這種設計要求。因此,JSF面向組件的本質提供給我們很多外觀和感覺方面的選擇,而不需要太多開發工作。也就是說,我們的產品中有一些地方需要定制圖片、決定如何顯示信息,也存在一些地方沒有被JSF Woodstock組件覆蓋。針對這些情況,我們與美工合作創建圖片,或者他們幫助我們決定哪些組件最合適,或者對新組件制定標準。如果需要新組件,我們經常讓Woodstock團隊負責這項工作--當我們不能等待時,我們才會自己實現。美工通常提供圖片和HTML,我們將其轉化成JSF頁面或者組件。

管理控制臺是如何使用AJAX技術的?

Anissa:在GlassFish V2中,我們在大多數頁面上使用Ajax計算BreadCrumb。瀏覽器中的JavaScript計算當前哪一個樹節點被選中,然后從樹節點中獲取 URL,將這些信息通過XMLHttpRequest發送給服務器。服務器將這些信息轉化成由多個Woodstock超鏈接組成的BreadCrumb組件。顯示該組件的代碼返回到瀏覽器后,JavaScript將BreadCrumb信息更新到當前頁面上。

當新對象創建時,我們也使用Ajax更新樹節點。整棵樹從不會被完全刷新,它只會通過Ajax進行部分更新。我們使用Dynamic Faces實現Ajax技術,它是Ed Burns(JSF標準負責人)領導的JSF擴展項目的一部分。

JSF一個重要的優勢是基于組件,管理控制臺有沒有開發自己的組件庫,關于組件庫的選擇使用有何建議?管理控制臺中的表單是如何進行擴展的?

Anissa:正如在回答第4個問題時所提到的,我們使用Woodstock組件開發控制臺。 Woodstock 提供了一整套JSF組件,讓開發人員基于統一的規范創建方便的本地化的應用。我們還沒有遇到需要自己開發組件的情況。如果你有這個想法,你可以看一看 Ken Paulsen寫的有關ServerSide的文章,他是JSFTemplating的技術負責人和創建者。他在文中展示了如何使用 JSFTemplating簡化和加快顯示(Render)開發。

我們的許多頁面使用表單顯示數據,這也是Woodstock的組件之一。

在使用JSF的過程中,你們主要遇到了哪些棘手的難題,又是如何克服的?

Anissa:Bug。當組件正常工作的時候它們很出色,但是當你處理一個無法工作的新組件時,很難找到原因。幸運的是,這種情況不會經常發生,因為組件被很多人、很多程序重用,因此bug會及時發現。但是,如果這發生了,我們會與組件作者交流、在論壇或者irc頻道提問、搜索google中其他人遇到的類似問題,問題最終得到解決。

JSF通過和Session綁定實現數據顯示,雖然簡單了,但是控制數據同時也困難了。對于這種情況,您是如何理解的?

Anissa:管理控制臺盡量避免使用session作用域。頻繁使用session可能會導致內存的大量占用,或者之前的動作遺留下來的一些信息會導致產生bug。管理控制臺盡可能多的使用request,還有pageSession,它允許伴隨著頁面存儲值,只要你處于同一個頁面,其值就一直存在,但不會超過頁面的生存時間。我們的確遇到過一些情況,數據必須跨頁面存在,我們要么在頁面之間傳遞數據,要么在極少的個案中使用session。

在提升JSF應用的性能方面,您有什么建議?

Anissa:JSF提供了大量功能。但是,功能只有在需要時才是有價值的。是否應該使用JSF的更多功能取決于你應用程序的需求。如果你想對功能進一步了解以確定它們是否對你的應用有幫助,我推薦你閱讀一本好書以及在JSF論壇上提問。你可能也會考慮加入 irc.freenode.net上的jsf IRC頻道。這是一個聆聽其他人提問和從專家獲取答案的好地方。如果正在使用JSFTemplating或者只是想多了解一下,#jsftemplating也是一個不錯的去處。

【編輯推薦】

  1. 簡述JSF入門介紹
  2. JSF和Struts的區別概述
  3. 編寫JSF自定義復合組件的原則和技巧
  4. 選擇JSF不選Struts的十大理由
  5. Tapestry和JSF對比
責任編輯:佚名 來源: 中國IT實驗室
相關推薦

2009-06-01 11:23:08

Glassfish部署Glassfish

2011-07-05 09:50:42

JAVA

2009-06-25 11:11:25

控制JSF切入點

2018-04-19 10:39:45

大數據資源控制大數據平臺

2024-10-17 08:36:31

2011-07-11 13:43:45

Windows控制臺

2011-07-11 13:52:45

Windows控制臺

2011-03-24 10:08:38

Nagiosweb

2009-06-10 15:14:00

2009-06-23 13:01:04

JSF應用

2022-09-05 16:05:58

Freeswitch開源

2011-07-26 18:13:53

控制臺

2009-06-18 15:28:08

Glassfish JSpring

2011-07-27 13:59:04

2011-03-07 13:35:51

OpenNebula管理控制臺

2009-06-23 15:09:14

managed-beaJSF

2009-07-29 10:22:00

Ubuntu虛擬控制臺linux

2011-07-19 15:15:59

故障恢復控制臺

2009-06-22 17:26:26

頁面導航JSF

2009-06-11 13:46:38

用戶訪問權限GlassFish
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕在线精品 | 亚洲成人一区二区三区 | 成人av资源在线 | 久久精品色欧美aⅴ一区二区 | 国产精品免费观看 | 亚洲人一区 | 国产精品日产欧美久久久久 | 成年人在线观看视频 | 久久9久 | 日韩视频国产 | 97久久超碰| 国产精品自拍av | 国产伦精品一区二区三区视频金莲 | 久久精选| 在线一区二区国产 | 欧美一区二区三区在线视频 | 美女国产一区 | 激情五月婷婷综合 | 日韩在线观看 | 国产亚洲一区二区在线观看 | 欧美一区二区三区高清视频 | 欧美亚洲视频在线观看 | 久久精品超碰 | 国产成人麻豆免费观看 | 夜夜骑av | 亚洲精品1区 | 日韩欧美中文字幕在线视频 | 国产高清在线 | 日韩电影中文字幕在线观看 | 国产香蕉视频在线播放 | 精品乱码一区二区三四区 | 精品香蕉一区二区三区 | 国产高清自拍视频在线观看 | 欧美一区二区大片 | 91色综合 | h小视频 | 亚洲视频免费在线观看 | 国产精品久久久久国产a级 欧美日韩国产免费 | 欧美日韩手机在线观看 | 日韩欧美久久精品 | 日韩欧美在线不卡 |