当前位置: 技术问答>java相关
怎样使servlet不被destory()。之二
来源: 互联网 发布时间:2015-06-09
本文导语: 使它一直在服务器内。不是说将它放到application中,而是让它不被服务器destroy,因为我要在init()中作一些系统初始化工作,防止它在一个application中被destroy再次初始化。 我是在这个sevlet 的init()将一个数据库表清...
使它一直在服务器内。不是说将它放到application中,而是让它不被服务器destroy,因为我要在init()中作一些系统初始化工作,防止它在一个application中被destroy再次初始化。
我是在这个sevlet 的init()将一个数据库表清空,只是在系统初始化时清一次,不想他被服务器destroy,这样有新的请求就会再次清空这个表,将有用的数据干掉了。
其实就是将登录后将在线的用户的信息加到一个数据库表中,每次系统初始化就清空这张表,因为初始化是没有一个在线用户的。如果这个sevrlet中途被destroy了就会再次init()将中间的保存的信息清除了。
有人说在web.xml可配,不知是什么服务器,怎么写。我的是不行。
我是在这个sevlet 的init()将一个数据库表清空,只是在系统初始化时清一次,不想他被服务器destroy,这样有新的请求就会再次清空这个表,将有用的数据干掉了。
其实就是将登录后将在线的用户的信息加到一个数据库表中,每次系统初始化就清空这张表,因为初始化是没有一个在线用户的。如果这个sevrlet中途被destroy了就会再次init()将中间的保存的信息清除了。
有人说在web.xml可配,不知是什么服务器,怎么写。我的是不行。
|
我也很想知道,我帮你查过了WEB.XML中没有相关选项!不过我觉得只要是你的SERVLET访问的频率很高的话,它自己是不会被DESTORY的!
|
一个servlet 如果你只调用它一次,那么它就只init一次,即使destroy了,它也不会自动init吧。
你只要保证这个servlet不会被别的servlet调用即可。
你只要保证这个servlet不会被别的servlet调用即可。
|
能否在init方法中加一个判断再清空数据库表?
|
我认为 servlet 不被 destory 不大可能,因为它不符合servlet生命期的规范和JAVA的垃圾收集机制。除非用一些手工的办法来模拟不被destory的情况。就象楼上说的那样。
|
你可以在static块中初始化一个timer让它间隔很长时间做一件简单的事情,这样它是不会被destory的。祝你好运