当浏览器端和服务器突然断开连接,比如突然断网,正在执行的servlet成为什么状态?

hjwl 2005-08-15 07:37:17
我想在断网后执行一些操作,但是好像destroy的方法在突然断后是没有执行的,请问有啥办法在浏览器端在执行servlet时候突然断网,正在执行的servlet能够对此又反应。

...全文
1207 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
苏明星 2005-09-03
  • 打赏
  • 举报
回复
mark
Vincent2013SH 2005-08-22
  • 打赏
  • 举报
回复
mark
bluelily22 2005-08-16
  • 打赏
  • 举报
回复
支持 jFresH_MaN(Contributing to Eclipse) 的观点
用try ...catch..finally就可以保证writer一定会被关闭。
至于楼主讲的突然断开,那也是客户端没有连接服务器,但是服务器还是在执行的,servlet在服务器端的

jFresH_MaN(Contributing to Eclipse)好强啊,信誉分214分, 楼主可以学习一下哟
doway 2005-08-16
  • 打赏
  • 举报
回复
理所当然是使用异常处理。支持所有持相同观点的DX。
shoulders 2005-08-16
  • 打赏
  • 举报
回复
super_zzw(之支吾)
这是一个好方法,学习了。
叶子哟 2005-08-16
  • 打赏
  • 举报
回复
前台与后台没有多大的关系
jspxnet 2005-08-16
  • 打赏
  • 举报
回复
lucene 搜索了就自己关闭. 结果单独返回就行了
108041217 2005-08-16
  • 打赏
  • 举报
回复
不会有反应的,因为http是无状态的连接
hjwl 2005-08-16
  • 打赏
  • 举报
回复
多谢了,我在实验!很久没有用过java了,像servlet的状态已经模糊不清了。平常一直用php
jFresH_MaN 2005-08-16
  • 打赏
  • 举报
回复
当然不会,楼主的概念还不清楚啊。
servlet是服务器端的程序,客户端可以是多个请求同时发生,当时服务器的servlet实例只有一个的。所以一个客户端和servlet的交互过程只有request--response的过程,这个过程结束一次交互就结束了,http是无状态的连接就是这个意思。
servlet的init是在servlet第一次启动服务的时候执行,destroy是在服务器停止服务的时候执行
hjwl 2005-08-16
  • 打赏
  • 举报
回复
to jFresH_MaN(Contributing to Eclipse)

突然断开后,servlet还会执行 catch 和 finally? 那servlet还在存活?
我马上试验一下 ,原来我认为断开后servlet会马上结束的,不会执行到catch和finally
jFresH_MaN 2005-08-16
  • 打赏
  • 举报
回复
只要在finally里面close,不管是否写给客户端数据成功,也就是说不管当前网络是否有问题,close操作一定会执行的
jFresH_MaN 2005-08-16
  • 打赏
  • 举报
回复
try {

lucene operation without concerning the client's status;

} catch(Exception e) {
if there is an exception which may be caused by client's disconnection, the exception will be threw.
} finally {

writer.close();
//anyway you can close the writer
}
hjwl 2005-08-16
  • 打赏
  • 举报
回复
super_zzw(之支吾) 多谢了!
往response中发一个数据,并且catch(IOException ioe),兄弟你可以详细一点吗?
super_zzw 2005-08-16
  • 打赏
  • 举报
回复
怎么会不能close当前servlet中的这个对象呢?除非你没有catch到IOException,如果你catch到了,那么在catch块中做什么都可以啊.
hjwl 2005-08-16
  • 打赏
  • 举报
回复
2楼兄弟的方法,不能close当前servlet中打开的org.apache.lucene.index.IndexWriter对象
hjwl 2005-08-16
  • 打赏
  • 举报
回复
感谢各位的回答,我把我的麻烦实例话一下。

当lucene 在更新索引的时候,writer打开了索引,进行操作,但是这个时候不可避免的有时候断线了,或者关闭了浏览器,这下writer没有close,下次再打开索引的时候不是说锁定就是损坏。

我想的就是servlet执行的时候,突然和客户段断开后,能后对writer对象进行一次close,这样就不会导致索引锁定和损坏了。

请各位兄弟帮帮忙!!!谢谢了
  • 打赏
  • 举报
回复
二楼的方法应该可以用,三楼的方式没试过
xuchaoyang 2005-08-16
  • 打赏
  • 举报
回复

学习了
angues1980 2005-08-16
  • 打赏
  • 举报
回复
接分,谢谢楼主 :)
加载更多回复(7)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧