(3)通俗易懂的servlet生命周期

简单来说:就是Servlet类在你的tomcat中什么时候被创建,什么时候被销毁

官方解说:

serlvet在tomcat中 是单例存在的, 只会创建一个对象 , 这个对象的生命周期, 存在三个Java方法的体现:

1.  init        :   当Servlet初始化完毕时, 自动执行 ! 默认情况下, 当用户第一次访问此Servlet时,  对象被创建, 后续访问重复利用此对象 !一般我们在这里进行一些资源的初始化操作 !

2.  service     :   当用户请求时,  此方法自动执行!     此方法每次执行 都在一个新的线程中 . 

3.  destroy     :   当Servlet即将销毁时 , 自动执行 !当服务器被关闭时 或 应用被卸载时,  会销毁此对象 !一般用于释放一些资源

证明:

servlset2.java代码

package cn.xdl.demo;

import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Servlet2
 */
@WebServlet("/s3.1" )
public class Servlet2 extends HttpServlet {
    
 
    public void init(ServletConfig config) throws ServletException {
        System.out.println("servlet正在初始化!");
        
        
    }

    /**
     * @see Servlet#destroy()
     */
    public void destroy() {
               System.out.println("servlet即将销毁!");
    }

    /**

     */
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                  System.out.println("servle正在服务!");
                  response.getWriter().append("request Ok");
                  
                  
    }

}

当我分别用不同的浏览器运行这个servlet2.java时,就会出现以下页面

初始化只会进行一次,之后会重复利用上面的初始化,印证上面官方所说的,初始化只会运行一次,之后会重复利用。

解释为什么要分别打开两个浏览器?

原因在于:分别打开两个浏览器,相当于换了个客户端,换了两台电脑

再次点击server,右键单击Tomcat服务器,点击停止(红色按钮),会出现以下页面

 说明销毁也不是立马进行销毁的,按住停止键,就会调用方法destory(),进行销毁。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值