web.xml加载顺序和配置详解

加载顺序

在web.xml文件中元素的加载顺序与它们在 web.xml 文件中的先后顺序无关。加载的顺序是:context-param->listener -> filter -> servlet
context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息。我们的 listener, filter 等在初始化时会用到这些上下文中的信息,然而对于某些配置节而言,它们出现的顺序是有先后关联的。以 filter 为例,web.xml 中可以定义多个 filter,与 filter 相关的一个配置节是 filter-mapping,这里一定要注意,对于拥有相同 filter-name 的 filter 和 filter-mapping 配置节而言,filter-mapping 必须出现在 filter 之后,否则当解析到 filter-mapping 时,它所对应的 filter-name 还未定义。web 容器启动时初始化每个 filter 时,是按照 filter 配置节出现的顺序来初始化的,当请求资源匹配多个 filter-mapping 时,filter 拦截资源是按照 filter-mapping 配置节出现的顺序来依次调用 doFilter() 方法的。servlet 同 filter 类似 ,此处不再赘述。而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。

web.xml常见配置详解

display-name

定义了WEB应用的名字

description

声明WEB应用的描述信息

context-param

元素声明应用范围内的初始化参数

filter

过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联

filter-mapping

一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联

listener

捕捉服务器的启动和停止,触发相应的方法

servlet

在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的

servlet-mapping

服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。在更改缺省URL时,使用servlet-mapping元素。

session-config

如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。 可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。

welcome-file-list

欢迎页

error-page

返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。

resource-ref

声明一个资源工厂使用的外部资源

你可能感兴趣的:(web)