servlet生命周期

 同人的生老病死,servlet也有生命周期,其收到web容器的控制,其生命周期包括 加载程序,初始化、服务、销毁、卸载5个部分,如下图所示;



代码验证:

自定义LifeCycleServlet继承HttpServlet,覆写其生命周期相应方法

package helloservlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LifeCycleServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = -1922315362237286875L;

	@Override
	public void init() throws ServletException {
		System.out.println("** 1、Servlet初始化 --> init()");
	}

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		System.out.println("** 2、Servlet服务 --> doGet()、doPost()");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		this.doPost(req, resp);
	}

	@Override
	public void destroy() {
		System.out.println("** 3、Servlet销毁 --> destory()");
		try {
			Thread.sleep(30000);
		} catch (Exception e) {
		}
	}

}
在web.xml中配置:

	<servlet>
		<servlet-name>life</servlet-name>
		<servlet-class>helloservlet.LifeCycleServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>life</servlet-name>
		<url-pattern>/LifeServlet</url-pattern>
	</servlet-mapping>

运行观察:



容器tomcat关掉,调用destory( )方法


如果在配置文件中加入:

<load-on-startup>1</load-on-startup>

配置:

	<servlet>
		<servlet-name>life</servlet-name>
		<servlet-class>helloservlet.LifeCycleServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>life</servlet-name>
		<url-pattern>/LifeServlet</url-pattern>
	</servlet-mapping>

容器tomcat启动时就会自动为sevlet初始化:




实际应用时,不会覆写生命周期的全部方法,依需求,需要哪个覆写哪个,doGet(),doPost()使用几率最高,主要覆写这两个


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值