美文网首页
web.xml加载顺序和配置详解

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

作者: coderNeed | 来源:发表于2017-04-18 09:45 被阅读204次

    加载顺序

    在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.xml加载顺序和配置详解

          本文链接:https://www.haomeiwen.com/subject/clcfzttx.html