Servlet生命周期详解和Servlet3.0注解配置

Servlet生命周期详解

  Servlet中的生命周期方法:

    1.被创建:执行int方法,只执行一次

      Servlet什么时候被创建?

        默认情况下,第一次被访问时,Servlet被创建

          在<servlet>标签下配置

            1.第一次被访问时,创建

              <load-on-startup>的值是负数

            2.在服务器启动时,创建

              <load-on-startup>的值为0或正整数

            Servlet的int方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的

            多个用户同时访问时,可能存在线程安全问题

            解决:进来不要在Servlet中定义成员变量。即使定义了成员变量,也不要对修改值

    2.提供服务:执行service方法,执行多次

      每次访问Servlet时,Service方法都会被调用一次。

    3.被销毁:执行destroy方法,只执行一次

      Servlet被销毁时执行。服务器关闭时,Servlet被销毁

      只有服务器正常关闭时,才会执行destroy方法。

      destroy方法在Servlet被销毁之前执行,一般用于释放资源

Servlet3.0注解配置

  步骤:

    创建javaEE项目,选择Servlet的版本3.0以上的,可以不创建web.xml

    定义一个类,实现Servlet连接口

    在类上使用@WebServlet注解,进行配置

package com.example.day_12_servlet;

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

@WebServlet("/demo")
public class ServletDemo implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

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

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("Servlet3.0来了");
    }

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

    @Override
    public void destroy() {

    }
}
posted @ 2023-02-02 10:28  肥宅快乐水~  阅读(12)  评论(0编辑  收藏  举报