12-2. [Servlet] Forward & Redirect

zhyun·2020년 10월 21일
0

HighJava

목록 보기
62/67

예제 14_ServletTest / T02_ServletTest

  • 예제소스에 Forward와 Redirect 사용

  • localhost:9090/14_ServletTest/T02_ServletTest?name=한글
    => 주소창을 위사진과 같이 입력하면 한글이 깨져서 나온다.
    => server.xml 들어가서 <Connector> 부분에 URIEncoding="UTF-8" 추가

Forward방식

  • Web Container차원에서 페이지의 이동만 존재
  • 웹브라우저는 다른페이지로 이동했음을 알수없다 => 웹브라우저에는 최초에 호출한 URL이 표시되고, 이동한 페이지의 URL정보는 확인불가능
  • 현재 실행중인 페이지foward에 의해 호출될 페이지는 Request객체와 Response객체를 공유
  • Foward이동할 URL로 요청정보를 그대로 전달 => 사용자가 최초로 요청한 요청정보는 다음 URL에도 유효
  • 시스템 변화가 생기지 않는 단순 조회요청(글 목록보기, 검색)의 경우 forward로 응답하는 것이 좋음

Redirect방식

  • Redirect는 WebContainer로 명령이 들어오면, 웹브라우저에게 다른 페이지로 이동하라고 명령을 내림
  • 웹브라우저는 URL을 지시된 주소로 바꾸고 해당 주소로 이동
  • 다른 웹컨테이너에 있는 주소로 이동하며 새로운 페이지에서는 Request와 Response객체가 새롭게 생성
  • Redirect의 경우 최초요청을 받은 URL1에서 클라이언트에게 redirect할 URL2를 반환하고, 클라이언트에서는 새로운 요청을 생성하여 URL2에 다시 요청을 보냄
  • 시스템에 변화가 생기는 요청(회원가입, 글쓰기 등)의 경우에는 redirection을 사용하는 것이 좋음
profile
HI :)

0개의 댓글