实例化-->初始化-->服务->销毁
出生:(实例化-->初始化)第一次访问Servlet就出生(默认情况下)
活着:(服务)应用活着,servlet就活着
死亡:(销毁)应用卸载了servlet就销毁。
下面提供两个测试文件:
demo1.java:
package com.lhp.cn;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class servletdemo1 implements Servlet{
//servlet生命周期的方法
//实例化
public servletdemo1(){
System.out.println("**********************servletdemo1执行******************8");
}
//servlet生命周期的方法
//初始化
public void init(ServletConfig arg0) throws ServletException {
// TODO Auto-generated method stub
System.out.println("**********************init执行******************8");
}
//服务
//servlet生命周期的方法
public void destroy() {
// TODO Auto-generated method stub
System.out.println("**********************destroy执行******************8");
}
//servlet生命周期的方法
//销毁
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("**********************service执行******************8"); }
//servlet生命周期的方法
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
}
web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<!-- 这个是要创建一个实例 -->
<servlet>
<servlet-name>Servletdemo1</servlet-name>
<servlet-class>com.lhp.cn.servletdemo1</servlet-class>
</servlet>
<!-- 给servlet提供一个客户端可以访问的映射 -->
<servlet-mapping>
<servlet-name>Servletdemo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
配置文件web.xml讲解:
测试:
在浏览器中首次输入地址http://localhost:8080/day08_servlet/demo1
MyEclipse控制台返回:
刷新地址:
多次刷新地址:
从上面可以得出:
servletdemo1这个方法实例化化对象,且只是首次实例化,后面不改变。
同理还有init()这个方法,也只是首次访问是实例化后面不改变。
而service()方法基本每次刷新都会在次被请求访问。
这里我们要测试destroy()这个方法,因为我们知道当应用被卸载时会被请求访问,
--进入Tomcat首页:
--根据提示信息修改配置文件:
--修改配置文件:
--登录应用管理:
--控制台显示结果: