Sevlet的生命周期

Sevlet的生命周期


引入

Servlet的生命周期: servlet类对象什么时候创建,什么时候调用什么方法,什么时候销毁。
以前的对象: new Student(); stu.study(); stu=null;
Servlet程序的生命周期由tomcat服务器控制的!!!!


Servlet重要的四个生命周期方法

构造方法: 创建servlet对象的时候调用。默认情况下,第一次访问servlet的时候创建servlet对象 只调用1次。证明servlet对象在tomcat是单实例的。
init方法: 创建完servlet对象的时候调用。只调用1次。
service方法: 每次发出请求时调用。调用n次。
destroy方法: 销毁servlet对象的时候调用。停止服务器或者重新部署web应用时销毁servlet对象。只调用1次。

LifeDome.java

package day0228;

import java.io.IOException;

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

public class LifeDemo extends HttpServlet {
	/*
	 * 1.构造方法
	 */
	public LifeDemo() {
		System.out.println("1.Servlet对象被创建了。");
	}
	
	/*
	 * 2.init方法
	 * (non-Javadoc)
	 * @see javax.servlet.GenericServlet#init(javax.servlet.ServletConfig)
	 */
	@Override
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
//		super.init(config);
		System.out.println("2.init方法被调用");
	}
	
	/*
	 * 3.service方法
	 * (non-Javadoc)
	 * @see javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	 */
	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
//		super.service(arg0, arg1);
		System.out.println("3.service方法被调用");
	}
	
	/*
	 * 4.destory方法
	 * (non-Javadoc)
	 * @see javax.servlet.GenericServlet#destroy()
	 */
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
//		super.destroy();
		System.out.println("4.destory对象被销毁了");
	}

	
}

配置web.xml

<!-- 配置一个servlet -->
  <!-- servlet的配置 -->
  <servlet>
  	<!-- servlet的内部名称,自定义,尽量有意义 -->
  	<servlet-name>LifeDemo</servlet-name>
  	<!-- servlet的类全名:包名+简单类名  *.java-Copy Qualifild Name -->
  	<servlet-class>day0228.LifeDemo</servlet-class>
  </servlet>
  
  <!-- servler的映射配置 -->
  <servlet-mapping>
  	<!-- servlet的内部名称,和上面一致!! -->
  	<servlet-name>LifeDemo</servlet-name>
  	<!-- servlet的映射路径(访问servlet的名称) -->
  	<url-pattern>/first</url-pattern>
  </servlet-mapping>

第一次访问
1.Servlet对象被创建了。
2.init方法被调用
3.service方法被调用

在这里插入图片描述


第二次访问之后不再创建Servlet对象,init方法也不再调用
对象和初始化只调用一次

在这里插入图片描述


destroy方法
重新部署(回收内存)时调用,或者关闭服务器(回收内存)时调用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值