Java Web应用的生命周期
淘宝面试的时候问过我关于Servlet生命周期的问题,当时支支吾吾的没答上来。今天看看到一本书上讲的挺详细的,顺便记录下来。好记性不如烂笔头啊。
Java Web应用的生命周期是由Servlet容器来控制的,归纳起来包含3个阶段:
启动阶段:(1)Servlet容器加载web.xml文件中的数据到内存;
(2)为应用创建一个ServletContext对象
(3)对Filter进行初始化
(4)对需要在应用启动阶段就被初始化的Servlet进行初始化。Servlet的初始化包含四个阶段:a、Servlet容器加载Servlet类,将其class文件数据读入内存;b、创建ServletConfig对象,其包含特定Servlet的初始化配置信息;c、创建Servlet对象;d、调用Servlet对象的init方法初始化
运行阶段:在这个阶段,所有的Servlet处于待命状态,随时响应客户端的请求,提供相应服务。假如客户端请求的Servlet还不存在,Servlet容器会先初始化Servlet,然后再调用其service()方法。
终止阶段:(1)销毁所有运行时状态的Servlet
(2)销毁运行时状态的Filter
(3)销毁应用相关对象,如ServletContext对象等,释放相关资源。