java小程序生命周期_javaweb(2.0)servlet的生命周期

讲到servlet,我认为servlet的生命周期是一个逃不开的话题。何谓生命周期?就是一个servlet从被创建到用完被销毁(web容器停止,从web容器中被移除)中间经历的过程期间会执行这样四种方法:

1.init():初始化

2.service():转发请求

3.doGet()/ doPost()等:执行业务逻辑

4.destroy():web容器停止之后清理现场

init()方法:

该方法用于初始化servlet,于servlet第一次被调用时执行,目的是将我们的web.xml配置文件即部署描述文件封装一个ServletConfig对象传递给servlet,并通过ServletConfig对象得到某些初始化参数。该方法只会在web容器启动时执行一次。

service()方法:

该方法在用户调用servlet之后,执行业务逻辑之前执行,目的是判断用户的请求方式(get/post)并将不同的请求转发给不同的方法处理

doGet()/doPost()/doDelete()/doPut()等方法是用来处理业务逻辑的,在这些方法内我们可以接收客户端传来的参数并且可以给客户端返回参数,还可以连接数据库等等。至于以上四种请求类型,我们常用的无非是Get和Post请求,在收到用户请求之后,service()方法先对请求方式进行判断然后再将请求转发给本组方法中的其中一个。

destroy()方法主要用于web容器停止之后,清理内存,释放垃圾用,该方法也只会在web容器关闭时执行一次。

下面来实战,写一个servlet分别重写init()的无参构造函数,service()以及destroy()方法,并在下面打印一句话:

public class TestServlet extends HttpServlet {

private static final long serialVersionUID = -3630074342607221298L;

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

System.out.println("进入doGet");

super.doGet(req, resp);

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

System.out.println("进入doPost");

super.doPost(req, resp);

}

@Override

public void init() throws ServletException {

System.out.println("进入init方法");

}

@Override

protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {

System.out.println("进入service方法");

}

@Override

public void destroy() {

System.out.println("进入destroy方法");

}

}

我们启动之后来调用Get请求试试:

091ecc08-cb88-4ceb-8f52-38eb840d1f1f.png

第一次调用你会发现执行了init sevice和doGet三个方法,

刷新一次:

30445297-e0f2-4903-a8b6-808edcaf846b.png

本次只有service和doGet两个方法被调用

那么如果停止运行(不可以点控制台右边的红色按钮,必须找到server,然后右键点击stop),stop之后,我们可以在控制台中发现destroy被调用的痕迹:

8c062dd1-9e5f-44ca-9802-9d032d6852e4.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值