Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как запустить один сервлет из другого 
:(
    Опции темы
N2zEast
Дата 22.3.2005, 15:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











как запустить один сервлет из другого?
  Вверх
batigoal
Дата 22.3.2005, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Цитата

Вызов сервлетов из сервлетов
Для того, чтобы один сервлет мог вызывать другой, вам необходимо или: Чтобы сервлет мог выполнять HTTP запросы другого сервлета. (Открытие соединения с URL описано в уроке «Работа с URL» данного руководства,) или Чтобы сервлет мог напрямую вызывать public-методы другого сервлета в случае, если оба сервлета работают на одном сервере. Данный раздел относится ко второму пункту условия. Для того чтобы напрямую вызвать public-методы другого сервлета необходимо:
Знать имя вызываемого сервлета
Получить доступ к объекту Servlet сервлета
Вызвать public-метод сервлета

Чтобы получить доступ к объекту Servlet, используйте метод getServlet объекта ServletContext. Получите объект ServletContext из объекта ServletConfig, который хранится в объекте Servlet. Данный пример позволит вам это сделать. Когда сервлет BookDetail вызывает сервлет BookDB, сервлет BookDetail получает объект Servlet сервлета BookDB таким образом:

public class BookDetailServlet extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
... BookDBServlet database = (BookDBServlet) getServletConfig().getServletContext().getServlet("bookdb"); ... } }

Если у вас есть объект servlet, вы можете вызвать любой из public-методов сервлета. Например, сервлет BookDetail вызывает метод getBookDetails сервлета BookDB: public class BookDetailServlet extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ... BookDBServlet database = (BookDBServlet) getServletConfig().getServletContext().getServlet("bookdb"); BookDetails bd = database.getBookDetails(bookId);
... } } Будьте осторожными при вызове других методов сервлета. Если сервлет, к которому вы хотите обратиться, реализует интерфейс SingleThreadModel, ваш вызов сервлета может нарушить его однопотоковую природу (у сервера нет возможности вмешаться и гарантировать то, что вы вызываете сервлет не в тот момент, когда он взаимодействует с другим клиентом). В этом случае вместо того, чтобы напрямую вызывать методы другого сервлета, необходимо сделать HTTP запрос.


Прошу прощения за качество, это из ПДФки.
Добавлено @ 16:22
А я сам использовал первый метод - отправлял POSTом урл и читал присылаемый сервлетом объект.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.