一、web.xml的加载过程

在java web项目启动时,容器会读取配置文件web.xml,加载顺序与web.xml中内容的先后顺序无关。配置文件加载的先后顺序为:

<context-param>,②<listener>,③<filter>,④<servlet>.

1、web项目启动时,首先读取配置文件中的<listener>和<context-param>两个节点

  <context-param>元素包含web应用servlet上下文初始化参数的声明。

  <listener>元素用来注册一个监听器类。事件监听程序在①应用的启动和关闭;②session的创建与销毁,属性的新增、移除和更改;③对象被绑定到session中或从session中删除;时得到通知。

2、容器创建ServletContext,将<context-param>转化为键值对,并交给ServletContext

3、容器创建<listener>中的类实例

二、web.xml标签含义

web.xml的模式文件由Sun公司定义,在文件根元素<web-app>中须注明文件使用的哪个模式文件。

<display-name>:指定web应用程序显示的名字,这个名字可以通过GUI tools显示

<context-param>:包含web应用servlet上下文初始化参数的声明。listener、filter等在初始化时可以使用这些上下文信息。在servlet中可以通过getServletContext().getInitParameter("context/param")方法获取参数的值

 

<listener>:用来注册一个监听器类。事件监听程序在①应用的启动和关闭;②session的创建与销毁,属性的新增、移除和更改;③对象被绑定到session中或从session中 删除;时得到通知。

//TODO:三种listener

 

 <servlet>:声明一个Servlet数据。它的子元素:

ElementRequired/OptionalDescription
<icon>Optional指出IDE和GUI工具用来表示web应用的大图标和小图标
<servlet-name>Requiredservlet的标准名称,用于在部署描述块的其它地方
<display-name>OptionalGUI工具显示的简短名字
<description>Optionalservlet的描述
<servlet-class>Required(或<jsp-file>)servlet的完全限定类名
<jsp-file>Requiredjsp文件在web应用中相对于web应用根目录的完整路径
<init-param>Optional包含一个键值对作为servlet的初始化属性,<init-param>可以有多个
<load-on-startup>Optional服务器启动时,服务器初始化servlet的时间。当值为正数或0时,servlet容器先加载数值小的servlet;当值为负数或未定义时,servlet容器会在应用启动期间以任意次序加载(首次访问这个servlet时)

 

<servlet-mapping>:servlet和url的映射。子元素:

ElementRequired/OptionalDescription
<servlet-name>Required 
<url-pattern>Required 

 

<filter>:定义一个filter类及它的初始化属性。子元素:

ElementRequired/OptionalDescription
<icon>Optional 
<filter-name>Required 
<display-name>Optional 
<description>Optional 
<filter-class>Required 
<init-param>Optional 

<filter-mapping>:filter和url的映射。子元素:

ElementRequired/OptionalDescription
<filter-name>Required 
<url-pattern>Required - or map
by <servlet>
 
<servlet-name>Required - or map
by <url-pattern>
 

<session-config>:定义web应用的session属性。子元素:

ElementRequired/OptionalDescription
<session-timeout>
Optionalsession失效时间,单位为分钟

<welcome-file-list>:包含一个<welcome-file>的列表。当请求的url是一个目录名还不是文件名时,使用第一个<welcome-file>中的文件,若不存在,使用第二个<welcome-file>中的文件。子元素:

ElementRequired/OptionalDescription
<welcome-file>Optional

用做默认的welcome file的文件名,例如index.html

<jsp-config>


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐