码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet的生命周期

时间:2020-04-05 15:50:59      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:-o   一个   服务   配置   存在   service   init   ping   art   

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

Servlet的生命周期

标签:-o   一个   服务   配置   存在   service   init   ping   art   

原文地址:https://www.cnblogs.com/zhangruifeng/p/12637143.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!