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

全國咨詢/投訴熱線:400-618-4000

web.xml配置詳解

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

web.xml文件我們都不陌生,每一個web應(yīng)用中都會有一個web.xml文件。在Tomcat安裝目錄下的conf目錄也有web.xml文件,而今天我們分析的web.xml正是Tomcat的web.xml。
我們知道,每一個web應(yīng)用最終是被發(fā)布到Tomcat的webappes目錄下,Tomcat是它們的運(yùn)行環(huán)境。可以理解為Tomcat的web.xml文件是每一個web應(yīng)用的web.xml的父文件,Tomcat將每個應(yīng)用的公共配置提取出來放在conf目錄下的web.xml中,每個應(yīng)用的個性配置放在自己的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>
對以上內(nèi)容進(jìn)行分析,如下:
(1)<servlet-name>default</servlet-name>
對應(yīng)一個類名為DefaultServlet的Servlet,我們看這個servlet對應(yīng)的<servlet-mapping>中的映射路徑是“/”,匹配所有路徑。優(yōu)先級最低,當(dāng)用戶訪問的url沒有匹配的Servlet或頁面時,訪問DefaultServlet ,它會響應(yīng)給客戶端一個404狀態(tài)碼。
(2)<servlet-name>jsp</servlet –name>
對應(yīng)一個類名為JspServlet的Servlet,該Servlet的映射路徑是“*.jsp”、“*.jspx”。即當(dāng)用戶請求的資源是一個jsp頁面等時,訪問的是JspServlet.我們知道瀏覽器不能顯示動態(tài)資源,因此JspServlet的作用就是將當(dāng)前訪問的jsp頁面轉(zhuǎn)換成靜態(tài)的html頁面,然后再響應(yīng)給瀏覽器。
(3)<session-timeout>30<session-timeout>
該標(biāo)簽是設(shè)置session的存活時間為30分鐘,session是一個會話,后面我們會學(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)容對應(yīng)的是歡迎頁。在應(yīng)用的web.xml中如果沒有對<welcome-file-list>進(jìn)行覆蓋,那么默認(rèn)主頁為index.html、index.html、index.jsp。





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