servlet在servlet上下文中存储列表

时间:2010-10-14 20:49:30

标签: java servlets

部署主servlet的时刻,它需要执行计算并准备一个列表。此列表需要由随后调用的其他servlet访问。计算只需要运行一次。有人可以解释如何去做。

感谢

2 个答案:

答案 0 :(得分:3)

您可以使用ServletContextListener并从那里执行计算。


班级档案:

public final class YourListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent event) {
        ServletContext context = event.getServletContext();
        //Calculation goes here
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        //Nothing to do
    }
}

web.xml:

<web-app>
    <!-- ... -->
    <listener>
        <listener-class>ext.company.project.listener.YourListener</listener-class>
    </listener>
    <!-- ... -->
</wep-app>

资源:

答案 1 :(得分:0)

在主servlet初始化方法

public void init(ServletConfig config) throws ServletException {
    super.init(config);

    // do calculations
    ArrayList resultsList = calculate_something();

    // save for other servlets
    config.getServletContext().setAttribute("SAVED_DATA", resultsList);
}

在其他servlet中

// retrieving value from ServletContext
ArrayList list = (ArrayList)getServletContext().getAttribute("SAVED_DATA");