1.servlet对象生命周期和servlet类的的生命周期是不是都是从服务器加载这个对象一直到服务器关闭? 也就是说servlet的静态变量(static)的生命周期也是从servlet类加载到服务器关闭?2.任何堆区的对象在没销毁的情况下,它在方法区的类也是没销毁的,是吗?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【benben2301】截止到2008-07-18 19:19:34的历史汇总数据(不包括此帖):
    发帖的总数量:31                       发帖的总分数:595                      每贴平均分数:19                       
    回帖的总数量:53                       得分贴总数量:5                        回帖的得分率:9%                       
    结贴的总数量:28                       结贴的总分数:535                      
    无满意结贴数:4                        无满意结贴分:90                       
    未结的帖子数:3                        未结的总分数:60                       
    结贴的百分比:90.32 %               结分的百分比:89.92 %                  
    无满意结贴率:14.29 %               无满意结分率:16.82 %                  
    值得尊敬
      

  2.   

    Servlet 生命周期:
    1. 在服务器启动时或对 Servlet 映射到的虚拟 URI 第一次请求时(具体哪种要看 web.xml 中的配置)首先要根据 web.xml 中的配置找到 Servlet 实现类的 class 文件,然后完成类加载,此时静态块中的代码要执行,静态域要完成分配内存和初始化。
    2. Servlet 容器(可以简单理解为服务器)创建 Servlet 实现类的实例(实例域要完成内存非配和初始化构造方法要调用),并自己持有它的引用知道服务器关闭重启或 Reload Web 程序。
    3. 用创较好的 ServletConfig 对象调用此 Servlet 的 init 方法,完成 Servlet 初始化。
    4. 用根据 HTTP 请求信息创建好的 ServletRequest 对象和相应的 ServletResponse 对象调用此 Servlet 的 service 方法,以后的每次请求都会重复此过程(如果有并发的请求,那 service 方法会被多个线程同时调用到,注意同步处理共享的资源)。
    5. 当服务器正常关闭或重启,或此 Servlet 的 Context 被 Reload 时,Servlet 的 destroy() 方法要被调用以释放资源。
    6. Servlet 容器对此 Servlet 对象的引用被释放,此对象举被了被 GC 回收的条件,最终要被 GC 掉。
      

  3.   

    在接受用户一次请求是servlet(比如这个servlet叫Control)里面又创建一个类的对象,比如Uer u=new User();是不是这才请求结束时这个对象就会被销毁?下次请求时又会重新创建?
      

  4.   


    你的 User u = new User(); 在哪里声明的?是 service / doGet / doPost / 或是其它地方?
      

  5.   

    doGet 和 doPost 这两个方法要根据请求类型的不同被 service 选择性地调用。
      

  6.   


    1.servlet对象生命周期和servlet类的的生命周期是不是都是从服务器加载这个对象一直到服务器关闭?对,WebApp Reload 时也会结束 Servlet 生命周期
    也就是说servlet的静态变量(static)的生命周期也是从servlet类加载到服务器关闭?没错
    2.任何堆区的对象在没销毁的情况下,它在方法区的类也是没销毁的,是吗?