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

Servlet生命周期详解 

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

  Servlet什么时候被创建?

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

      可以配置执行Servlet的创建时机。

      在<servlet>标签下配置

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

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

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

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

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

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

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

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

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

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

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

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

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

Servlet3.0注解配置

好处:

  支持注解配置。可以不需要web.xml了。

步骤:

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

  2.定义一个类,实现Servlet接口

  3.复写方法

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

    @WebServlet("/d1")

复制代码
//@WebServlet(urlPatterns = "/d1")
//或:
@WebServlet("/d1")
public class ServletD_1 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("Service.....");
    }
    
    @Override
    public String getServletInfo() {
        return null;
    }
    @Override
    public void destroy() {}
}
复制代码

 

 

 

posted @   魔光领域  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示