본문 바로가기
Java

JAVA RequestDispatcher

by titlejjk 2023. 5. 26.

Java에서 RequestDispatcher는 서블릿 컨테이너(예:Apache Tomcat)내에서 서블릿끼리의 통신을 위해 사용되는 인터페이스이다.

주로 포워딩(Forwarding)이나 인클루딩(Including)작업을 수행하는데에 활용된다.

  1. 포워딩(Forwarding)
    포워딩은 클라이언트로부터의 요청을 다른 서블릿이나 JSP에게 전달하는 작업니다. 클라이언트의 요청은 처음으로 받은 서블릿이 해당 요청을 처리하는 대신, 다른 서블릿이나 JSP로 전달한다.
    클라이언트는 전달된 서블릿으로부터 응답을 받고 포워딩은 웹 애플리케이션의 여러 구성요소간에 작업을 분리하고 조합하는데 유용하다.
  2. 인클루딩(Including)
    인클루딩은 다른 서블릿이나 JSP의 실행 결과를 현재 페이지에 포함시키는 작업이다.
    인클루된 서블릿의 실행 결과는 포함하는 서블릿의 응답에 결합되어 클라이언트에게 전송된다.
    인클루딩은 코드의 재사용성과 모듈화를 촉진하며, 여러 서블릿이나 JSP간에 결과를 공유할 수 있다,

RequestDispatcher를 사용하기 위해서는 다음과 같은 방법으로 객체를 얻을 수 있다.ServletContext객체를 통한방법

  • ServletContext 객체를 통한 방법
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/targetURL");
  • HttpServletRequest 객체를 통한 방법
RequestDispatcher dispatcher = request.getRequestDispatcher("/targetURL");

RequestDispatcher 객체를 얻은 후에는 다음과 같은 메소드를 사용하여 작업을 수행할 수 있다.

  • forward(HttpServletRequest request, HttpServletResponse response)
    현재 요청(request)와 응답(response)객체를 다른 서블릿이나 JSP로 전달
    전달된 서블릿 또는 JSP가 요청을 처리하고 응답을 생성한 후, 해당 응답이 클라이언트에게 전송된다.
    이후의 코드 실행은 포워딩된 서블릿에서 계속된다.
  • include(HttpServletRequest request, HttpServletResponse response)
    다른 서블릿이나 JSP의 실행 결과를 현재 페이지에 포함시킨다.
    인클루드된 서블릿의 실행 결과는 포함하는 서블릿의 응답에 결합되어 클라이언트에게 전송된다.
    이후의 코드 실행은 포함하는 서블릿에서 계속된다.

RequestDispatcher를 통해 서블릿 간에 요청을 전달하고 결과를 조합함으로써, 코드의 재사용성과 유연성을 높일 수 있다. 포워딩과 인클루딩을 적절히 활용하여 웹 애플리케이션의 구성요소를 모듈화하고 관리할 수 있다.

'Java' 카테고리의 다른 글

JAVA Session scope  (0) 2023.05.31
JAVA JSP  (0) 2023.05.30
JAVA JSP와 Servlet을 사용하여 게시판을 만드는 원리  (2) 2023.05.25
JAVA Servlet  (0) 2023.05.20
JAVA Super  (0) 2023.05.17

댓글