gpt4 book ai didi

java - 在 JAVA 中使用注释加载启动

转载 作者:搜寻专家 更新时间:2023-10-30 19:56:19 24 4
gpt4 key购买 nike

我有这个代码,

@WebServlet(value="/initializeResources", loadOnStartup=1)
public class InitializeResources extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("HEREEEE");
}

}

但是 servlet 并没有在 Web 应用程序启动时启动。

如何在Servlet Annotation上使用load on startup?

我的 Servlet API 是 3.0,我使用 Tomcat 7

最佳答案

使用当前代码,您需要执行 GET 请求以查看输出 HEREEEE

如果你想在 servlet 启动时做一些事情(即元素 loadOnStartup 的值大于或等于零,0),你需要将代码放在 init 方法中或在 servlet 的构造函数中:

@Override
public void init() throws ServletException {
System.out.println("HEREEEE");
}

使用监听器在应用程序范围(在ServletContext)中启动资源可能更方便。

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

@WebListener
public class InitializeListener implements ServletContextListener {

@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("On start web app");
}

@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("On shutdown web app");
}

}

例如,请参阅我对问题 Share variables between JAX-RS requests 的回答.

关于java - 在 JAVA 中使用注释加载启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18808853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com