По какой причине метод RequestDispatcher.forward () возвращается к вызывающему сервлету? Какой смысл возвращаться, если мы не можем внести изменения в ответ? - PullRequest
0 голосов
/ 03 января 2019

Я просто хочу понять цель возврата к вызывающему сервлету после выполнения перенаправленного сервлета.

В следующем примере просто показано, что после выполнения перенаправленного сервлета управление возвращается обратно к вызывающему сервлету.

//servlet1 Code (Forwarding to servlet2)   
@WebServlet("/servlet1")
public class Login extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

      RequestDispatcher rd = request.getRequestDispatcher("servlet2");
      rd.forward(request, response);

      System.out.println("Returned to Calling Servlet");
   }
}

//servlet2 Code (returning control to servlet1)  
@WebServlet("/servlet2")
public class WelcomeServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    String n = "to Servlet2";
    out.print("Welcome " + n);
   }
}

Вывод ::

Добро пожаловать в Servlet2 (в браузере)

Вернулся к серверу вызова (в консоли)

Требуется уточнение:

После подтверждения ответа, почему он возвращается обратно к servlet1

...