forward
- WAS의 서블릿이나 JSP가 요청을 받은 후 그 요청을 처리하다가, 추가적인 처리를 같은 웹어플리케이션 안에 포함된 다른 서블릿이나 JSP에게 위임할 수 있다. 이를 포워드라고 한다.
- 리다이렉트와 다르게 request와 response 객체는 한번 생성된다.
- forward를 사용하면 프로그램 로직 작성에 편리한 서블릿과 HTML 태그 출력이 편리한 JSP를 효과적으로 활용할 수 있다.
실행 과정
- 웹 브라우저에서 Servlet1에게 요청을 보낸다.
- Servlet1은 요청을 처리한 후, 그 결과를 request.setAttribute 메서드를 사용하여 HttpServletRequest에 저장한다.
- Servlet1은 결과가 저장된 HttpServletRequest와 응답을 위한 HttpServletResponse를 RequestDispatcher의 forward 메서드를 사용하여 같은 웹어플리케이션 안에 있는 Servlet2에게 전송(forward)
- Servlet2는 Servlet1으로부터 HttpServletRequest와 HttpServletResponse를 받는다. request.getAttribute 메서드로 Servlet1에서 저장한 결괏값을 불러올 수 있다. 요청을 처리한 후 웹 브라우저에게 결과를 전송