Analysis of Web.xml in Hello1 project

1、web.xml文件介紹html

  • The web.xml file contains several elements that are required for a Facelets application. All of the following are created automatically when you use NetBeans IDE to create an application.
  • web.xml文件的做用

web.xml主要用來配置Filter、Listener、Servlet等。可是要說明的是web.xml並非必須的,一個web工程能夠沒有web.xml文件。java

  • WEB容器的加載過程

WEB容器的加載順序是:git

ServletContext -> context-param -> listener -> filter -> servlet。在web.xml文件中最好按照這種順序配置這些元素,以兼容較低版本的Tomcat。github

  • WEB容器的啓動過程

 WEB容器啓動時,加載過程順序以下:web

    1. 啓動一個WEB項目的時候,WEB容器會去讀取它的配置文件web.xml,讀取<listener>和<context-param>兩個結點。 
    2. 緊急着,容建立一個ServletContext(servlet上下文),這個web項目的全部部分都將共享這個上下文。 
    3. 容器將<context-param>轉換爲鍵值對,並交給servletContext。 
    4. 容器建立<listener>中的類實例,建立監聽器。 

 

2、web.xml of hello1 analysissession

• xml文檔第一行的聲明和它的文檔元素描述信息。app

<?xml version="1.0" encoding="UTF-8"?>
  • 表示文檔符合xml1.0規範,文檔字符編碼默認爲「UTF-8」 

 

• Servlet 3.1 deployment descriptor:webapp

複製代碼
<web-app version="3.1" 
     xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
... </web-app>
複製代碼
  • Java EE 7 XML schema, namespace is http://xmlns.jcp.org/xml/ns/javaee/
  • web-app是web.xml文檔的根元素
  • xmlns是XML NameSpace的縮寫
  • xmls(:xxx)="yyy"這是xml引入名稱空間的語法格式,式中,「xxx」表示引入名臣空間的前綴名,能夠指定(如「xsi」),也可不指定(使用默認),「yyy」表示該名稱空間的名稱,形式上爲一個URL。
  • xsi名稱空間下有不少較爲重要的屬性,其中一個就是xsi:schemaLocation,它的做用是引入XML Schema文檔,對xml文檔的元素進行內容約束。它包含了兩個URL,這兩個URL之間用空白符或者換行符進行分割。第一個URL是名稱空間的名稱,第二個URL是文檔的位置。那麼,這句的做用是引入一個名稱空間爲http://xmlns.jcp.org/xml/ns/javaee、文檔位置爲http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd的XML Schema文檔。也可參閱Eclipse XML文件模板中給出的XML文件引入Schema文檔的語法格式:
    xsi:schemaLocation="{namespace} {location}

 

• A context parameter specifying the project stage:jsp

<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>
  •  A context parameter provides configuration information needed by a web application. An application can define its own context parameters. In addition, JavaServer Faces technology and Java Servlet technology define context parameters that an application can use.
  • 聲明應用範圍內的初始化參數。它用於向 ServletContext提供鍵值對,即應用程序上下文信息。咱們的listener, filter等在初始化時會用到這些上下文中的信息。
  • 在servlet裏面能夠經過getServletContext().getInitParameter("context/param")獲得。

 

 • A servelt element and its servlet-mapping element specifying the FacesServlet. All files with the .xhtml suffix will be matched:ide

複製代碼
<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>*.xhtml</url-pattern>
</servlet-mapping>
複製代碼
  • <servlet> 用來聲明一個servlet的數據,主要有如下子元素:
  • <servlet-name> 指定servlet的名稱
  • <servlet-class> 指定servlet的類名稱
  • <jsp-file> 指定web站臺中的某個JSP網頁的完整路徑
  • <init-param> 用來定義參數,可有多個init-param。
  • <load-on-startup> 當值爲正數或零時,從小到大加載。不然第一次訪問時加載。
  • <servlet-mapping> 用來定義servlet所對應的URL,包含兩個子元素
  • <servlet-name> 指定servlet的名稱
  • <url-pattern> 指定servlet所對應的URL

 

• 會話超時配置:

<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>

 

• A welcome-file-list element specifying the location of the landing page:

<welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

 

 

參考:(https://javaee.github.io/tutorial/webapp003.html#GJWTV)

   (https://www.jianshu.com/p/0e53eff3b920)

   (https://www.cnblogs.com/LiZhiW/p/4313844.html)

相關文章
相關標籤/搜索