0

我正在构建一个 servlet(例如 MainServlet),为了保证线程安全,我正在创建一个对象(例如 MainServletProcesor),然后将调用委托给该对象以处理 HttpRequest。MainServletProcessor 具有用于满足请求的实例成员。从性能的角度来看,我想知道这种方法是否可行。这种为每个请求创建一个处理器实例的方法是个好主意吗?

4

2 回答 2

1

为什么不呢?创建一个对象很便宜,在处理和呈现您的请求期间,您可能会创建更多的对象。

创建对象比查询数据库或将响应写入输出流要快几个数量级。

于 2013-08-15T15:25:29.993 回答
1

您的 ServletdoXYZ()方法是应用程序的入口点(您的观点)。如果您要在每个方法中编写请求处理的所有逻辑,您的代码将很快变得难以管理。

你正在做的是完全合理的,实际上是好的做法。创建一个对象几乎不需要任何时间。当您的 Servlet 容器接收到实际的 HTTP 请求时,它实际上会创建大量对象(HttpServletRequestHttpServletResponseStreamsHeaders等),而您却没有看到它。

您可以在此处查看 Tomcat 的请求处理流程。这不会显示为每个请求创建了哪些对象,但您可以推断(或查看源代码)。

于 2013-08-15T15:40:45.853 回答