我有一个JSP项目,在本地运行Tomcat,在Web上运行Glassfish。
在响应任何请求之前,我必须在部署应用程序后立即自动执行批处理(设置计时器)。
是否有解决此问题的标准方法?
感谢。
答案 0 :(得分:2)
@WebListener
public class SomeClass implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent sce) {
//Put code here
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
答案 1 :(得分:1)
对于那些不知道的人,上面例子中的注释告诉servlet容器这是一个监听器
@WebListener
如果使用web.xml进行配置,则可以将注释保留在类之外,并在过滤器映射之后但在web.xml文件中的servlet之前定义侦听器。
<listener>
<listener-class>yourpackage.SomeClass</listener-class>
</listener>
无论哪种方式,容器都会在启动时运行它。