Это двухэтапный процесс:
- Получите
ServletContext
, представляющий web2
- Получите
RequestDispatcher
из этого ServletContext
, соответствующего servlet2
Итак, как-то так изнутри servlet1
:
ServletContext web1 = getServletContext();
ServletContext web2 = web1.getContext("/web2");
RequestDispatcher dispatcher = web2.getRequestDispatcher("/servlet2");
dispatcher.forward(request, response);
Существует большое предостережение во всем этом - контейнер не может быть настроен для разрешения пересылки из контекста, поскольку это потенциальная угроза безопасности. Если это так, getContext("web2")
вернет null
.