java - 与服务器实例混淆

标签 java servlets

我有以下一段代码,它工作正常,没有问题,但我很困惑,如何制作多个实例。每次运行此代码时,我都会得到“有 1 个实例正在运行”

public class HolisticCounter extends HttpServlet {


    private static final long serialVersionUID = 1L;
static int classCount = 0;  // shared by all instances
  int count = 0;              // separate for each servlet
  static Hashtable instances = new Hashtable();  // also shared

  public void doGet(HttpServletRequest req, HttpServletResponse res) 
                               throws ServletException, IOException {
    res.setContentType("text/plain");
    PrintWriter out = res.getWriter();

    count++;
    out.println("Since loading, this servlet instance has been accessed " +
                count + " times.");

    // Keep track of the instance count by putting a reference to this
    // instance in a Hashtable. Duplicate entries are ignored. 
    // The size() method returns the number of unique instances stored.
    instances.put(this, this);
    out.println("There are currently " + 
                instances.size() + " instances.");

    classCount++;
    out.println("Across all instances, this servlet class has been " +
                "accessed " + classCount + " times.");
  }
}

最佳答案

在绝大多数情况下,每个 <servlet> 只有一个 Servlet 实例。入口。容器不再需要实例化,因此它为每个请求重用相同的实例。

服务器允许实例化多个实例,但通常没有理由这样做。

关于java - 与服务器实例混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8849632/

相关文章:

javascript - 我想确保输入是 Javascript 中的字符串

java - 我在使用 doGet 和 doPost 方法时遇到问题

java - JavaFX Standalone JAR 能否获得对 Main java 类的 javascript 引用?

java - 如何生成随机数以提供正确的除法结果

java - 在 Java 中使用 HashMap 创建真实的映射

java - Java servlet 的 JUnit 测试 : java. lang.NullPointerException

java - 如何从jsp调用Servlet中的doDelete?

java - 在 Tomcat 上部署 war 文件并在没有项目名称的情况下运行

java - android market ://details? id=不适用于应用程序

java - Spring Boot 提供 m3u8 播放列表