Servlets 扩展HttpServlet实现ServletContextListener
类扩展Servlets 扩展HttpServlet实现ServletContextListener,servlets,servletcontextlistener,Servlets,Servletcontextlistener,类扩展HttpServlet并实现ServletContextListener是否是一种好的做法 public Myclass extends HttpServlet implements ServletcontextListener { } 这样做的优点和缺点是什么?这完全取决于您,实施者。有其特殊的目的。使用前请确保您知道它的用途。 如果您正在创建一个HTTP servlet,则必须进行扩展。如果您的类希望“接收有关web应用程序的servlet上下文更改的通知”(从javadocs复制)
HttpServlet
并实现ServletContextListener
是否是一种好的做法
public Myclass extends HttpServlet implements ServletcontextListener {
}
这样做的优点和缺点是什么?这完全取决于您,实施者。有其特殊的目的。使用前请确保您知道它的用途。
如果您正在创建一个HTTP servlet,则必须进行扩展。如果您的类希望“接收有关web应用程序的servlet上下文更改的通知”(从javadocs复制),则必须实现ServletcontextListener。这一切都取决于您,即实现者。有其特殊的目的。使用前请确保您知道它的用途。
如果您正在创建一个HTTP servlet,则必须进行扩展。如果您的类希望“接收有关web应用程序的servlet上下文更改的通知”(从javadocs复制),则必须实现ServletcontextListener。一些想法:
- 您将至少有两个类实例。当servlet收到传入请求时,容器将创建一个as
,并至少创建一个asServletContextListener
HttpServlet
- 由于2+个实例,您无法使用实例(仅静态)成员共享数据
- 如果其他类不使用您在侦听器中初始化和共享的数据/对象,则会更容易,因为您不必将这些数据/对象放入
中的应用程序范围,并在ServletContextListener
中检索它们李>HttpServlet
- 如果您的初始化逻辑很复杂,那么将其与servlet代码分离可能是值得的(例如,将初始化代码放在不同的类中,并使用应用程序作用域获取servlet中的共享对象)
- 您将至少有两个类实例。当servlet收到传入请求时,容器将创建一个as
,并至少创建一个asServletContextListener
HttpServlet
- 由于2+个实例,您无法使用实例(仅静态)成员共享数据
- 如果其他类不使用您在侦听器中初始化和共享的数据/对象,则会更容易,因为您不必将这些数据/对象放入
中的应用程序范围,并在ServletContextListener
中检索它们李>HttpServlet
- 如果您的初始化逻辑很复杂,那么将其与servlet代码分离可能是值得的(例如,将初始化代码放在不同的类中,并使用应用程序作用域获取servlet中的共享对象)
- 一些想法: