生命全过程:
* 加载:把.class load进去
* 实例化:new对象
* 初始化:调用init方法:init(ServletConfig config):传入web.xml里面的配置信息
* 处理请求:service():对于httpservlet调用doGet和doPost方法
* 退出服务: destroy()
* 只有一个servlet对象在提供服务
API中的过程:
* 开几次网页"constructor!"都只出现一次:
* Java EE的标准要求servlet只new一个,servlet对象只有一个,所有访问者用一个对象
* init方法也只执行一次,在第一次初始化的时候
* service():对于httpservlet调用doGet和doPost方法
* destroy():在webapp退出时调用即关闭tomcat时
* 所有只要webapp不停止servlet对象一直存在
测试代码:
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;
/**
* @author Leon
*/
public class TestLifeCycleServlet extends HttpServlet
{
@Override
public void destroy() {
System.out.println("destroy!");
}
@Override
public void init(ServletConfig config) throws ServletException
{//ServletConfig保存对象的配置信息(写在web.xml里面的那些)
System.out.println("init!");
}
public TestLifeCycleServlet()
{
System.out.println("constructor!");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
System.out.println("doGet!");
}
}