<include>

- include된 페이지의 내용을 원래 페이지의 삽입하는 것과 같음

- 해당 URL로 제어권을 넘기지만 영구적이지 않고

  include된 페이지의 처리가 끝나면 제어권은 원래의 페이지로 돌아옴


<redirect>

- 지정된 URL로 요청을 재전송

- redirect를 하면 이동할 페이지로 요청, 응답 객체를 새로 생성하여 전송   

그렇게 되면이동한 페이지는 이전 페이지와 데이터를 공유하는게 없고

실제 데이터를 공유할 수도 없다.


<forward>

- 이전 페이지의 데이터를 이동할 페이지로 데이터 이동이 있을 때 사용

==> pageContext객체의 forward, include 메소드를 사용

<% pageContext.forward("이동할 페이지.jsp"); %>

<% pageContext.include("이동할 페이지.jsp"); %>

- 현재 페이지의 요청과 응답에 관한 제어권을 URL로 지정된 주소(매개변수)로 영구적으로 넘김.

포워딩한 페이지의 요청 처리가 종료 되면 응답도 종료

redirect처럼 페이지 재요청이 아닌, 메소드를 호출한다

- 서버가 자동으로 이동 시켜주므로 URL이 그대로인 상태에서 데이터만 공유

- forward 사용방법

1) jsp 액션 태그 사용 : <jsp:forward page = "페이지명">

2) 내장 객체 사용: <% pageContext.forward("페이지명"); %>

3) 서블릿 RequestDispatcher 사용

RequestDispatcher dispatcher = request.getRequestDispatcher(foward.getPath());

dispatcher.forward(request, response);








참조: https://do-dam.tistory.com/

+ Recent posts