24

我试图了解在哪里可以为到达我的 servlet(或我的所有 servlet)的所有请求配置请求超时?就像我认为的那样,这是一个容器属性吗?另外,这对不同的浏览器有何影响?它们都符合容器规定的参数吗?或者,请求超时时间甚至不是我可以控制的,每个浏览器都自行决定?(只是要清楚我不是在谈论会话超时)

4

3 回答 3

14

来自客户端的超时(即等待对 HTTP 请求的响应的时间)由客户端确定。对于 IE,请参阅,对于 Firefox,请参阅

您无法从服务器控制此超时。

于 2009-09-12T10:28:37.813 回答
7

即使您无法控制客户端超时,您也可以让服务器非常不耐烦:) 例如,在 Tomcat 上,您可以在连接器中执行此操作,

<Connector port="8080"  
  ...
  connectionTimeout ="5000"
  disableUploadTimeout="false" />

这使服务器只等待 5 秒并关闭连接。浏览器将收到连接关闭错误。您可以将其视为与客户端中的超时相同。

当然,这只适用于超时是由服务器引起的,而不是浏览器和服务器之间的连接问题。

于 2009-09-12T12:31:29.623 回答
3

您无法从服务器控制客户端超时。但是,您可以在长时间运行的操作繁忙时不时将数据发送回客户端。这将防止客户端超时,并可用于向用户显示进度等。将数据写入从响应中获取的 OutputStream 或 Writer,并调用 flush 将部分数据发送到客户端。

于 2009-09-12T10:36:54.980 回答