Как я могу разделить переменную или объект между двумя или более сервлетами?
Автор вопроса: David AmellerОтветов: 6
Я хотел бы знать, есть ли способ поделиться переменной или объектом между двумя или более сервлетами, я имею в виду какой-то "стандартный" способ. Я предполагаю, что это не очень хорошая практика, но это более простой способ создания прототипа.
Не знаю, зависит ли это от используемых технологий, но я буду использовать Tomcat 5.5
Я хочу поделиться вектором объектов простого класса (только общедоступные атрибуты, строки, целые числа и т. д.). Мое намерение состоит в том, чтобы иметь статические данные, такие как в БД, очевидно, что они будут потеряны при остановке Tomcat. (это просто для тестирования)
Это во многом зависит от того, какой это объект/переменная. Принадлежит ли переменная одному классу, и вам просто нужен доступ? Это константа? Пример был бы хорош. Swati 24.09.2008
приложение - длится до тех пор, пока приложение не будет закрыто
Вы можете получить доступ ко всем этим областям через переменную HttpServletRequest, которая передается методам, расширяющимся от класс HttpServlet
Ответ 3 · рейтинг 7 · shemnon
Зависит от области предполагаемого использования данных.
Если данные используются только для каждого пользователя, например информация о входе пользователя, количество просмотров страниц и т. д., используйте объект сеанса (httpServletRequest.getSession().get/setAttribute(String [,Object]))
Если это одни и те же данные для нескольких пользователей (общее количество посещений веб-страницы, рабочие потоки и т. д.), используйте атрибуты ServletContext. servlet.getServletCongfig().getServletContext().get/setAttribute(String [,Object])). Это будет работать только в пределах одного и того же файла войны/веб-приложения. Обратите внимание, что эти данные также не сохраняются при перезапусках.
Ответ 4 · рейтинг 2 · ggrandes
Другой вариант, обмен данными между контекстами...
Использует контекст сервера, где синглтон записывается во время запуска встроенного сервера Jetty и используется всеми веб-приложениями на протяжении всего срока службы сервера. Также может использоваться для обмена объектами/данными между веб-приложениями при условии, что в контексте есть только один писатель, в противном случае вам нужно помнить о параллелизме.