JSP Загрузка большого объема данных в память? - PullRequest
2 голосов
/ 12 июля 2011

как я могу загрузить данные в память с сервера tomcat?

У меня есть класс Java, который загружает данные из файла.я хочу загрузить данные в память один раз, и каждый раз, когда клиент запрашивает страницу, которая использует этот класс, данные будут использоваться из памяти.

например

class MyClass
{
      HashMap data = new HashMap(100);
      public void LoadDataFromFile()
      {.....}
      public void UseTheData(String input)
      {....}
      public MyClass(){ LoadDataFromFile();}  // c'tor load data
      public SetInput(String Input)
      {
           UseTheData(input);
      }
}

и вмой файл jsp

Myclass myclass= new MyCass();
myclass.LoadDataFromFile();
myclass.UseTheData();

я знаю, что я должен использовать JSTL в файле jsp

, если я использую область = "сессия", загрузка данных останется?

<jsp:useBean id="myclass" class="MyClass" scope="session">
<jsp:setProperty name="myclass" property="input" value="blabla" />
</jsp:useBean>

если я выполняю загрузку данных в конструкторе, могу ли я убедиться, что класс init только один раз?

1 Ответ

3 голосов
/ 12 июля 2011

Создайте ServletContextListener и зарегистрируйте его в файле web.xml.В ServletContextListener при инициализации приложения прочитайте файл и сохраните его в атрибуте ServletContext.Этот атрибут затем легко доступен из вашего кода Java и JSP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...