zoukankan      html  css  js  c++  java
  • Java第四十二天,Servlet系列(二),Servlet 的生命周期

    一、Servlet 方法详解

    • init(ServletConfig servletConfig) ===> 初始化方法,在 Servlet 被创建时执行,只会执行一次
    • service(ServletRequest servletRequest, ServletResponse servletResponse) ===> 提供服务的方法;每一次 Servlet 被访问时都会执行,执行多次
    • destroy() ===> Servlet 被杀死时执行;在服务器被正常关闭时执行
    • getServletConfig() ===> 获取 Servlet 的配置对象
    • getServletInfo() ===> 获取 Servlet 的信息

    二、生命周期

    • 创建 ===> 执行 init 方法;仅执行一次
    • 提供服务 ===> 执行 service 方法;执行多次
    • 销毁 ===> 执行 destroy;仅执行一次

    三、琐碎知识点

    1.Servlet 的创建时间

    默认情况下,第一次被访问时,Servlet 被创建;但是可以配置 <load-on-startup/> 标签指定 Servlet 的创建时间

        <!--配置 Servlet-->
        <servlet>
            <!--配置 Servlet 名称,随便-->
            <servlet-name>servletName</servlet-name>
            <!--配置 Servlet 对应的全类名-->
            <servlet-class>web.servlet.FirstServlet</servlet-class>
            <!--指定 Servlet 的创建时间-->
            <!--
            1.第一次被访问时创建 <load-on-startup/> 被配置为 负数 时生效
            2.在服务器启动时创建 <load-on-startup> 配置为 正数或0 时生效
            3.<load-on-startup> 默认为 -1
            -->
            <load-on-startup>0</load-on-startup>
        </servlet>

    2.Servlet 如何处理多线程问题

    Servlet 是单例(init 方法只执行一次)的;因此多个用户同时访问时,可能存在线程安全问题;因为一个对象当中成员变量是被共享的,而方法是不被共享的;因此尽量不要在 Servlet 中定义成员变量;即使定义了成员变量,也不要对其修改(可以获取)

    3.destroy 方法的执行时刻

    在 Servlet 被销毁之前执行,一般用于释放资源,类似于临终前的遗言

    作者:蓝月

    -------------------------------------------

    个性签名:能我之人何其多,戒骄戒躁,脚踏实地地走好每一步

  • 相关阅读:
    filter函数示例
    组件里v-for示例
    操作数组的函数简介
    class绑定对象改进版
    python 全栈开发,Day6(函数进阶)
    python 全栈开发,Day5(函数初识)
    python 全栈开发,Day4(文件操作)
    python 全栈开发,Day3(集合,深浅copy)
    python 全栈开发,Day2(基础数据类型)
    python 全栈开发,Day1(python介绍,变量,if,while)
  • 原文地址:https://www.cnblogs.com/viplanyue/p/13573685.html
Copyright © 2011-2022 走看看