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 |