Avatar ·

Comment fonctionnent les servlets : création, sessions, variables partagées et multithreading

Bonjour à tous ! Je viens de commencer à me plonger dans Java EE et les servlets, et j'ai un vrai brouillard dans la tête. J'ai écrit une simple servlet pour compter les visites d'une page, mais elle se comporte étrangement. Voici mon code : ```java @WebServlet("/counter") public class CounterServlet extends HttpServlet { private int counter = 0; // variable d'instance @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { counter++; resp.getWriter().println("Visits: " + counter); } } ``` Quand j'ouvre la page dans deux onglets différents du navigateur, le compteur augmente soudainement de 2 ou même plus. Je pensais qu'une instance distincte de la servlet était créée pour chaque utilisateur, mais apparemment ce n'est pas le cas. Je ne comprends pas non plus : 1. Quand exactement la servlet est-elle créée ? Une fois au démarrage ou à chaque requête ? 2. Comment fonctionnent les sessions ? Je veux compter les visites pour chaque utilisateur séparément. 3. Si la servlet est