How servlets work: creation, sessions, shared variables and multithreading
Hello everyone! I've just started learning Java EE and servlets, and I'm completely confused. I wrote a simple servlet to count page visits, but it behaves strangely. Here's my code:
```java
@WebServlet("/counter")
public class CounterServlet extends HttpServlet {
private int counter = 0; // instance variable
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
counter++;
resp.getWriter().println("Visits: " + counter);
}
}
```
When I open the page in two different browser tabs, the counter somehow increases by 2 or even more. I thought a separate servlet instance was created for each user, but apparently that's not the case.