Servlet生命周期

Servlet的生命周期
Servlet的处理过程:

  1. 输入URL后,回车,向server发请
  2. 解析URL地址,获取/web应用名称,定位web.xml
  3. 解析URL地址,获取/url-pattern,定位中的
  4. 匹配到对应的中的
  5. 匹配到对应的中的
  6. 定位到中的
  7. server检测当前内存中是否存在当前类的对象
    不存在-使用反射,创建当前类的对象
    存在-直接使用获取的对象
    8 .调用service方法,处理客户端请求,最后把结果响应client。

生命周期方法:
阶段 调用方法 调用时间 调用次数
实例化 构造方法 第1请求 1
初始化 init 第1请求 1
服务 service 有请求即调用 N
销毁 destroy 停服务 1

  • init(ServletConfig config); //在初始化Servlet对象的时候会调用
    • 只有servlet程序第一次被访问的时候才会调用
    • 一个Servlet类tomcat只会创建一个Servlet对象
  • service(); //servlet对外提供服务时执行的代码
    • 每次访问都会执行一次
  • destroy(); //Servlet对象被销毁的时候调用,tomcat关闭

注意:

1. 当用户第1次访问时被创建,并调用service方法
2. 当第2次请求到达时不创建新对象,继续调用已存在对象的service方法
3. 当应用停止服务器或tomcat关闭时对象被销毁
使用以下代码,验证servlet的各个阶段:

public class CycleServlet extends HttpServlet {
    // 构造
    public CycleServlet() {
        System.out.println("----------in CycleServlet------------");
    }
    // 初始化
    public void init() {
        System.out.println("----------in init------------");
    }
    // service
    public void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("----------in service------------");
    }
    // destroy
    public void destroy() {
        System.out.println("----------in destroy------------");
    }
}

特殊情况:

<servlet>
                <servlet-name>......</servlet-name>
                <servlet-class>......</servlet-class>
                <load-on-startup>1</load-on-startup>
            </servlet>
  • load-on-startup:代表该serlvet在tomcat启动时就实例化和初始化。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值