Tomcat thread par request
XI
-
XI -
XI -
Bonjour tout le monde,
Je débute avec les appli web en Java et j'ai une question concernant la façon dont Tomcat gère les request qui arrivent.
J'ai un projet simple avec une Servlet dont voici la partie de code qui m'intéresse :
L'idée est simple, je fais un appel, le Thread sleep pendant 10 secondes et termine.
D'après ce que j'ai pu lire Tomcat créé un Thread par requête, or avec mon exemple ça ne fonctionne pas tout à fait comme je m'y attendais. Puisque j'affiche l'heure de début/fin du Thread je peux voir que si je fais deux appels consécutifs le deuxième appels attend que le premier soit terminé avant de se lancer. Par on voit aussi que le nom du Thread courant est bien différent.
Je suis donc un peu perdu.
Une âme charitable peut-elle m'expliquer ce qu'il se passe ?
Merci.
Je débute avec les appli web en Java et j'ai une question concernant la façon dont Tomcat gère les request qui arrivent.
J'ai un projet simple avec une Servlet dont voici la partie de code qui m'intéresse :
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set response content type
response.setContentType("text/html");
// Actual logic goes here.
PrintWriter out = response.getWriter();
out.println("<h3>" + Thread.currentThread().getName() + "</h3>");
out.println("<h3>" + this + "</h3>");
out.println("<h3> start at " + java.time.LocalDateTime.now() + "</h3>");
try {
Thread.sleep(1000 * 10);
} catch (Exception e) {}
out.println("<h3> end at " + java.time.LocalDateTime.now() + "</h3>");
}
L'idée est simple, je fais un appel, le Thread sleep pendant 10 secondes et termine.
D'après ce que j'ai pu lire Tomcat créé un Thread par requête, or avec mon exemple ça ne fonctionne pas tout à fait comme je m'y attendais. Puisque j'affiche l'heure de début/fin du Thread je peux voir que si je fais deux appels consécutifs le deuxième appels attend que le premier soit terminé avant de se lancer. Par on voit aussi que le nom du Thread courant est bien différent.
// appel 1
http-nio-8080-exec-2
A@35f7139e
start at 2018-01-27T22:32:07.949
end at 2018-01-27T22:32:17.949
// appel 2
http-nio-8080-exec-3
A@35f7139e
start at 2018-01-27T22:32:17.958
end at 2018-01-27T22:32:27.958
Je suis donc un peu perdu.
Une âme charitable peut-elle m'expliquer ce qu'il se passe ?
Merci.
A voir également:
- Tomcat thread par request
- 400 bad request request header or cookie too large - Forum Windows
- 666-4 - bad request - 666-4 ✓ - Forum Réseaux sociaux
- Bad request error 403 paiement - Forum Graphisme
- Bad request your browser sent a request that this server could not understand. size of a request header field exceeds server limit. ✓ - Forum Bureautique
- Bad request ... - Forum Réseaux sociaux
alors,
java : java version "1.8.0_161"
tomcat : apache-tomcat-9.0.4
class Java
web.xml