Avatar ·

Servlet的工作原理:创建、会话、共享变量和多线程

```html 大家好!我刚开始学习Java EE和Сервлеты,但在一些基础概念上感到困惑。能简单解释一下吗? 我有一个简单的Сервлет,用来统计页面访问次数。我原以为每个用户会看到自己的计数器,但实际上运行结果很奇怪。 这是我的代码: ```java public class CounterServlet extends HttpServlet { private int counter = 0; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { counter++; response.getWriter().println("您访问了此页面 " + counter + " 次"); } } ``` 我在两个不同的浏览器(Chrome和Firefox)中打开了它。在第一个浏览器中刷新了3次——计数器显示为3。然后在第二个浏览器中刷新了一次——计数器变成了4!也就是说,它并没有区分不同用户的访问,而是将它们累加了。为什么会这样? 还有几个问题: 1. 具体是如何创建实例的? ```