본문 바로가기

DEVELOPMENT/JSP

[JSP] Forward, Redirect

Forwarding(요청 전달 처리)

 

- 요청을 구분하여 처리할 서블릿을 결정하는 경우

- 처리를 여러 단계의 서블릿으로 구분하여 필요한 단계로 바로 이동하는 경우

- 브라우저에 표시되는 경로를 숨기고 싶은 경우

- 요청시 생성된 request, response 객체의 값이 유지

request.setAttribute("키값", 데이터);
request.getAttribute("키값");
request.getRequestDispatcher("이동할 URL").forward(request, response);

 

 

Redirecting(다시 요청)

 

- 요청을 검증하여 알맞은 페이지로 요청을 하도록 처리하려는 경우

- 에러 또는 예외 처리에 대한 결과 페이지를 처리하려는 경우

- 브라우저에 주소 창에 경로가 표시됨(redirect페이지 경로로 표시)

- 새로운 요청이므로 request, response 객체는 새로 생성

response.sendRedirect("이동할 URL");

 

 

Forward vs Redirect

 

  Forward 방식 Redirect 방식
처리방법 응답을 위임함. 요청 전달 처리 페이지 자체를 이동함. 다시 요청
페이지 전환 주체 서버 클라이언트
페이지이동 Web Container 차원에서의 페이지 이동만 존재
실제 페이지 이동 X
Web Container는 redirect 명령이 들어오면 웹 브라우저에게 다른 페이지로 이동하라는 명령을 내림
즉, 다른 페이지를 호출해서 이동
url 웹 브라우저에는 최초에 호출한 url이 표시
(url 주소는 바뀌지 않는다.)
웹 브라우저는 url을 redirect된 주소로 변경
객체 현재 실행중인 페이지와 forward에 의해 호출된 페이지는 request와 resonse 객체를 공유 새로운 페이지에서는 request, response 객체가 새롭게 생성 (request와 resonse 객체를 공유하지 않음)
과정 1. 클라이언트가 서버에 요청
2. 서버는 Web Container에 의해 다른 주소로 forward. 이때 객체 정보도 같이 전달
3. 서버는 새 주소에서 반환한 결과를 응답
1. 사용자가 링크를 클릭 (클라이언트가 서버에 요청)
2. 서버가 클라이언트에 Redirect 주소 보냄
3. 클라이언트는 서버에게 받은 새로운 주소로 재요청
4. 서버 응답

 

 

 

'DEVELOPMENT > JSP' 카테고리의 다른 글

[JSP] Cookie, Session  (0) 2023.03.05
[JSP] DTO, 자바빈즈, DAO  (0) 2023.03.05
[JSP] 내장 객체  (0) 2023.03.05
[JSP] 지시어, 스크립트 요소  (0) 2023.03.05
[JSP] 기본 용어 정리  (0) 2023.03.05