Tengo una situación que parece ajustarse a la situación Async Servlet 3.0/Comet pero todo lo que necesito hacer es devolver un código de respuesta 200 (u otro) después de aceptar los parámetros entrantes.Finalizando un HttpServletResponse pero continúo procesando
¿Hay alguna manera para que HttpServlet complete el protocolo de solicitud/respuesta http y continúe procesando?
Algo así como ...
doPost(req, response) {
// verify input params...
response.setStatus(SC_OK);
response.close();
// execute long query
}
EDIT: Mirando el paquete javax.servlet - el fraseo adecuado para mi pregunta es
¿Cómo cometer una respuesta?
como en Servlet.isCommitted()
"comprometidos" significa una parte de la secuencia de respuesta ya ha sido enviado al cliente. No puede ser retirado o modificado.Puede suceder tan pronto como establezca un encabezado o escriba en la respuesta, en teoría, pero generalmente el contenedor se almacena temporalmente, por lo que ocurre un poco más tarde. Esto no es relevante para usted, creo. No cierre las secuencias de respuesta. Simplemente configure el estado, inicie un hilo según otras respuestas, termine doPost(). –
Traté de usar response.sendError (SC_OK) pero todavía no resolvió la respuesta al solicitante. Parece que la única forma de cerrar una solicitud de servlet es regresar desde un doPost(). – Stevko