JSP/Servlet 应用程序中的 main() 方法在哪里? [复制]
Posted
技术标签:
【中文标题】JSP/Servlet 应用程序中的 main() 方法在哪里? [复制]【英文标题】:Where is the main() method In a JSP/Servlet application? [duplicate] 【发布时间】:2017-07-10 02:40:36 【问题描述】:我问这个的原因是我想编写代码来初始化应用程序,一旦它启动并稍后清理。
我不想使用 servlet init()
方法,因为它是每个 servlet。
【问题讨论】:
【参考方案1】: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>
【讨论】:
【参考方案2】:没有main()
方法,因为组件是受管理的并且容器会调用其他方法——比如servlet 和过滤器上的init()
。容器本身是通过一个 main 方法启动的,但即使是对你来说也是隐藏的。
对于每个应用程序和初始化,您可以使用 ServletContextListener
您必须使用<listener><listener-class>...</listener-class></listener>
将其映射到web.xml
。在contextInitialized(..)
和contextDestroyed(..)
中可以分别进行初始化和清理。
【讨论】:
以上是关于JSP/Servlet 应用程序中的 main() 方法在哪里? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot - JSP,Servlet,拦截器(Interceptor),过滤器(Filter),Runner 接口