TIL 47 | [JSP] 내장 객체(Implicit Object) - response 객체

Yoonsik·2022년 10월 8일
1

JSP

목록 보기
6/12

⛓ response 내장객체

response 내장객체는 request 내장객체와는 반대되는 개념으로, 사용자 응답과 관련된 기능을 제공합니다.
또, 페이지 이동이나, 응답헤더를 추가할 때도 사용합니다.

client 요청을 처리하고, 해당 요청에 대한 응답을 웹 브라우저로 보내주는 역할을 합니다.

🔗 response 객체의 기능

  • 페이지 이동을 위한 리다이렉트(redirect) 지정
  • 헤더 정보전달
  • 쿠키전달

이 외에도 몇가지 기능이 더 있으나, JSP에서는 거의 사용하지 않습니다.

🔗 response 객체의 주요 메소드

메소드설명
sendRedirect()클라이언트의 요청을 다른 페이지로 보낸다. (페이지 이동)

⛓ JSP 환경에서 현재 작업중인 페이지에서 다른페이지로 이동시키는 방식 - Forward, Redirect

🔗 Forward 방식

웹 컨테이너 차원(WAS)에서만 페이지가 이동합니다. (웹 컨테이너 차원에서 페이지 이동만이 존재) 따라서, 실제로 웹 브라우저는 다른 페이지로 이동하였음을 알 수 없습니다.

그렇기 때문에, 웹 브라우저에는 처음 호출한 URL이 표시되고, Forward 방식을 통해 이동한 페이지에 대한 URL 정보는 표시되지 않아, 확인할 수 없습니다.

또, 현재 실행중인 페이지와 Forward에 의해 호출된 페이지는 request 객체와 response 객체를 공유합니다.


Forward 방식은 다음 이동한 URL로 요청정보를 그대로 전달합니다.
따라서, 사용자가 최초로 요청한 요청정보는 Forward 방식으로 이동한 다음 URL에서도 유효합니다.

현재 실행중인 페이지와 Forward에 의해 호출된 페이지가 request 객체와 response 객체를 공유하는 이유도 여기에 있습니다.
왜냐하면 최초로 요청한 요청정보가 이동한 페이지에도 그대로 전달되기 때문에, 결국 같은 요청에 대한 처리를 하는꼴이 됩니다.
따라서, 첫 번째 요청에 대한 처리를 하였던 request, response 객체를 공유하여 재사용을하는것이 가능합니다.


🔗 Redirect 방식

웹 컨테이너로 Redirect 명령이 들어오면, 웹 브라우저에게 다른 페이지로 이동하라고 명령을 내립니다.
그러면, 웹 브라우저는 URL을 지시된 주소로 바꾸고, 해당 주소로 이동합니다.
다른 웹 컨테이너(서버)에 있는 주소로 이동하며 새로운 페이지에서는 Request, Response 객체가 새롭게 생성됩니다.

Redirect의 경우, 최초 요청을 받은 URL1에서 클라이언트에게 Redirection할 URL2(이동할 페이지 주소)를 반환하고, 클라이언트에서는 새로운 요청을 생성하여 URL2에 요청을 다시 보냅니다.
따라서 처음 보냈던 최초의 Request, Response 객체는 유효하지 않게되고, 새로운 요청에 대한 Request, Response 객체가 새롭게 생성됩니다.


🔗 Forward 방식과 Redirect 방식의 차이점

Forward 방식Redirect 방식
JSP 액션태그이다.JSP 내장 객체의 메소드이다.(Response)
웹 브라우저의 URL이 변화하지 않는다.웹 브라우저의 URL이 변화한다.
객체를 재사용한다. (공유)객체를 재사용하지 않는다. (새로운 요청)
시스템 변화가 생기지 않는 요청에 적합하다. (검색 등의 단순조회)시스템 변화가 생기는 요청에 적합하다. (로그인, 글쓰기 등)

[참고]

https://doublesprogramming.tistory.com/63
https://mangobab.tistory.com/16
https://mangkyu.tistory.com/51

profile
꾸준함의 힘

0개의 댓글