我希望在Servlet上下文初始化階段使用servletContext.setAttributes設置幾個應用程序範圍的變量。如何實現這一點。如何編寫自定義servlet上下文初始化方法
1
A
回答
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
如果你想以配合你的邏輯更接近的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。
相關問題
- 1. 如何初始化自定義HTTP上下文或HttpContextBase
- 2. Servlet過濾器 - 上下文初始化
- 3. 自定義SCNView的初始化方法
- 4. 自定義MembershipProvider初始化方法
- 5. 以編程方式用自定義文本初始化NSTextfield
- 6. 如何爲自定義處理器配置「初始化」方法
- 7. 如何初始化自定義ItemReader?
- 8. 如何初始化自定義類?
- 9. 初始化自定義UIViewController
- 10. 初始化自定義UICollectionViewCell
- 11. 初始化自定義類
- 12. 自定義AlertDialog無法初始化onCreate()
- 13. 強制用戶使用自定義初始化方法進行初始化
- 14. 如何初始化上下文?
- 15. 自動生成自定義初始化方法
- 16. 在自定義初始化方法中自動釋放
- 17. Spring上下文初始化
- 18. JayData無法初始化上下文
- 19. 無法初始化上下文
- 20. Tapestry - Spring - 無法初始化上下文
- 21. 無法初始化上下文
- 22. 如何編寫支持對象初始化程序的自定義DynamicObject類
- 23. 如何編寫防止viewDidLoad被調用的自定義初始化程序?
- 24. 如何初始化JMS中的初始上下文
- 25. 如何在文本文件上重新初始化java servlet
- 26. 自定義類=自定義+分配,自定義+初始化
- 27. 如何從servlet初始化方法獲取請求參數
- 28. 定義Servlet上下文
- 29. 最佳做法,如何初始化自定義類型?
- 30. 如何在啓動時初始化()/初始化()一個Scalatra servlet?
太棒了!正是我想要的.thx – Lopakhin
不應該使用'@ WebListener'來註銷'MyServletContextListener'嗎?請參閱[文檔](http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/WebListener.html)。 –
當然你必須在某個地方定義你的Listener。通過1)Annoatation 2)在web.xml或3)在TLD中。 –