有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

无论如何,我们从servlet知道客户机是否仍在等待

我们有一个jsp页面,它向servlet提交请求。但是servlet必须搜索大量的文件,这需要时间。同时,如果关闭了客户端,servlet仍然会进行搜索,这是对我们资源的浪费。从servlet中我们是否可以知道客户端是否仍在等待响应?我们应该从servlet中知道jsp页面是否已关闭,以便停止搜索


共 (1) 个答案

  1. # 1 楼答案

    Http是一种无状态协议。因此,从技术上讲,没有要检查的连接状态。但是,下面是如何模拟连接状态的

    您需要在服务器和客户端(web浏览器)上添加处理

    在服务器上,可以在会话对象中存储hear beat值。Heartbeat表示客户端最后一次发出请求的时间戳。您可以建立一个阈值。比如说10秒。如果客户端(web浏览器)在超过10秒的时间内未发送心跳消息,则放弃该过程

    在客户端(web浏览器)上,您可以使用javascript每10秒发送一次心跳消息。使用Ajax向服务器发送消息。这再次告诉服务器客户端仍在等待

    注意!您需要确保在服务器上建立了会话。服务器需要在会话作用域中存储热节拍消息。客户端在每个会话中将有多个请求

    最后,JSP是一个servlet。JSP只是编写servlet的另一种方式。您的容器(例如Tomcat)将JSP编译成servlet。JSP在服务器上运行,而不是在web浏览器中运行。是的,您可以从servlet(或JSP)向web浏览器发送Javascript和HTML

    希望有帮助。 祝你好运