我希望在servlet上下文初始化阶段使用servletContext.setAttributes设置一些应用程序范围的变量。如何实现这一点。
答案 0 :(得分:1)
实施javax.servlet.SevletContextListener
,在javax.servlet.ServletContext
初始化时获得回调。
以下是示例:
public class MyServletContextListener implements ServletContextListener
{
public void contextInitialized(ServletContextEvent sce)
{
ServletContext sc = sce.getServletContext();
//do your initialization here.
sc.setAttribute(.....);
}
public void contextDestroyed(ServletContextEvent sce)
{
ServletContext sc = sce.getServletContext();
//do your cleanup here
}
}
答案 1 :(得分:1)
如果您希望将逻辑绑定到servlet(而不是使用侦听器),则可以覆盖servlet init
方法。像这样:
@Override
public void init() throws ServletException {
ServletContext sc = getServletContext();
// Store our attribute(s)!
// Check first to make sure it hasn't already been set by another Servlet instance.
if (sc.getAttribute("key") == null)
sc.setAttribute("key", "value");
}
您无需致电super.init(config)
。请参阅docs。