Java Web应用程序(Jsp / Servlets)启动脚本

问题描述 投票:-1回答:1

我想在我的Web应用程序的服务器启动时运行一个程序,其中我需要从数据库中读取数据并缓存数据并在整个应用程序中使用它。除了以下方法之外,还有更好的解决方案来实现同样的目标

<servlet>
    <servlet-name>CacheData</servlet-name>
    <servlet-class>com.my.webapp.CacheDataServletExample</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

因为在init方法中我需要调用db操作并缓存它。除此之外,如果有更好的解决方案,请告诉我。

提前致谢

java jsp servlets server startup
1个回答
0
投票

你可以在web.xml中注册一个上下文监听器,如下所示:

<listener>
    <listener-class>it.example.WebAppServletContextListener</listener-class>
</listener>

并且您可以在侦听器实现中处理所有内容:

package it.example;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class WebAppServletContextListener implements ServletContextListener {

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        // stuff to do on context destroy
    }

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        // stuff todo at context startup
    }
 }

附:从servlet 3.0开始,你也可以使用@WebListener注释而不是在web.xml中声明监听器

© www.soinside.com 2019 - 2024. All rights reserved.