2011-09-29 44 views

回答

1

的几点思考:

  • 你将拥有一流的至少两个实例。当你的servlet收到一个传入请求时,容器创建一个为ServletContextListener,至少一个为HttpServlet
  • 由于2+实例不能使用实例(只是静态)成员共享数据。
  • 如果其他类不使用数据/你初始化对象和份额听众,因为你没有把这些数据/对象的应用范围在ServletContextListener,并在HttpServlet检索它们很容易。
  • 如果您的初始化逻辑很复杂,可能需要将它与servlet代码分开(例如,将初始化代码放到不同的类中,并使用应用程序范围来获取servlet中的共享对象)。
0

这一切都取决于你,实施者。 ServletcontextListener有它的特殊用途。在使用它之前,确保你知道它是什么。

如果你正在创建的HTTP Servlet。如果你的类要“收到有关更改Web应用程序的servlet上下文通知”你必须扩展HttpServlet(从复制的Javadoc)是的,你的一部分必须实现ServletcontextListener。