Servlet学习(二):详述servlet的生命周期并动手试验

简介: Servlet学习(二):详述servlet的生命周期并动手试验

servlet生命周期主要分为四个部分:


1、执行servlet构造器方法(第一次访问servlet程序会调用)


public Hello() {
        System.out.println("1 构造器方法");
    }


2、执行init初始化方法(第一次访问servlet程序会调用)

@Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("2 init初始化");
    }


3、执行service方法(每次访问会调用)

 @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("3 hello world");
    }


4、执行destroy方法(web工程停止的时候调用)

 @Override
    public void destroy() {
        System.out.println("4 destroy销毁方法");
    }


完整代码:

package demo01;
import javax.servlet.*;
import java.io.IOException;
public class Hello implements Servlet {
    public Hello() {
        System.out.println("1 构造器方法");
    }
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("2 init初始化");
    }
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
    /**
     * service方法专门用来处理请求和响应
     * @param servletRequest
     * @param servletResponse
     * @throws ServletException
     * @throws IOException
     */
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("3 hello world");
    }
    @Override
    public String getServletInfo() {
        return null;
    }
    @Override
    public void destroy() {
        System.out.println("4 destroy销毁方法");
    }
}


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标签给tomcat配置servlet程序 -->
    <servlet>
        <!-- servlet-name标签,给servlet程序起一个别名(一般是类名) -->
        <servlet-name>Hello</servlet-name>
        <!-- servlet-class是servlet程序的全类名 -->
        <servlet-class>demo01.Hello</servlet-class>
    </servlet>>
    <!--  servlet-mapping标签给servlet程序配置访问地址  -->
    <servlet-mapping>
        <!--   servlet-name 告诉服务器当前配置的地址给哪个servlet程序使用    -->
        <servlet-name>Hello</servlet-name>
        <!--   url-pattern标签配置访问地址  <br/>
                / 表示地址为http://ip:port/工程路径  <br/>
                /hello 表示地址为http://ip:port/工程路径/hello
            -->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>


运行后,在浏览器输入/hello

20210723134444310.png

控制台输出结果:

20210723134532749.png


结束项目后,控制台输出结果:

20210723134613803.png


相关文章
|
16天前
Servlet生命周期
Servlet生命周期
11 1
|
28天前
|
Java 数据库连接 容器
Servlet的生命周期
Servlet的生命周期
13 0
|
4月前
|
Java 数据库连接 容器
8:Servlet生命周期-Java Web
8:Servlet生命周期-Java Web
26 0
|
4月前
|
小程序 Java 应用服务中间件
【JavaWeb学习】—Servlet(十三)
【JavaWeb学习】—Servlet(十三)
|
4天前
|
Java 容器
Servlet 教程 之 Servlet 生命周期 6
Servlet生命周期包括:初始化(调用`init()`)、处理请求(通过`service()`)、销毁(调用`destroy()`),最终由JVM垃圾回收。当首个请求到达时,容器加载Servlet,后续请求多线程共享同一实例,每次请求调用`service()`。
11 6
|
4天前
|
Java
Servlet 教程 之 Servlet 生命周期 3
Servlet生命周期包括初始化(init())、服务(service())和销毁(destroy())三个阶段。doGet()方法处理GET请求,接收HttpServletRequest和HttpServletResponse参数。当Servlet不再使用时,由JVM的垃圾回收器自动清理。
15 5
|
7月前
|
Java 应用服务中间件 数据库连接
Servlet生命周期
Servlet生命周期
46 0
|
8月前
|
应用服务中间件 容器
Servlet 生命周期
Servlet 生命周期
46 0
|
4月前
|
Java 应用服务中间件 容器
Servlet简介、执行流程及生命周期
Servlet简介、执行流程及生命周期
35 1
|
4月前
Servlet生命周期
Servlet生命周期
24 0