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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Analysis of Web.xml in Hello1 project

發(fā)布時間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Analysis of Web.xml in Hello1 project 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

web.xml加載過程(步驟)

首先簡單講一下,web.xml的加載過程。當(dāng)啟動一個WEB項目時,容器包括(JBoss、Tomcat等)首先會讀取項目web.xml配置文件里的配置,當(dāng)這一步驟沒有出錯并且完成之后,項目才能正常地被啟動起來。

1. 啟動WEB項目的時候,容器首先會去它的配置文件web.xml讀取兩個節(jié)點:? <listener></listener>和<context-param></context-param>。

2. 緊接著,容器創(chuàng)建一個ServletContext(application),這個WEB項目所有部分都將共享這個上下文。

3. 容器以<context-param></context-param>的name作為鍵,value作為值,將其轉(zhuǎn)化為鍵值對,存入ServletContext。

4. 容器創(chuàng)建<listener></listener>中的類實例,根據(jù)配置的class類路徑<listener-class>來創(chuàng)建監(jiān)聽,在監(jiān)聽中會有contextInitialized(ServletContextEvent args)初始化方法,啟動Web應(yīng)用時,系統(tǒng)調(diào)用Listener的該方法。

5. 舉例:你可能想在項目啟動之前就打開數(shù)據(jù)庫,那么這里就可以在<context-param>中設(shè)置數(shù)據(jù)庫的連接方式(驅(qū)動、url、user、password),在監(jiān)聽類中初始化數(shù)據(jù)庫的連接。這個監(jiān)聽是自己寫的一個類,除了初始化方法,它還有銷毀方法,用于關(guān)閉應(yīng)用前釋放資源。比如:說數(shù)據(jù)庫連接的關(guān)閉,此時,調(diào)用contextDestroyed(ServletContextEvent args),關(guān)閉Web應(yīng)用時,系統(tǒng)調(diào)用Listener的該方法。

6. 接著,容器會讀取<filter></filter>,根據(jù)指定的類路徑來實例化過濾器。

7.?以上都是在WEB項目還沒有完全啟動起來的時候就已經(jīng)完成了的工作。如果系統(tǒng)中有Servlet,則Servlet是在第一次發(fā)起請求的時候被實例化的,而且一般不會被容器銷毀,它可以服務(wù)于多個用戶的請求。所以,Servlet的初始化都要比上面提到的那幾個要遲。

8.?總的來說,web.xml的加載順序是:<context-param>-><listener>-><filter>-><servlet>。其中,如果web.xml中出現(xiàn)了相同的元素,則按照在配置文件中出現(xiàn)的先后順序來加載。

WEB.xml In Hello1:

1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="3.1" 3 xmlns="http://xmlns.jcp.org/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

這一部分顯示了XML 的版本(1.0)和所使用的編碼格式(UTF-8 )

然后下一行描述文檔的根元素:web-app,并且在最后一行定義了根元素的結(jié)尾:</web-app>。

<context-param>
??????? <param-name>javax.faces.PROJECT_STAGE</param-name>
??????? <param-value>Development</param-value>
??? </context-param>

<context-param>以鍵值對的形式配置,在web項目啟動時就會訪問該節(jié)點,容器會將這個節(jié)點傳輸?shù)絊ervletContext(上下文對象)中,在程序中就能通過這個上下文對象去取得我們這個配置值。

1 <servlet> 2 <servlet-name>Faces Servlet</servlet-name> 3 <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 4 <load-on-startup>1</load-on-startup> 5 </servlet> 6 <servlet-mapping> 7 <servlet-name>Faces Servlet</servlet-name> 8 <url-pattern>*.xhtml</url-pattern> 9 </servlet-mapping>

一個servlet元素及其servlet-mapping元素指定?FacesServlet。所有帶.xhtml后綴的文件都將匹配它。

servlet-mapping元素在Servlet和URL樣式之間定義一個映射。

它包含了兩個子元素servlet- name和url-pattern:

servlet-name元素給出的Servlet名字必須是 在servlet元素中聲明過的Servlet的名字。

url-pattern元素指定對應(yīng)于Servlet的URL路徑,
如果url-pattern定義的是路徑,那么以后所有對這個路徑下資源的請求都會由servlet-name中定義的servlet處理.
如果url-pattern定義的是資源格式例如*.do等,那么對于所有符合這種格式的資源的請求都由指定的servlet處理。

1 <session-config> 2 <session-timeout> 3 30 4 </session-timeout> 5 </session-config>

session-timeout元素用來指定默認的會話超時時間間隔,以分鐘為單位。該元素值必須為整數(shù)。如果session-timeout元素的值為零或者負數(shù),則表示會話將永遠不會超時。

轉(zhuǎn)載于:https://www.cnblogs.com/BleachCurtain/p/10642810.html

總結(jié)

以上是生活随笔為你收集整理的Analysis of Web.xml in Hello1 project的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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