微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想使用一种部署到服务器后仅被调用一次的方法

如何解决我想使用一种部署到服务器后仅被调用一次的方法

不,在每个请求中都不会调用它。它仅在servlet初始化期间被调用,该初始化通常在webapp的生存期内仅发生一次。另请参阅此答案获取更多有关如何创建和执行servlet的详细信息。

如果您实际上想进行一些全局/应用程序范围的初始化(因此,它本身并不仅仅与特定的servlet绑定),那么通常可以使用ServletContextListener。您可以在contextinitialized()方法中进行初始化。

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

@WebListener
public class Config implements servletcontextlistener {
    public void contextinitialized(ServletContextEvent event) {
        // Do stuff during webapp's startup.
    }
    public void contextDestroyed(ServletContextEvent event) {
        // Do stuff during webapp's shutdown.
    }
}

如果您Servlet 3.0尚未上线且无法升级,因此无法使用@WebListener注释,则需要手动注册/WEB- INF/web.xml如下所示:

<listener>
    <listener-class>com.example.Config</listener-class>
</listener>

解决方法

我是Servlet的新手。我想使用一种部署到服务器后仅被调用一次的方法。我看着HttpServlet#init()。但是我发现每个请求都会调用它。我误会了吗?有哪些替代品init()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。