Servlet之生命周期

以下从Servlet的接口中定义的三个方法来看,一个servlet的生命周期。

/**
 *
 *<ol>
 * <li>The servlet is constructed, then initialized with the <code>init</code> method.
 * <li>Any calls from clients to the <code>service</code> method are handled.
 * <li>The servlet is taken out of service, then destroyed with the 
 * <code>destroy</code> method, then garbage collected and finalized.
 * </ol>
 *生命周期就是上面这句话:大意就是servlet被创建,然后通过init方法进行初始化,service方法会处理客户端的请求,destroyed方法进行销毁操作,GC进行回收。

*/
public interface Servlet {
    /**
    * init方法,只有在被创建Servlet的时候调用一次进行初始化,之后不会再被调用,当然也可以通过servlet容器在启动时进行初始化加载。
    *并且这个初始化方法必须在接收到任何的请求调用service方法之前执行成功,否则抛出异常
    *
    */
    public void init(ServletConfig config) throws ServletException;

    //这是用来获取此servlet的初始化信息和参数。
    public ServletConfig getServletConfig();

    //service方法它必须在init方法成功完成之后,然后处理客户端的请求request,并返回服务端响应response。
    /*
     *<p>Servlets typically run inside multithreaded servlet containers
     * that can handle multiple requests concurrently. Developers must 
     * be aware to synchronize access to any shared resources such as files,
     * network connections, and as well as the servlet's class and instance 
     * variables.
     * 此句大意: 运行在多线程的servlet容器中的Servlets同时可以处理多个请求,但是要注意确保同步处理一些共享资源如变量等。 
    */
    public void service(ServletRequest req, ServletResponse res)
    throws ServletException, IOException;

    // Returns information about the servlet, such as author, version, and copyright.返回一些servlet的信息,比如作者 版本之类,
    public String getServletInfo();
    /*
    *当生命周期结束时被调用一次,可以在此方法中进行相关清理工作如:关闭资源
    *等,然后等待GC回收。
    */
    public void destroy();
}

请求到达servlet容器,容器找到相应的servlet,一个请求一个线程去调service()方法,在此之前先加载servlet进行初始化,初始化init()方法只调用一次。就此看,servlet是一个单例的。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值