servlet中destory方法的误解

最近学习servlet的过程中发现了一个很怪的问题, 百度上面搜索这个问题也几乎都是错误的理解。那就是有关servlet在什么时候摧毁,回答很多是服务器关闭或者执行destory方法。服务器关闭servlet肯定会销毁,但是执行destory并不会销毁servlet。

我尝试手动调用destory方法。然后再去调用GET方法。发现还是会执行get, 也就是说执行了destory方法并不会销毁servlet。我就怀疑是不是服务器重新创建了一个servlet。然后我继续测试

用ajax测试的结果:

本次请求的方式为:PUT
本次请求的方式为:GET
本次请求的方式为:DESTORY
servlet.IndexServlet@36cfac98
正在销毁servlet。。。
本次请求的方式为:GET
本次请求的方式为:DESTORY
servlet.IndexServlet@36cfac98
正在销毁servlet。。。

打印了servlet的地址,发现前后是同一个servlet。所以servlet并没有销毁。

断点跟踪发现super.destory()是一个空方法。

//方法写在GenericServlet类中。
public void destroy() {
}

也就是这个方法并不是真正销毁servlet。所以我的理解是:

服务器关闭或者销毁servlet的时候会执行destory方法告知使用者,我要销毁这个servlet了。而我们手动执行destory方法并不会真的销毁servlet。

如理解错误望告知!谢谢。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值