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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Web应用程序(Jsp / Servlets)启动脚本相关的知识,希望对你有一定的参考价值。

我想在我的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操作并缓存它。除此之外,如果有更好的解决方案,请告诉我。

提前致谢

答案

你可以在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中声明监听器

以上是关于Java Web应用程序(Jsp / Servlets)启动脚本的主要内容,如果未能解决你的问题,请参考以下文章

18JSP

Java Web之JSP技术

JavaWeb---总结(十四)JSP原理

JSP以及JSP解析原理

jsp简介

jsp初学总结