一.Servlet被访问过程描述
- 用户第一次访问Servlet时,服务器创建Servlet实例(单例)
- 创建实例的同时调用init()进行Servlet的初始化
- 接收请求后创建新线程访问Servlet的service()
- 依据请求的不同调用不同的doXxx方法(这里指doGet和doPost)
- 当Servlet被从服务器中移除Or关闭服务器,Servlet实例被销毁,同时destroy()执行
二.生命周期代码演示
1.创建life.ServletLife.java
package life;
import javax.servlet.*;
import java.io.IOException;
/**
* @Author weihuanwen
* @Date 2019/7/21 11:49
* @Version 1.0
*/
public class ServletLife implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("Servlet初始化!");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("service方法开始执行!--->处理请求....");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("Servlet销毁!");
}
}
2.前端页面如下:
<%--
Created by IntelliJ IDEA.
User: WHW
Date: 2019/7/21
Time: 10:30
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<fieldset>
<button><a href="http://localhost:8080/life">doGet</a></button>
</fieldset>
</body>
</html>
3.配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>sl</servlet-name>
<servlet-class>life.ServletLife</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sl</servlet-name>
<url-pattern>/life</url-pattern>
</servlet-mapping>
</web-app>
三.执行测试
1.点击按钮
2.关闭工程
3.观察控制台输出