【发布时间】:2011-06-13 14:20:53
【问题描述】:
我问这个的原因是我想编写代码来初始化应用程序,一旦它启动并稍后清理。
我不想使用 servlet init() 方法,因为它是每个 servlet。
【问题讨论】:
标签: java jsp web-applications servlets
我问这个的原因是我想编写代码来初始化应用程序,一旦它启动并稍后清理。
我不想使用 servlet init() 方法,因为它是每个 servlet。
【问题讨论】:
标签: java jsp web-applications servlets
Servlet 中没有main() 方法。
如果
我问这个的原因是我想编写代码来初始化应用程序,一旦它启动并稍后清理。
可以使用ServletContextListener实现
public class MyServletContext implements ServletContextListener{
ServletContext context;
public void contextInitialized(ServletContextEvent contextEvent) {
System.out.println("Context Created");
}
public void contextDestroyed(ServletContextEvent contextEvent) {
System.out.println("Context Destroyed");
}
}
web.xml
<listener>
<listener-class>
com.yourpackage.MyServletContext
</listener-class>
</listener>
【讨论】:
没有main() 方法,因为组件是受管理的并且容器会调用其他方法——比如servlet 和过滤器上的init()。容器本身是通过一个 main 方法启动的,但即使是对你来说也是隐藏的。
对于每个应用程序和初始化,您可以使用 ServletContextListener
您必须使用<listener><listener-class>...</listener-class></listener> 将其映射到web.xml。在contextInitialized(..) 和contextDestroyed(..) 中可以分别进行初始化和清理。
【讨论】: