部署主servlet的时刻,它需要执行计算并准备一个列表。此列表需要由随后调用的其他servlet访问。计算只需要运行一次。有人可以解释如何去做。
感谢
答案 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");