教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

web.xml配置詳解

更新時(shí)間:2016年04月26日16時(shí)33分 來源:傳智播客Java培訓(xùn)學(xué)院 瀏覽次數(shù):

web.xml文件我們都不陌生,每一個(gè)web應(yīng)用中都會(huì)有一個(gè)web.xml文件。在Tomcat安裝目錄下的conf目錄也有web.xml文件,而今天我們分析的web.xml正是Tomcat的web.xml。
我們知道,每一個(gè)web應(yīng)用最終是被發(fā)布到Tomcat的webappes目錄下,Tomcat是它們的運(yùn)行環(huán)境。可以理解為Tomcat的web.xml文件是每一個(gè)web應(yīng)用的web.xml的父文件,Tomcat將每個(gè)應(yīng)用的公共配置提取出來放在conf目錄下的web.xml中,每個(gè)應(yīng)用的個(gè)性配置放在自己的web.xml文件中。如圖1-1所示:

圖1-1 web.xml關(guān)系圖
下面我們結(jié)合web.xml文件的內(nèi)容,來分析它的配置的作用,web.xml文件主要內(nèi)容如例1-1所示:
例1-1 conf/web.xml
... ...
<servlet>
  <servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>         
  <init-param>
     <param-name>debug</param-name>
     <param-value>0</param-value>
  </init-param>
  <init-param>
     <param-name>listings</param-name>
     <param-value>false</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet>
        <servlet-name>jsp</servlet-name> 
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
</servlet>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern> 
       <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
    <!-- 這里省略了大概4000多行的MIME類型的定義,只給出兩種MIME類型的定義 -->
    <mime-mapping>
        <extension>bmp</extension>
        <mime-type>image/bmp</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>htm</extension>
        <mime-type>text/html</mime-type>
    </mime-mapping>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
對(duì)以上內(nèi)容進(jìn)行分析,如下:
(1)<servlet-name>default</servlet-name>
對(duì)應(yīng)一個(gè)類名為DefaultServlet的Servlet,我們看這個(gè)servlet對(duì)應(yīng)的<servlet-mapping>中的映射路徑是“/”,匹配所有路徑。優(yōu)先級(jí)最低,當(dāng)用戶訪問的url沒有匹配的Servlet或頁(yè)面時(shí),訪問DefaultServlet ,它會(huì)響應(yīng)給客戶端一個(gè)404狀態(tài)碼。
(2)<servlet-name>jsp</servlet –name>
對(duì)應(yīng)一個(gè)類名為JspServlet的Servlet,該Servlet的映射路徑是“*.jsp”、“*.jspx”。即當(dāng)用戶請(qǐng)求的資源是一個(gè)jsp頁(yè)面等時(shí),訪問的是JspServlet.我們知道瀏覽器不能顯示動(dòng)態(tài)資源,因此JspServlet的作用就是將當(dāng)前訪問的jsp頁(yè)面轉(zhuǎn)換成靜態(tài)的html頁(yè)面,然后再響應(yīng)給瀏覽器。
(3)<session-timeout>30<session-timeout>
該標(biāo)簽是設(shè)置session的存活時(shí)間為30分鐘,session是一個(gè)會(huì)話,后面我們會(huì)學(xué)習(xí)它。
(4)<mime-mapping><extension>htm</extension><mime-type>text/html</mime-type></mime-mapping>
其中<extension>標(biāo)簽的內(nèi)容指的是響應(yīng)文件的后綴名,通過后綴名進(jìn)而知道它的mime類型,即<mime-type>標(biāo)簽的內(nèi)容。這是服務(wù)器告訴瀏覽器響應(yīng)回去的響應(yīng)內(nèi)容的mime類型。
(5)<welcome-file-list>
該標(biāo)簽的子標(biāo)簽中的內(nèi)容對(duì)應(yīng)的是歡迎頁(yè)。在應(yīng)用的web.xml中如果沒有對(duì)<welcome-file-list>進(jìn)行覆蓋,那么默認(rèn)主頁(yè)為index.html、index.html、index.jsp。





本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://xamj520.com/javaee
0 分享到:
和我們?cè)诰€交談!