Java web Servlet的生命周期

本文详细解读Servlet的生命周期过程,包括类加载、实例化、服务请求和销毁四个阶段,并介绍了关键方法如init(), service(), 和 destroy() 的作用。理解这些步骤有助于优化Web应用的性能和资源管理。
摘要由CSDN通过智能技术生成

/*
Servlet的生命周期
1.Servlet没有main()方法,不能独立运行,它的运行完全由Servlet引擎来控制和调度。所谓生命周期,指的是servlet容器何时创建servlet实例、何时调用其方法进行请求的处理、何时并销毁其实例的整个过程。
2.实例和初始化时机
当请求到达容器时,容器查找该servlet对象是否存在,如果不存在,则会创建实例并进行初始化
3.就绪/调用/服务阶段
有请求到达容器,容器调用servlet对象的service()方法,处理请求的方法在整个生命周期中可以被多次调用 HttpServlet的service()方法,会依据请求方式来调用doGet()或者doPost()方法。但是,这两个do方法默认情况下,会抛出异常,需要子类去override。
4.销毁时机
当容器关闭时(应用程序停止时),会将程序中的Servlet实例进行销毁
上述的生命周期可以通过Servlet中的生命周期方法来观察。在Servlet中有三个生命周期方法,不由用户手动调用,而是在特定的时机有容器自动调用,观察这三个生命周期方法即可观察到Servlet的生命周期。
5.init方法,在Servlet实例创建之后执行(证明该Servlet有实例创建了)
6.service方法,每次有请求到达某个Servlet方法时执行,用来处理请求(证明该Servlet进行服务了)
7.destroy方法,Servlet实例销毁时执行(证明该Servlet的实例被销毁了)
*/
/*
Servlet的生命周期,简单的概括这就分为四步 servlet类加载-->实例化-->服务-->销毁。
1.Web Client 向Servlet容器(Tomcat)发出Http 请求
2.Servlet容器接收WebClient的请求
3.Servlet容器创建一个HttpServletRequest对象,将WebClient请求的信息封装到这个对象中
4.Servlet容器创建一个HttpServletResponse对象
5.Servlet容器调HttpServlet对象service方法,把Request与Response作为参数,传给HttpServlet
6.HttpServlet调用HttpServletRequest对象的有关方法,获取Http请求信息
7.HttpServlet调用HttpServletResponse对象的有关方法,生成响应数据
8.Servlet 容器把HttpServlet的响应结果传给Web Client
*/

package com.xxxx.serlet;

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

@WebServlet("/ser05")
public class servlet extends HttpServlet {
    /*
就绪/服务方法(处理请求数据)
系统方法,服务器自动调用
当有请求到达Servlet时,就会调用该方法
方法可以被客次调用
@param req
@param resp
@throws ServletException
@throws IOException
*/

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("servlet被调用了...");
    }
  /*
销毁方法
1.系统方法,服务器自动调用
2.当服务器关闭成应用程序停止时,调用该方法
3.方法只会执行一次
  */

    @Override
    public void destroy() {
        System.out.println("servlet被销毁了...");
    }
/*
初始化方法
系统方法,服务器自动调用
当情求到达Servlet容器时,Servlet容器会网断该Servlet对象是否存在,如果不存在,则创理实例并初始化
方法只会执行一次
@throws ServletException
*/

    @Override
    public void init() throws ServletException {
        super.init();
        System.out.println("servlet被创建了..." );
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒菡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值