Servlet生命周期

Servlet生命周期

  1. 浏览器根据地址发起调用,tomcat容器在接收到请求之后,会根据地址栏上的地址进行数据解析,会找到具体的工程,然后再定位到工程下面具体的资源。
  2. 定位到资源后,首先会创建当前servlet类的实例,所以调用的是无参构造方法。
  3. 会执行初始化init方法,初始化servlet上下文配置对象ServletConfig
  4. 执行service方法,service方法用来执行请求的分发处理
  5. 当容器关闭的时候,会执行销毁destroy方法

自定义后端资源MyServlet类

首先要在浏览器端能够访问到后端的动态资源,那么必须对该资源在web.xml中资源注册,并配置资源路径。

<!--资源注册-->
    <servlet>
        <!--资源名,可以随意取-->
        <servlet-name>MyServlet</servlet-name>
        <!--资源全类名-->
        <servlet-class>com.zc.servlet.MyServlet</servlet-class>
    </servlet>
    <!--资源路径的配置-->
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <!--资源路径 是浏览器访问资源时需加的路径-->
        <url-pattern>/myServlet</url-pattern>
    </servlet-mapping>

MyServlet必须实现Servlet接口或者继承Servlet实例,然后重写其中的方法。

import javax.servlet.*;
import java.io.IOException;

public class MyServlet implements Servlet {

    public MyServlet()
    {
        System.out.println("servlet生命周期:1、创建Servlet实例,无参构造方法执行");
    }
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("servlet生命周期:2、初始化init方法执行 初始化servlet上下文配置对象ServletConfig");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("servlet生命周期:3、service方法执行了,用来执行请求的分发处理");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

        System.out.println("servlet生命周期:4、destroy方法执行 销毁当前Servlet");

    }
}

运行Tomcat服务器,然后在浏览器中访问此资源,可以在后端控制台中明显查看到Servlet生命周期

关闭Tomcat服务器,还可以在控制台中看到资源销毁。

posted @ 2021-07-29 17:14  ins1mnia  阅读(36)  评论(0编辑  收藏  举报