zoukankan      html  css  js  c++  java
  • Servlet的生命周期

    1、被创建: 

      特点:执行init方法,只执行一次,一般用于加载资源。

      启动时机:如何配置其启动时机呢,可以在web.xml中修改

        <!--配置Servlet-->
        <servlet>
            <servlet-name>demo</servlet-name>
            <servlet-class>cn.rayfoo.web.HelloServlet</servlet-class>
        <!-- 配置启动时机,值为负数第一次被访问时创建  值为正数或0在服务器启动时创建 -->
            <load-on-startup>0</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>demo</servlet-name>
            <url-pattern>/demo</url-pattern>
        </servlet-mapping>

      问题:init只执行一次,说明Servlet在内存中只存在一个对象,说明Servlet时单例的。所以Servlet存在线程安全问题,但是加锁又太影响效率

      解决方案:尽量不要在Servlet中定义成员变量,即时定义了也不要修改。

    2、提供服务:

      执行service方法,执行多次

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

    3、被销毁

      执行destory方法,只执行一次

      特点:只有服务器正常关闭时,才会执行destory方法。方法执行在服务器销毁之前,一般用于释放资源。

  • 相关阅读:
    收藏题(小试牛刀)
    博客园及相关学习地址收录
    迭代器和生成器
    字典访问的三种方法
    函数进阶(装饰器)
    函数进阶(闭包)
    wx小程序知识点(六)
    wx小程序知识点(五)
    wx小程序知识点(四)
    wx小程序知识点(三)
  • 原文地址:https://www.cnblogs.com/zhangruifeng/p/12637143.html
Copyright © 2011-2022 走看看