全国咨询/投诉热线:400-618-4000

web.xml配置详解

更新时间:2016年04月26日16时33分 来源:传智播客Java培训学院 浏览次数:

web.xml文件我们都不陌生,每一个web应用中都会有一个web.xml文件。在Tomcat安装目录下的conf目录也有web.xml文件,而今天我们分析的web.xml正是Tomcat的web.xml。
我们知道,每一个web应用最终是被发布到Tomcat的webappes目录下,Tomcat是它们的运行环境。可以理解为Tomcat的web.xml文件是每一个web应用的web.xml的父文件,Tomcat将每个应用的公共配置提取出来放在conf目录下的web.xml中,每个应用的个性配置放在自己的web.xml文件中。如图1-1所示:

图1-1 web.xml关系图
下面我们结合web.xml文件的内容,来分析它的配置的作用,web.xml文件主要内容如例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>
对以上内容进行分析,如下:
(1)<servlet-name>default</servlet-name>
对应一个类名为DefaultServlet的Servlet,我们看这个servlet对应的<servlet-mapping>中的映射路径是“/”,匹配所有路径。优先级最低,当用户访问的url没有匹配的Servlet或页面时,访问DefaultServlet ,它会响应给客户端一个404状态码。
(2)<servlet-name>jsp</servlet –name>
对应一个类名为JspServlet的Servlet,该Servlet的映射路径是“*.jsp”、“*.jspx”。即当用户请求的资源是一个jsp页面等时,访问的是JspServlet.我们知道浏览器不能显示动态资源,因此JspServlet的作用就是将当前访问的jsp页面转换成静态的html页面,然后再响应给浏览器。
(3)<session-timeout>30<session-timeout>
该标签是设置session的存活时间为30分钟,session是一个会话,后面我们会学习它。
(4)<mime-mapping><extension>htm</extension><mime-type>text/html</mime-type></mime-mapping>
其中<extension>标签的内容指的是响应文件的后缀名,通过后缀名进而知道它的mime类型,即<mime-type>标签的内容。这是服务器告诉浏览器响应回去的响应内容的mime类型。
(5)<welcome-file-list>
该标签的子标签中的内容对应的是欢迎页。在应用的web.xml中如果没有对<welcome-file-list>进行覆盖,那么默认主页为index.html、index.html、index.jsp。





本文版权归传智播客Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Java培训学院
首发:http://www.itcast.cn/javaee

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额