java倒计时问题

我用jsp+servlet做个考试系统,那个考试系统有个倒计时功能,如果客户端网络突然断了,就必须把考试用的时间存到数据库中,这样下次考试才能继续连接,时间也能衔接上,请... 我用jsp+servlet做个考试系统,那个考试系统有个倒计时功能,如果客户端网络突然断了,就必须把考试用的时间存到数据库中,这样下次考试才能继续连接,时间也能衔接上,请问这个怎么实现呢,服务器端怎样判断客户端突然掉线什么的呢? 展开
 我来答
feenn
2010-06-10 · TA获得超过276个赞
知道小有建树答主
回答量:312
采纳率:100%
帮助的人:277万
展开全部
只能通过超时机制来判断是否掉线,即客户端与服务端之间定期的维持一个简单的通信,如果服务端在一段规定的时间内没有相应则认为是掉线了。
---------------------------------------------------------------
这种方法实现也不是很难,但是需要消耗服务器的资源。一种解决方法是设置session的超时时间,然后在前台页面上隐藏一个iframe来不断与服务器通信(比如刷新)以保持session的有效性。当用户非正常下线的话通过超时就能检测出用户的在线状态。
WaltSuen
2010-06-13
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
client端以Ajax方式, 以较短时间区间(例如3秒), 在背景发送请求到Server端的某个servlet, 若Ajax请求发送失败且重试数次还不成功的话, 则client可以关闭考试画面, 让使用者无法再继续进行。

而Server端被请求的Servlet, 则以存放在session中的Timer来检查, 某个client是否有逾时还没有背景请求到达, 若未逾时就重设Timer重新倒数计时, 否则将已经使用的考试时间储存起来, 并将session中的Timer移除。

若能以Keep alive的方式保持HTTP connection, 将更为理想。另外, Server端倒数计时的时间, 必须足够client重试请求的发送, 否则将会让client与server的状态不一致!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
serriel
2010-06-10 · TA获得超过244个赞
知道小有建树答主
回答量:253
采纳率:85%
帮助的人:61.7万
展开全部
服务器端应该是无法判断客户端是否掉线的,你的考试系统应该是在客户端答题,最后将答案统一提交给远程服务器上。
关于你所提到的突然中断的问题,我想你的需求上可能有问题,考试时间肯定是以服务器端的为准的,若客户端的网络中断了,恢复后还能继续考试的话,那考试的时间岂不是可以无限拖延么, 本来一个120分钟的答卷结果可以做上3天,任何一个考试系统应该不会有这么大的bug吧,你在好好考虑下功能需求
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式