main()方法在JSP / Servlet应用程序中的位置是什么?

时间:2011-01-22 07:47:25

标签: java jsp web-applications servlets

我之所以这样说是因为我想编写代码,一旦启动它就会初始化应用程序,并在以后进行清理。

我不想使用servlet init()方法,因为它是每个servlet。

2 个答案:

答案 0 :(得分:8)

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>

答案 1 :(得分:4)

没有main()方法,因为组件是受管理的,容器会调用其他方法 - 比如servlet和过滤器上的init()。容器本身是通过main方法启动的,但即使这样也是隐藏的。

对于每个应用程序和初始化,您可以使用ServletContextListener

您必须使用web.xml<listener><listener-class>...</listener-class></listener>中进行映射。在contextInitialized(..)contextDestroyed(..)中,您可以分别进行初始化和清理。