Servlet_生命周期详解以及Servlet_3.0注解配置

Servlet_生命周期详解

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

  Servlet什么时候被创建?

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

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

      在<servlet>标签下配置  

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

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

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

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

复制代码
    <!-- 配置Servlet -->
    <servlet>
        <servlet-name>demo2</servlet-name>
        <servlet-class>com.example.web.servlet.ServletDemo2</servlet-class>
<!--        执行Servlet的创建时机
                1.第一次被访问时,创建
                       <load-on-startup>的值为负数
                2.在服务器启动时,创建
                       <load-on-startup>的值为0或正整数
-->
        <load-on-startup></load-on-startup>
    </servlet>

    <!-- 映射 -->
    <servlet-mapping>
        <servlet-name>demo2</servlet-name>
        <url-pattern>/demo2</url-pattern>
    </servlet-mapping>
复制代码

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

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

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

 

2.提供服务:执行service方法,每次访问执行一次

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

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

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

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

 

 

 

Servlet_3.0注解配置

好处:

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

步骤:

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

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

  3.复写方法

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

      @WebServlet("资源路径")

复制代码
@WebServlet("/demo")
public class ServletDemo3 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 @   monkey大佬  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示