Как вызвать сценарий оболочки из другого сценария оболочки?

Это двухэтапный процесс:

  1. Получить ServletContext, представляющий web2
  2. Получить RequestDispatcher из этого ServletContext соответствующего to servlet2

Итак, что-то вроде этого изнутри servlet1:

ServletContext web1 = getServletContext();
ServletContext web2 = web1.getContext("/web2");
RequestDispatcher dispatcher = web2.getRequestDispatcher("/servlet2");
dispatcher.forward(request, response);

Существует большое предупреждение обо всем этом - контейнер может не быть настроен для разрешения перекрестной пересылки контекста, поскольку это потенциальный риск для безопасности. Если это так, getContext("web2") вернет null.

628
задан Martin Tournoij 14 November 2016 в 07:45
поделиться

1 ответ

Если у Вас есть другой файл в том же каталоге, можно или сделать:

bash another_script.sh

или

source another_script.sh

или

. another_script.sh

, Когда Вы используете bash вместо source, сценарий не может изменить среду родительского сценария. Эти . команда является стандартом POSIX, в то время как source команда является большим количеством читаемого синонима удара для . (я предпочитаю source более чем .). Если Ваш сценарий находится в другом месте, просто обеспечивают путь к тому сценарию. Оба относительных, а также полных пути должны мир.

0
ответ дан 22 November 2019 в 21:44
поделиться