标签:
servlet生命周期分为三个阶段:
加载并实例化
servlet容器负责加载和实例化servelt。当servlet容器启动时,或者在容器检测到需要这个servlet来响应第一个请求时,创建servlet实例。当servlet容器启动后,servlet通过类加载器来加载servlet类,加载完成后再new一个servlet对象来完成实例化。
初始化
在servlet实例化之后,容器将调用init()方法,并传递实现servletconfig接口的对象。在init()方法中,servlet可以部署描述符中读取配置参数,或者执行任何其他一次性活动。在servlet的整个生命周期类,init()方法只被调用一次。
请求处理
当servlet初始化后,容器就可以准备处理客户机请求了。当容器收到对这一servlet的请求,就调用servlet的service()方法,并把请求和响应对象作为参数传递。当并行的请求到来时,多个service()方法能够同时运行在独立的线程中。通过分析servletrequest或者httpservletrequest对象,service()方法处理用户的请求,并调用servletresponse或者httpservletresponse对象来响应。
销毁
一旦servlet容器检测到一个servlet要被卸载,这可能是因为要回收资源或者因为它正在被关闭,容器会在所有servlet的service()线程之后,调用servlet的destroy()方法。然后,servlet就可以进行无用存储单元收集清理。这样servlet对象就被销毁了。这四个阶段共同决定了servlet的生命周期。
二、jsp生命周期
jsp页必须转换成servlet,才能对请求进行服务,因此jsp的底层完全是servlet。这样看来jsp的生命周期就包括六个阶段:转换、编译、加载并实例化、jspinit()调用(即初始化)、_jspservice()调用(即请求处理)、jspdestroy()调用(即销毁)。
标签:
原文地址:http://www.cnblogs.com/wxgblogs/p/5740982.html