본문 바로가기
Dev/Java

response 기본 객체

by vellahw 2022. 9. 29.

 

 

response 기본 객체는 웹 브라우저에 보내는 응답 정보를 담는다.

응답 정보와 관련해서 두 가지 기능을 제공 하는데, 헤더 정보 입력리다이렉트 기능을 제공한다.

 

1. 웹 브라우저에 헤더 정보 전송

response 기본 객체가 제공하는 헤더 추가 메소드
메소드 설명
addDateHeader(String name, long date) name 헤더에 date를 추가
date는 1970년 1월 1일 이후 흘러간 시간을 1/1000초 단위로 나타냄
addHeader(String name, String value) name 헤더에 value를 값으로 추가
addIntHeader(String name, int value) name 헤더에 정수값 value를 추가
setDateHeader(String name, long date) name 헤더의 값을 date로 지정
date는 1970년 1월 1일 이후 흘러간 시간을 1/1000초 단위로 나타냄
setHeader(String name, String value) name 헤더의 값을 value로 지정
setIntHeader(String name, int value) name 헤더의 값을정수값 value로 지정
containsHeader(String name) 이름이 name인 헤더를 포함하고 있을 경우 true,
그렇지 않을 경우 false 리턴

이름이 add로 시작하는 메소드는 기존의 헤더에 새로운 값을 추가할 때 사용 되며,

set으로 시작하는 메소드는 새로 헤더의 값을 지정할 때 사용된다.

헤더 정보에는 주로 웹 서버에 대한 정보를 담는 경우가 많으며 JSP 프로그래밍 자체에서는 많이 사용 되지 않는다. 헤더 정보는 부가적인 정보를 지정하는 경우에 많이 사용된다.

 

 

2. 웹 브라우저 캐시 제어를 위한 응답 헤더 입력

JSP를 비롯한 웹 어플리케이션을개발하다 보면 새로운 내용이 DB에 추가 되었는데도 불구하고 웹 브라우저에 출력되는 내용이 바뀌지 않는 경우가 있다. 서버에 실제로 데이터가 변경 되었음에도 불구하고 웹 브라우저가 변경된 내역을 출력하지 않는 이유 중의 하나는 웹 브라우저가 실제 서버가 생성한 결과를 출력하지 않고 캐시에 저장된 데이터를 출력하기 때문이다.

거의 내용이 변경 되지 않는 사이트는 캐시를 통해 보다 빠른 응답을 제공 할 수 있지만, 게시판과 같이 내용이 자주 변경 되는 사이트의 경우 캐시가 적용되면 사용자는 변경된 내용을 확인 할 수 없게 된다.

HTTP는 특수한 응답 헤더를 통해 웹 브라우저가 응답 결과를 캐시할 것인지에 대한 여부를 설정할 수 있다.

  • Cache-Control: 헤더의 값을  "no-cache"로 지정하면 웹 브라우저는 응답결과를 캐시에 저장하지 않는다.
  • Pragma: 헤더의 값을  "no-cache"로 지정하면 웹 브라우저는 응답결과를 캐시에 저장하지 않는다.

 

게시판 구현에서의 Cache-Control,  Pragma 응답 헤더 사용 예 (list_view.jsp : https://tavi.tistory.com/45?category=1089911 )

 

 

3. 리다이렉트를 이용한 페이지 이동

리다이렉트 기능은 response 기본 객체에서 많이 사용되는 기능 중의 하나이다.

리다이렉트 기능이란 웹 서버가 웹 브라우저에게 다른 페이지로 이동하라고 지시하는 것을 의미한다.

예를 들어, 사용자가 로그인에 성공한 후 메인 페이지로 자동으로 이동하는 사이트의 경우가 리다이렉트 기능을 사용한 것이다.

리다이렉트 기능의 흐름

 

리다이렉트 하도록 지시 하기 위해선 response.sendRedirect(String location) 메소드를 이용하면 된다.

 

 

 

 

댓글