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

您必须使用&lt;listener&gt;&lt;listener-class&gt;...&lt;/listener-class&gt;&lt;/listener&gt; 将其映射到web.xml。在contextInitialized(..)contextDestroyed(..) 中可以分别进行初始化和清理。

【讨论】:

以上是关于JSP/Servlet 应用程序中的 main() 方法在哪里? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

JSP/Servlet 工作原理

JSP/Servlet Web 应用程序中的 XSS 预防

jsp servlet应用程序中动态表上的编辑按钮

JSP Servlet WEB生命周期

SpringBoot - JSP,Servlet,拦截器(Interceptor),过滤器(Filter),Runner 接口

Java Web 技术(JSP 和 servlet)中的 AJAX 自动完成文本框