Servlet的生命周期:
- 执行Servlet构造器方法
- 执行init初始化方法
- 执行service方法
- 执行destroy方法
说明:
- 1、2 步是在第一次访问时,创建Servlet程序调用的
- 第3步,执行service是每次访问都会调用
- 第4步,执行destroy是在web工程停止的时候调用
测试代码:
package Servlet;
import javax.servlet.*;
import java.io.IOException;
public class Servlet01 implements Servlet {
public Servlet01(){
System.out.println("1. 执行构造器方法");
}
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("2. 执行init初始化方法");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("3. 执行service方法");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("执行 destroy方法");
}
}
当访问服务器时,会在控制台打印输入如下
当关闭web工程时,执行destroy销毁方法
补充:url地址到Servlet程序访问的过程
例如:在浏览器输入:http://localhost:8080/Servlet/s1
其中:
- locathost是服务器ip → 通过ip地址定位服务器
- 8080是服务器端口号 → 通过端口号,定位Tomcat
- Servlet是工程路径,通过工程路径 → 通过工程路径确定访问那个工程
- /s1是 资源路径 → 通过资源路径找到web.xml中配置的访问地址(<url-pattern>/s1</url-pattern>) 通过访问地址找到Servlet程序 (<servlet-name>Servlet01</servlet-name>) → 找到servlet的别名(<servlet-name>Servlet01</servlet-name>) → 通过别名找到全类名,全类名定位到类名,最后执行代码