当前位置: 技术问答>java相关
Servlet在关闭后是否执行doDestroy()方法?
来源: 互联网 发布时间:2017-03-18
本文导语: 用Servlet生成一个页面,在此页面的init()方法中使用: ServletContext sc = this.getServletContext(); sc.setAttribute("test","123"); 然后在doDestroy()方法中使用sc.removeAttribute("test"); 但在本页面关闭后其他页面中还是能取出sc.getAttribute("t...
用Servlet生成一个页面,在此页面的init()方法中使用:
ServletContext sc = this.getServletContext();
sc.setAttribute("test","123");
然后在doDestroy()方法中使用sc.removeAttribute("test");
但在本页面关闭后其他页面中还是能取出sc.getAttribute("test");
是不是servlet关闭后,不执行doDestroy()中的方法?
ServletContext sc = this.getServletContext();
sc.setAttribute("test","123");
然后在doDestroy()方法中使用sc.removeAttribute("test");
但在本页面关闭后其他页面中还是能取出sc.getAttribute("test");
是不是servlet关闭后,不执行doDestroy()中的方法?
|
小心的问一下:在服务器运行中,如何人为的停止一个servlet?
我认为destroy()方法是servlet在关闭时候自己调用的,我们只能做到在destory()的时候做哪些工作,不能确定何时调用。servlet容器在启动的时候,会把设置为与容器一起启动的servlet启动,如果没有设置自动启动的servlet,客户第一次访问一个servlet的时候调用init(),那个servlet启动,生成一个对象,常驻内存,以后再有请求,直接从这个servlet对象中生成一个线程去处理。即按照dopost,doGet的方法去做。执行完毕后,并不执行destroy()方法。只有容器自己去调度这些servlet的时候,有可能把一些不经常使用的servlet暂时移出内存,执行destory(),这可能是servlet容器自己的机制,有可能在容器运行期间servlet根本就不会被移出内存。一家之谈,加上自己的理解。高手之教!
我认为destroy()方法是servlet在关闭时候自己调用的,我们只能做到在destory()的时候做哪些工作,不能确定何时调用。servlet容器在启动的时候,会把设置为与容器一起启动的servlet启动,如果没有设置自动启动的servlet,客户第一次访问一个servlet的时候调用init(),那个servlet启动,生成一个对象,常驻内存,以后再有请求,直接从这个servlet对象中生成一个线程去处理。即按照dopost,doGet的方法去做。执行完毕后,并不执行destroy()方法。只有容器自己去调度这些servlet的时候,有可能把一些不经常使用的servlet暂时移出内存,执行destory(),这可能是servlet容器自己的机制,有可能在容器运行期间servlet根本就不会被移出内存。一家之谈,加上自己的理解。高手之教!
|
即将关闭前
|
标准的servlet接口方法为:public void destory();doDestroy()?是自定义的吧?