Avatar ·

Cómo funcionan los servlets: creación, sesiones, variables compartidas y multihilo

¡Hola a todos! Acabo de empezar a aprender sobre Java EE y servlets, y tengo un lío en la cabeza. Escribí un servlet simple para contar las visitas a una página, pero se comporta de manera extraña. Aquí está mi código: ```java @WebServlet("/counter") public class CounterServlet extends HttpServlet { private int counter = 0; // variable de instancia @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { counter++; resp.getWriter().println("Visits: " + counter); } } ``` Cuando abro la página en dos pestañas diferentes del navegador, el contador aumenta de repente en 2 o incluso más. Pensé que se creaba una instancia de servlet para cada usuario, pero parece que no es así. Además, no entiendo: 1. ¿Cuándo se crea exactamente el servlet? ¿Una vez al iniciar o en cada solicitud? 2. ¿Cómo funcionan las sesiones? Quiero contar las visitas para cada usuario por separado. 3. Si el servlet se