Реализуйте ServletContextListener
, выполните желаемую задачу загрузки во время contextInitialized()
и сохраните результат в области приложения на ServletContext#setAttribute()
. Он будет вызван во время запуска сервера, а область приложения доступна и внутри обычных сервлетов.
Базовый пример:
public class Config implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
List<Foo> foos = fooDAO().list();
event.getServletContext().setAttribute("foos", foos);
}
}
Отобразите это на карте web.xml
обычным способом:
<listener>
<listener-class>mypackage.Config</listener-class>
</listener>
Вот как получить к нему доступ в обычных сервлетах:
protected void doSomething(request, response) {
List<Foo> foos = (List<Foo>) getServletContext().getAttribute("foos");
}
А вот как вы можете получить к нему доступ в JSP:
<c:forEach items="${foos}" var="foo">
${foo.someProperty}<br>
</c:forEach>
Тем не менее, я действительно не понимаю, как это связано с "пулом сервлетов". Этот термин не имеет смысла.
Надеюсь, это поможет.