如何解决我想使用一种部署到服务器后仅被调用一次的方法
不,在每个请求中都不会调用它。它仅在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 举报,一经查实,本站将立刻删除。