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


相关文章
|
7月前
Servlet生命周期
Servlet生命周期
35 1
|
7月前
|
Java 数据库连接 容器
Servlet的生命周期
Servlet的生命周期
|
7月前
|
Java 数据库连接 容器
8:Servlet生命周期-Java Web
8:Servlet生命周期-Java Web
68 0
|
小程序 Java 应用服务中间件
【JavaWeb学习】—Servlet(十三)
【JavaWeb学习】—Servlet(十三)
|
3月前
|
Java 应用服务中间件 数据库连接
探索研究Servlet 生命周期
【9月更文挑战第22天】
56 7
|
5月前
|
Java 数据库连接 开发者
Java中的Servlet生命周期详解
Java中的Servlet生命周期详解
|
6月前
|
前端开发 应用服务中间件
servlet执行流程&生命周期
servlet执行流程&生命周期
|
6月前
Servlet的生命周期
Servlet的生命周期
|
6月前
|
Java
servlet生命周期面试题
servlet生命周期面试题
|
6月前
|
API
servlet研究学习总结--OutputStream和PrintWriter的区别
servlet研究学习总结--OutputStream和PrintWriter的区别
246 1