一尘不染

如何在Apache Tomcat中初始化Web应用程序?

tomcat

我使用的是WebSphere Application Server,它提供了平台初始化侦听器,当应用程序启动时会调用该侦听器。现在,我正在使用Apache
Tomcat,但没有找到这些东西,而我试图做的是在应用程序开始处理请求之前进行一些初始化工作。

我应该如何通过Apache Tomcat做到这一点?


阅读 281

收藏
2020-06-16

共1个答案

一尘不染

您创建一个Listener类,实现ServletContextListener如下的类:

package com.vy;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener
public class StartStopListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("Servlet has been started.");
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("Servlet has been stopped.");
    }

}

添加配置信息WEB-INF\web.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <listener>
        <listener-class>com.vy.StartStopListener</listener-class>
    </listener>

</web-app>

运行Tomcat时,您将在控制台屏幕上看到结果:

Servlet has been started.

参考:http
:
//docs.oracle.com/javaee/7/api/javax/servlet/ServletContextListener.html

2020-06-16