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!!!!");也没在控制台显示呢?怎么回事呢 展开
// 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!!!!");也没在控制台显示呢?怎么回事呢 展开
1个回答
展开全部
你要正常关闭web服务器才行。如果你是强制关掉服务器,那么肯定不会执行destroy方法的。
如果你用Eclipse开发启动的服务器,那么你得使用它的正常关闭服务器按钮就可以了。
如果使用Tomcat服务器,你使用shutdown.bat即可。其他的服务器也是同理。
最后:只有走正常关闭才会执行你的Servlet的销毁方法,ServletContextListener也是这样子的。
如果你用Eclipse开发启动的服务器,那么你得使用它的正常关闭服务器按钮就可以了。
如果使用Tomcat服务器,你使用shutdown.bat即可。其他的服务器也是同理。
最后:只有走正常关闭才会执行你的Servlet的销毁方法,ServletContextListener也是这样子的。
追问
我是用MyEclipse开发的,先是按那个绿色的三角形START,关闭是按控制台那里的红色正方形么? 好像不行呢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询