小编典典

在应用程序启动时执行servlet

java

我使用JSP构建Web应用程序,并且在我的servlet中,我具有:

public class MyServlet extends HttpServlet {
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

           init();        
           HttpSession session = request.getSession(true);
           //more code...
    }
}

到现在为止,当JSP页面调用like时,我的serlvet都被调用了<a href="MyServlet..">。我想要的是每当应用程序启动时也要执行的servlet。我可以在第一页上有一个类似“
START”的按钮,并在那里调用servlet。但是,我可以避免这种情况吗?


阅读 255

收藏
2020-11-26

共1个答案

小编典典

无论您想在启动时做什么,都应该由实现的类完成ServletContextListener,因此您应该编写这样的类,例如:

public class MyContextListener 
           implements ServletContextListener{

  @Override
  public void contextDestroyed(ServletContextEvent arg0) {
    //do stuff
  }

  @Override
  public void contextInitialized(ServletContextEvent arg0) {
    //do stuff before web application is started
  }
}

然后,您应该在web.xml中声明它:

<listener>
   <listener-class>
      com.whatever.MyContextListener 
   </listener-class>
</listener>
2020-11-26