【web开发学习笔记】Servlet生存周期

    Servlet引擎解析并载入一个Servlet -> 这个过程可以发生在引擎启动时,需要一个Servlet去响应请求时,以及在此之间的任何时候
    Servlet引擎利用Java类载入工具载入一个Servlet,Servlet引擎可以从一个本地的文件系统、一个远程的文件系统以及网络载入 Servlet。
--------------->
    Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、初始化JDBC的
连接以及建立与其他资源的连接。在初始化过程中,javax.servlet.Servlet接口的init()方法提供了Servlet的初始化信息 -> Servlet
可以对自己进行配置。
    init()方法获得了一个Servlet配置对象(ServletConfig)。这个对象在Servlet引擎中执行,并允许Servlet通过它获相关参数。
    这个对象使得Servlet能够访问ServletContext对象。
    void init(ServletConfig config)throws ServletException
servlet 容器仅在实例化 servlet 之后调用 init 方法一次。在 servlet 可以接收任何请求之前,init 方法必须成功完成。 
    public ServletConfig getServletConfig()
返回 ServletConfig 对象,该对象包含此 servlet 的初始化和启动参数。返回的 ServletConfig 对象是传递给 init 方法的对象。 
--------------->
    Servlet被初始化之后,它已经可以处理来自客户端的请求,每一个来自客户端的请求都被描述成一个ServletRequest对象,Servlet
的响应被描述成一个ServletResponse对象。->ServletRequest -> 定义将客户端请求信息提供给某个 servlet 的对象。servlet 容器创建
ServletRequest 对象,并将该对象作为参数传递给该 servlet 的 service 方法。
    当客户端发出请求时,Servlet引擎传递给Servlet一个ServletRequest对象和一个ServletResponse对象,这两个对象作为参数传递到
service()方法中。
    public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException
由 servlet 容器调用,以允许 servlet 响应某个请求。
    Servlet 也可以执行ServletRequest接口和ServletResponse接口。ServletRequest接口使得Servlet有权使用客户端发出的请求。Servlet
可以通过ServletInputStream对象读取请求信息。
    ServletResponse接口允许Servlet建立响应头和状态代码。通过执行这个接口,Servlet有权使用 ServletOutputStream类来向客户端
返回数据。
-------------->
    Servlet引擎并不必需保证一个Servlet在任何时候或在服务开启的任何时候都被载入。Servlet引擎可以自由的在任何时候使用或清除一个 
Servlet。因此,我们不能依赖一个类或实例来存储重要的信息。
    当Servlet引擎决定卸载一个Servlet时(例如,如果这个引擎被关闭或者需要让资源),这个引擎必须允许Servlet释放正在使用的资源并
存储有关资料。为了完成以上工作,引擎会调用Servlet的destroy()方法。 
    在卸载一个Servlet之前,Servlet引擎必须等待所有的service()方法完成或超时结束(Servlet引擎会对超时作出定义)。当一个 Servlet
被卸载时,引擎将不能给Servlet发送任何请求。引擎必须释放Servlet并完成无用存储单元的收集
    public void destroy()
    由servlet 容器调用,指示将从服务中取出该 servlet。此方法仅在 servlet 的 service 方法已退出或者在过了超时期之后调用一次。在
调用此方法之后,servlet 容器不会再对此 servlet 调用 service 方法。 
    此方法为 servlet 提供了一个清除持有的所有资源(比如内存、文件句柄和线程)的机会,并确保任何持久状态都与内存中该 servlet 的
当前状态保持同步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值