日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

web片段的概念

發(fā)布時(shí)間:2025/3/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web片段的概念 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

注解的引入使得web.xml變成可選的了。但是,我們還是可以使用web.xml。容器會(huì)根據(jù)web.xml中的metadata- complete元素的值來(lái)決定使用web.xml還是使用注解。如果該元素的值是true,那么容器不處理注解,web.xml是所有信息的來(lái)源。如果 該元素不存在或者其值不為true,容器才會(huì)處理注解。
Web框架的可插入性
我們前面說(shuō)過(guò)了Servlet3.0的改進(jìn)之一就是使得我們能夠?qū)⒖蚣芎蛶?kù)插入到web應(yīng)用程序中。這種可插入性減少了配置,并且提高了web應(yīng)用程序的模塊化。Servlet3.0是通過(guò)web模塊布署描述片段(簡(jiǎn)稱(chēng)web片段)來(lái)實(shí)現(xiàn)插入性的。
一個(gè)web片段就是web.xml文件的一部分,被包含在框架特定的Jar包的META-INF目錄中。Web片段使得該框架組件邏輯上就是web應(yīng)用程序的一部分,不需要編輯web布署描述文件。
Web 片段中使用的元素和布署文件中使用的元素基本相同,除了根元素不一樣。Web片段的根元素是<web-fragment>,而且文件名必須叫 做web-fragment.xml。容器只會(huì)在放在WEB-INF\lib目錄下的Jar包中查找web-fragment.xml文件。如果這些 Jar包含有web-fragment.xml文件,容器就會(huì)裝載需要的類(lèi)來(lái)處理他們。
在web.xml中,我們要求Servlet的name必須唯一。同樣的,在web.xml和所有的web片段中,Servlet的name也必須唯一。
下面就是一個(gè)web-fragment的例子:
web-fragment.xml

1. <web-fragment>

2. <servlet>

3. <servlet-name>ControllerServlet</servlet-name>

4. <servlet-class>com.app.control.ControllerServlet</servlet-class>

5. </servlet>

6. <listener>

7. <listener-class>com.listener.AppServletContextListener</listener-class>

8. </listener>

9. </web-fragment>

復(fù)制代碼

框架的Jar包是放在WEB-INF\lib目錄下的,但是Servlet3.0提供兩種方法指定多個(gè)web片段之間的順序:
?? 1. 絕對(duì)順序
?? 2. 相對(duì)順序
我 們通過(guò)web.xml文件中的<absolute-ordering>元素來(lái)指定絕對(duì)順序。這個(gè)元素有之元素name,name的值是各個(gè) web片段的name元素的值。這樣就指定了web片段的順序。如果多個(gè)web片段有相同的名字,容器會(huì)忽略后出現(xiàn)的web片段。下面是一個(gè)指定絕對(duì)順序 的例子:
web.xml

1. <web-app>

2. <name>DemoApp</name>

3. <absolute-ordering>

4. <name>WebFragment1</name>

5. <name>WebFragment2</name>

6. </absolute-ordering>

7. ...

8. </web-app>

復(fù)制代碼

相對(duì)順序通過(guò)web-fragment.xml中的<ordering>元素來(lái)確定。Web片段的順序 由<ordering>的子元素<before>,<after>和<others>來(lái)決定。當(dāng)前的 web片段會(huì)放在所有的<before>元素中的片段之前。同樣的,會(huì)放在所有的<after>元素中的片段之 后。<others>用來(lái)代替所有的其他片段。注意只有當(dāng)web.xml中沒(méi)有<absolute-ordering>時(shí),容器 才會(huì)使用web片段中定義的相對(duì)順序。
下面是一個(gè)幫助理解相對(duì)順序的例子:
web-fragment.xml

1. <web-fragment>

2. <name>WebFragment1</name>

3. <ordering><after>WebFragment2</after></ordering>

4. ...

5. </web-fragment>

復(fù)制代碼

web-fragment.xml

1. <web-fragment>

2. <name>WebFragment2</name>

3. ..

4. </web-fragment>

復(fù)制代碼

web-fragment.xml

1. <web-fragment>

2. <name>WebFragment3</name>

3. <ordering><before><others/></before></ordering>

復(fù)制代碼

..
</web-fragment>
這些文件將會(huì)按照下面的順序被處理:
?? 1. WebFragment3
?? 2. WebFragment2
?? 3. WebFragment1
包含WebFragment3的Jar文件被最先處理,包含WebFragment2的文件被第二個(gè)處理,包含WebFragment1的文件被最后處理。
如果既沒(méi)有定義絕對(duì)順序,也沒(méi)有定義相對(duì)順序,那么容器就認(rèn)為所有的web片段間沒(méi)有順序上的依賴(lài)關(guān)系。

轉(zhuǎn)載于:https://my.oschina.net/fivewang/blog/689839

總結(jié)

以上是生活随笔為你收集整理的web片段的概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。