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方法。方法执行在服务器销毁之前,一般用于释放资源。

  • 相关阅读:
    Android中查找一个Layout中指定的子控件
    常用代码
    数据库连接池配置
    分享一个电子书网站
    怎么快速入手一个项目在没有人指导的情况下
    压测如何观测jvm,就是使用jmx来实现jvm监控
    工具类
    APP开发和web开发的区别
    网站切流量
    互联网主题分析
  • 原文地址:https://www.cnblogs.com/zhangruifeng/p/12637143.html
Copyright © 2011-2022 走看看