Spring MVC를 공부하닥 Servlet의 forward(), include() 메소드를 사용하게 되었다.
도 메서드의 동작 방식이 궁금해서 공부 후 궁부한 내용을 정리해 보았다.
우선 두 메서드는 RequestDispatcher 인터페이스의 일부로 servlet 애플리케이션에서 요청 흐름을 재지어하거나 여러 리소스의 결과를 통합하는 데 중요한 역할을 한다.
forward() 메서드는 클라이언트의 요청으로 생성된 request와 response 객체를 다른 자원에 전달하고, 수행 제어를 완전히 넘겨서 다른 자원의 수행 결과를 클라이언트로 응답하도록 한다. 이 과정에서 원래 페이지의 출력은 무시되고, 포워딩된 대상 페이지의 출력만이 클라이언트에게 전달된다.
forward() 메서드를 사용하기 위해서는 먼저 RequestDispatcher 객체를 획득해야 한다. 아래는 기본적인 사용 예시 코드이다.
RequestDispatcher dispatcher = request.getRequestDispatcher("target.jsp");
dispatcher.forward(request, response);
위 코드는 현재 요청을 처리를 "target.jsp"로 전달하고, 해당 JSP가 최종 응답을 생성한다.
include() 메서드는 처리 흐름 제어를 특정 대상에게 넘기고, 대상이 처리한 결과를 현재 페이지에 포함시키는 기능을 제공한다. forward() 메서드와 달리 include() 메서드는 제어를 넘긴 대상 페이지의 처리가 완료되면 처리 결과와 함께 원래 페이지로 제어가 돌아오고, 이후 나머지 처리를 계속하게 된다.
include() 메서드도 RequestDispatcher 객체를 통해 사용됩니다.
RequestDispatcher dispatcher = request.getRequestDispatcher("include.jsp");
dispatcher.include(request, response);
위 예제 코드는 "include.jsp"의 처리 결과를 현재 페이지에 포함시킵니다.
Spring MVC 구조 (0) | 2025.05.20 |
---|---|
ModelAndView란? (0) | 2025.05.17 |
BeanFactory와 ApplicationContext의 차이점 (0) | 2025.02.16 |
Bean Lifecycle (0) | 2024.08.18 |
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 해결하기 (0) | 2022.07.07 |
댓글 영역