Servlet关闭时候destroy()函数没调用

publicvoiddestroy(){//TODOAuto-generatedmethodstubtry{FileWriterfw=newFileWriter("d:\... public void destroy() {
// TODO Auto-generated method stub
try{
FileWriter fw=new FileWriter("d:\\1.txt");
BufferedWriter bw=new BufferedWriter(fw);
String times=(String) this.getServletContext().getAttribute("visitedTimes");
bw.write(times);
bw.close();
System.out.println("destroy!!!!");
}catch(Exception e)
{
e.printStackTrace();
}
}
我弄网站计数器,destroy关闭的时候,将ServletContext的isitedTimes写到文件中,但是看文件还是0(文件原来有一个0,代表计数);但是在网站能成功计数。而且
System.out.println("destroy!!!!");也没在控制台显示呢?怎么回事呢
展开
 我来答
mading314
推荐于2016-01-09 · TA获得超过863个赞
知道小有建树答主
回答量:355
采纳率:100%
帮助的人:346万
展开全部
你要正常关闭web服务器才行。如果你是强制关掉服务器,那么肯定不会执行destroy方法的。

如果你用Eclipse开发启动的服务器,那么你得使用它的正常关闭服务器按钮就可以了。

如果使用Tomcat服务器,你使用shutdown.bat即可。其他的服务器也是同理。

最后:只有走正常关闭才会执行你的Servlet的销毁方法,ServletContextListener也是这样子的。
追问
我是用MyEclipse开发的,先是按那个绿色的三角形START,关闭是按控制台那里的红色正方形么?  好像不行呢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式