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