官方文档上说:Servlet引擎必须等待所有的service()方法完成或超时结束之后才会销毁这个servlet
我想问的是:一个web项目,当有多个用户访问了一个servlet,当都访问结束以后servlet是不是会立即被销毁掉
或者是有什么设置超时的配置在多长时间将会被销毁????
我想问的是:一个web项目,当有多个用户访问了一个servlet,当都访问结束以后servlet是不是会立即被销毁掉
或者是有什么设置超时的配置在多长时间将会被销毁????
解决方案 »
- hibernate简单的小问题 求高手帮帮忙
- weblogic创建连接池报错
- 截取字符串。在线等,向高手请教
- MDB 事务处理, 大家帮一把!
- XDJM们,帮帮忙啊!求救求救!jmx监控tomcat,如何将监控的数据清零
- 有关structs问题
- weblogic 8.1的默认首页在什么文件下啊?
- 怎么样建立一个简单的struts应用?
- mm请教一下,第2个结果集时,老是报对象已关闭的错误?郁闷ing!在线等各位大位!
- 实体BEAN编译时通过,发布错误,我已经搞了三天了,请各位支援啊。
- 想学习java方面的技术,又无从下手找不到头绪的进来.
- <s:form action="XX.action"> 与 <s:form action="XX"> 的区别
不会被销毁
除非容器关闭或者手动销毁至于那里可以配置超时时间
等待高手解答 学习下
最后调用destroy销毁?
现在都改servlet容器单独处理了,为每一个请求启动一个线程,浏览器关闭或服务器超时则释放资源。servlet是服务启动时调用init方法启动servlet,然后service负责处理请求,服务关闭则调用distory方法关闭servlet。servlet是请求处理的核心。
要搞清楚doGet和doPost是在service中被调用的,doGet和doPost执行完返回信息了不代表service也执行完了
servlet的几个生命周期方法,都是回调方法,由容器托管,应用程序自身无法调用。就像线程的run方法一样。所以你调用了是看不出任何效果的。至于其生命周期,确实,一般来说service方法一结束基本可以说该servlet生命周期即结束了。jsp本质就是servlet,每个请求页面结束,servlet就结束了。占有的资源有gc来处理。
Servlet生命周期结束:1)容器重启关闭,2)servlet的service方法结束返回目前没听说过可以控制Servlet的生命周期长短。有人说在web.xml的默认30分钟的控制,那个好像是HttpSession的默认超时时间吧
不过我还有个疑问,这段话的意思是不是指的web容器调用destory()仅仅是代表这个servlet实例生命周期完结,而对象被销毁确是gc垃圾车过来之后,所以说根据destory()方法的调用来判断对象实例被销毁是无用的?我想web容器在没有找到没有被调用destory()的实例的时候会新建一个实例,而不会使用那个被调用了destory()而还未被gc带走的那个实例?
init()、service()和destroy()方法来表示(1)加载和实例化 (2)初始化(3)请求处理(4)服务终止
有个detroy方法来销毁
struts1的核心是servlet的,strust2 的前端控制器是个Filter吧
服务器启动时servlet实例化,销毁是服务器关闭就销毁
要手动销毁可以调用detroy方法
(1)首先,能够获得大家一致认可的是,不论一个servlet保存多长时间,它的生存周期肯定会短于容器的生存期,servlet实例在容器被移除之前被销毁,即所谓的“皮之不存,毛何附焉”;
(2)servlet生存期的定义,包括加载、实例化、初始化、处理客户端请求以及如何被移除。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。
(3)重点是:servlet采用的是单实例,多线程模式,即在同一时刻,容器中只存在某servlet的一个实例;同时,多请求(用户)会获得多个线程来运行同一个实例;
(4)在容器生命周期内,不同时间段会生存servlet的不同实例,可以理解为:A servlet在“时间段一”存在实例A.1,在“时间段二”会存在实例A.2;容器可以根据需要对长时间没有被请求的servlet实例销毁,在必要的时候再生成。
(5)对于容器销毁servlet的时机,则需要研究servlet的内部运行机制,请高人赐教。可以肯定的是调用destroy()方法来销毁servlet实例。参考:http://topic.csdn.net/u/20090319/14/C2DC3DDC-BEF4-4AA8-881F-58559D137351.html