社区
Web 开发
帖子详情
当浏览器端和服务器突然断开连接,比如突然断网,正在执行的servlet成为什么状态?
hjwl
2005-08-15 07:37:17
我想在断网后执行一些操作,但是好像destroy的方法在突然断后是没有执行的,请问有啥办法在浏览器端在执行servlet时候突然断网,正在执行的servlet能够对此又反应。
...全文
1207
27
打赏
收藏
当浏览器端和服务器突然断开连接,比如突然断网,正在执行的servlet成为什么状态?
我想在断网后执行一些操作,但是好像destroy的方法在突然断后是没有执行的,请问有啥办法在浏览器端在执行servlet时候突然断网,正在执行的servlet能够对此又反应。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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,这样就不会导致索引锁定和损坏了。
请各位兄弟帮帮忙!!!谢谢了
轻松工作快乐生活
2005-08-16
打赏
举报
回复
二楼的方法应该可以用,三楼的方式没试过
xuchaoyang
2005-08-16
打赏
举报
回复
顶
学习了
angues1980
2005-08-16
打赏
举报
回复
接分,谢谢楼主 :)
加载更多回复(7)
客户
端
异常
断网
断电,服务
端
该如何感知?
本文只针对于web项目。开始想的是使用websocket进行长连接服务,但有个问题就来了,客户
端
异常断电、异常
断网
,比如说我现在把电脑咋了,网线掐了,服务
端
是不知道的,所以无法触发oncolse方法,通道就没办法关闭,该咋办呢?而且还有个缺点,如果用户过多,A用户向
服务器
发送10000次心跳,那么
服务器
也要回10000次,压力会很大。 解决方案 采用心跳机制解决。 客户
端
定时向服务
端
发送空消息(ping),服务
端
启动心跳检测,超过一定时间范围没有新的消息进来就默认为客户
端
已断线,服务
端
主动
执行
clos
【JavaWeb】小白也能看懂的
服务器
推送技术(WebSocket和SSE)
消息推送(push)通常是指网站的运营工作等人员,通过某种工具对用户当前网页或移动设备APP进行的主动消息推送 - WebSocket是html5出现的一种在·`TCP连接`上进行`全双工通信`的协议 -
浏览器
和
服务器
仅需`一次握手`,就可以建立`持久性的连接`,并进行`双向数据传输`。 - WebSocket目前支持ws和wss两种模式,对应HTTP和HTTPS。
基于Java
Servlet
构建的在线音乐
服务器
//登录模块 public User login(User loginUser) { User user = null;// Connection conn = null; //获取连接 PreparedStatement ps = null; //预编译 ResultSet rs = null;//结果集合 try { conn = DBUtils.getConn(); ps = conn.prepareStatement("select*from user where usernam.
SpringBootWeb登录认证
什么是会话?在我们日常生活当中,会话指的就是谈话、交谈。在web开发当中,会话指的就是
浏览器
与
服务器
之间的一次连接,我们就称为一次会话。在用户打开
浏览器
第一次访问
服务器
的时候,这个会话就建立了,直到有任何一方
断开连接
,此时会话就结束了。在一次会话当中,是可以包含多次请求和响应的。比如:打开了
浏览器
来访问web
服务器
上的资源(
浏览器
不能关闭、
服务器
不能断开)第1次:访问的是登录的接口,完成登录操作第2次:访问的是部门管理接口,查询所有部门数据第3次:访问的是员工管理接口,查询员工数据。
JavaWeb笔记——HTTP&Tomcat&
Servlet
JavaWeb笔记——HTTP&Tomcat&
Servlet
Web概述;HTTP;Tomcat;
Servlet
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章