web工程启动顺序

[toc]
昨天下午接到阿里java研发的电话面试,被问到了这个,说的不大清楚。其实就是自己本身也不是很清晰,所以回来学习整理了一下。
首先,肯定不是按照配置的先后顺序进行加载的。

整体加载顺序

启动一个web工程的时候,web容器会去读它的配置文件web.xml,根据web.xml的配置按顺序加载。也可以简单理解成就是web.xml文件配置内容的加载顺序。

  1. 首先就是读web.xml配置文件;
  2. 紧接着web容器会为这个工程创建一个servlet上下文ServletContext,就是那个被全局共享的域;
  3. 然后当然是要读入通过< context-param >配置的初始化参数,交给servletcontext,以备后面初始化filter和servlet使用;
  4. 容器创建< listener >中的类实例,创建监听器;
  5. 加载filter;
  6. 加载servlet;

想一下也不难想到,先行加载的都会后面加载可能要用到的,比如servletcontext中的初始化参数,再比如给一些或者全部servlet配的filter。

servlet的加载顺序

load-on-startup元素在web启动时决定了servlet加载的顺序。
我们可以把这个值配置成一个整数,一般就0-5。整数值越小,web容器就越先加载这个servlet,按顺序逐个加载。
如果把这个值配成0或正整数,web容器就会在启动时就加载这个servlet,如果没有配置,或者配成负整数,web容器要等到这个servlet第一次被调用时才加载它。
filter一般都是web容器启动时即加载的。

web.xml中常见的配置内容举例

1、web-app中的配置

discription 是对站台的描述
display-name 定义站台的名称
distributable 是指定该站台是否可分布式处理
context-param 用来设定web站台的环境参数,它包含两个子元素:
param-name用来指定参数的名称
param-value 用来设定参数值

2、filter


        setCharacterEncoding
        com.myTest.setCharacterEncodingFilter
        
            encoding
            GB2312
        



        setCharacterEncoding
        /*

3、servlet
类型filter的配置

4、首页,欢迎页面


    index.jsp
    index.html

5、用来处理http错误响应码和异常的页面


    404
    /error404.jsp


    java.lang.Exception
    /exception.jsp

在网上看了几篇博文,都是转载的,也没有出处,只能感谢原作者(们)了。

你可能感兴趣的:(校园招聘,java,web)