web应用启动加载

如何在web应用(如:Tomcat)启动时就加载相应的集合?如:省份列表人。 :)
[b]问题补充:[/b]
ServletContextListener
这个监听器还没用过,我想在应用启动的时候就把所有的省份列表放在一个Session,然后在页面取。用Servlet怎么做?谢谢!
[b]问题补充:[/b]
用下面代码实现,应用启动时该Servlet没有加载,只能显示的访问
public class ContentServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    INewsCategoryService service = (INewsCategoryService) WebApplicationContextUtils
            .getWebApplicationContext(
                    request.getSession().getServletContext()).getBean(
                    "newsCategoryService");

    HttpSession session = request.getSession();
    List<NewsCategory> list = new ArrayList<NewsCategory>();
    try {
        list = service.findNumber(10);
        for (NewsCategory c : list) {
            System.out.println(c.getCategoryName());
        }
        session.setAttribute("newsCategoryList", list);
    } catch (ServiceException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}


This is the description of my J2EE component
This is the display name of my J2EE component
ContentServlet
com.youcool.news.web.servlet.ContentServlet
1

[b]问题补充:[/b]
public void contextInitialized(ServletContextEvent arg0) {

。。。。。

}
在这个方法中如何取得Session,应用启动时没有请求!!

用一般的Servlet不行。照我说的做。

在你的Web app里实现ServletContextListener接口,像这样:
[code="java"]public MyServletContextListener implements ServletContextListener{

public void contextInitialized(ServletContextEvent arg0) {
。。。。。
}
public void contextDestroyed(ServletContextEvent arg0) {
。。。。
}
}
[/code]
加入集合。
然后在web.xml里面添加:

MyServletContextListener


即可。

[quote]ServletContextListener
这个监听器还没用过,我想在应用启动的时候就把所有的省份列表放在一个Session,然后在页面取。用Servlet怎么做?[/quote]
将取得的省份列表放在
[code="java"]public void contextInitialized(ServletContextEvent arg0) {

。。。。。

}[/code]
函数里面进行session设置即可。

[code="java"] public void contextDestroyed(ServletContextEvent arg0) {

。。。。

} [/code]
进行资源的销毁。

[quote]public void contextInitialized(ServletContextEvent arg0) {

。。。。。

}
在这个方法中如何取得Session,应用启动时没有请求!![/quote]
那么设置一个单例,将省份列表产生实例后有单例获取。要设置到Session,直接从单例中得到。