para - Cómo especificar el parámetro Http Request timeout en el contenedor de servlets de Java
que es un servlet y para que sirve (3)
Aunque no puede controlar el tiempo de espera del cliente, puede hacer que el servidor sea muy impaciente :) Por ejemplo, en Tomcat, puede hacer esto en su conector,
<Connector port="8080"
...
connectionTimeout ="5000"
disableUploadTimeout="false" />
Esto hace que el servidor solo espere 5 segundos y cierre la conexión. El navegador recibirá un error de conexión cerrada. Puede tratarlo igual que el tiempo de espera en el cliente.
Por supuesto, esto solo funciona si el tiempo de espera es causado por el servidor, no hay problemas de conectividad entre el navegador y el servidor.
Estoy tratando de entender dónde puedo configurar un tiempo de espera para todas las solicitudes que lleguen a un servlet mío (o a todos mis servlets). ¿Es eso, como creo, una propiedad de contenedores? Además, ¿cómo afecta esto a los diferentes navegadores? ¿Todos cumplen con el parámetro que dicta el contenedor? O tal vez el tiempo de espera de solicitud ni siquiera es algo que pueda controlar y cada navegador decide por sí mismo. (Para ser claros, no estoy hablando del tiempo de espera de la sesión)
No puede controlar el tiempo de espera del cliente desde el servidor. Sin embargo, es posible que pueda enviar datos de vuelta al cliente de vez en cuando mientras su operación de larga ejecución está ocupada. Esto evitará que el cliente agote el tiempo de espera y se puede usar para mostrar el progreso al usuario, etc. Escriba datos en OutputStream o Writer obtenidos de la respuesta y llame al flujo para enviar datos parciales al cliente.