日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java EE 6增強(qiáng)的可擴(kuò)展性:Web分片和可插拔框架

【精選譯文】Java EE 6中最引人注目的改進(jìn)要算Web層的展示了,正如前面提到的Java EE 6的一個(gè)重要目標(biāo)(參考之前發(fā)布的Java EE 6平臺(tái)的主要目標(biāo))就是提高可擴(kuò)展性,在可擴(kuò)展性方面兩個(gè)關(guān)鍵改進(jìn)分別是Web分片和可插拔性共享框架,這兩個(gè)新特性是通過Java EE 6中的Servlet 3.0技術(shù)提供的。Servlet 3.0,JSR 315規(guī)范是Servlet技術(shù)的***版本,它提供了諸如支持異步處理和注解等增強(qiáng)。

成都創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元大慶做網(wǎng)站,已為上家服務(wù),為大慶各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

編輯推薦:Java EE 6平臺(tái)指南

Java EE 6中另一個(gè)重要的Web層技術(shù)是JSF 2.0,它是JSF技術(shù)的***版本,JSF 2.0通過Facelets簡化了頁面和組件的開發(fā),并支持異步JavaScript和XML(通常叫做Ajax),以及注解。

Servlet 3.0中支持的Web分片

Web應(yīng)用程序開發(fā)人員通常在他們的應(yīng)用程序中使用第三方框架,如Apache Wicket或Spring MVC。為了使用這些框架,開發(fā)人員需要在Web應(yīng)用程序中注冊要使用的框架,一般都使用Web.xml文件來保存注冊信息,這個(gè)文件還包括構(gòu)成Web應(yīng)用程序的Web組件部署描述符,這樣使得Web.xml變得非常龐大,難以隔離和維護(hù)各種描述符。

Web分片是Servlet 3.0中引入的一個(gè)新技術(shù),通過模塊化部署描述符解決了這個(gè)問題,一個(gè)Web分片可以看作是Web.xml文件的一個(gè)邏輯段,可以存在多個(gè)Web分片,每個(gè)分片代表一個(gè)邏輯段,Web分片集可以組成一個(gè)完整的Web.xml文件,Web.xml文件這種邏輯分區(qū)讓W(xué)eb框架自己可以在Web容器中完成注冊。你在Web應(yīng)用程序中使用的每個(gè)Web框架可以在一個(gè)Web分片中定義所有它需要的工具,如Servlet和監(jiān)聽器,不再需要在Web.xml文件中添加信息。

下面是一個(gè)注冊Servlet和監(jiān)聽器的Web分片示例:

 
 
 
  1.  
  2.          
  3.             myFrameworkServlet 
  4.             myFramework.myFrameworkServlet 
  5.          
  6.  
  7.          
  8.             myFramework.myFrameworkListener 
  9.          
  10.      
  11.  

一個(gè)元素表示一個(gè)Web分片,Web分片必須在一個(gè)名叫web-fragment.xml的文件中,這個(gè)文件可以放在Web應(yīng)用程序類路徑的任何地方,但Web框架通常會(huì)將它的Web分片放到META-INF目錄下。

在Web.xml中使用元素指示W(wǎng)eb容器是否要查找Web分片和注解,如果你將設(shè)為false,或在Web.xml文件中不指定元素,那在以后的開發(fā)過程中,容器就必須掃描Web分片和注解,以便為Web應(yīng)用程序構(gòu)建有效的元數(shù)據(jù)。在響應(yīng)中,Web容器搜索框架JAR文件中的Web分片和注解,Web容器然后使用每個(gè)Web分片中的配置信息注冊應(yīng)用程序要使用的框架,但如果將設(shè)為true,部署描述符會(huì)為Web應(yīng)用程序提供所有的配置信息,這種情況下Web容器不會(huì)搜索Web分片和注解。

因?yàn)镾ervlet 3.0技術(shù)支持Web分片,你可以將Web.xml文件模塊化,你的Web應(yīng)用程序仍然有傳統(tǒng)的,龐大的Web.xml文件,但它是一個(gè)包含一到多個(gè)Web分片的邏輯分區(qū)Web.xml文件。

#t#因?yàn)镾ervlet 3.0讓你可以模塊化你的部署描述符,這些描述符的處理順序非常重要,因?yàn)樗鼈兊捻樞蛴绊懼{(diào)用Servlet,監(jiān)聽器和過濾器的順序,不過不要擔(dān)心,因?yàn)樵赟ervlet 3.0中你可以指定這些描述符的順序。

Servlet 3.0支持對部署描述符的絕對排序和相對排序,在Web.xml文件中使用元素指定絕對排序,在web-fragment.xml文件中使用元素指定相對排序。

例如,假設(shè)你的Web應(yīng)用程序包括兩個(gè)Web分片:MyFragment2 和 MyFragment3,也包括一個(gè)Web.xml文件,可以象下面這樣聲明描述符使用絕對排序:

 
 
 
  1.  
  2.        MyApp 
  3.         
  4.           MyFragment3 
  5.           MyFragment2 
  6.         
  7.        ...  
  8.  
  9.  

通過上面的代碼,我們可以看出處理順序如下:

◆web.xml - web.xml描述符總是***個(gè)處理。

◆MyFragment3

◆MyFragment2

可插拔式共享框架

Web分片和注解不是Servlet 3.0允許你擴(kuò)展web應(yīng)用程序的唯一方法,你也可以插入構(gòu)建在Web容器之上的框架共享副本,如基于XML Web服務(wù)的Java API(JAX-WS),JAX-RS 和 JSF,Servlet 3.0引入了一個(gè)新接口ServletContainerInitializer,它可以用來插入一個(gè)框架。

下面是一個(gè)插入框架A的例子:

 
 
 
  1. @HandlesTypes(AnnotationA.class)  
  2.     AServletContainerInitializer implements ServletContainerInitializer  
  3.     {  
  4.        public void onStartup(Set>c, ServletContext ctx) throws ServletException {  
  5.          // Framework-specific code here to initialize the runtime  
  6.          // and setup the mapping etc.  
  7.          ServletRegistration reg = ctx.addServlet("AServlet", "com.foo.AServlet");  
  8.       reg.addServletMapping("/foo");  
  9.  

當(dāng)容器或應(yīng)用程序啟動(dòng)時(shí),容器使用JAR服務(wù)API發(fā)現(xiàn)ServletContainerInitializer。@HandlesTypes注解指定ServletContainerInitializer可以處理的類型,在WEB-INF/lib目錄下任何JAR中發(fā)現(xiàn)的類都傳遞給ServletContainerInitializer,ServletContainerInitializer就可以和ServletContextListeners使用相同的編程配置API。

原文:Introducing the Java EE 6 Platform 作者:Ed Ort


標(biāo)題名稱:Java EE 6增強(qiáng)的可擴(kuò)展性:Web分片和可插拔框架
分享網(wǎng)址:http://www.dlmjj.cn/article/djggdje.html