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) 메소드를 이용하면 된다.

'Dev > Java' 카테고리의 다른 글
Tiles를 이용한 컴포지트 뷰 구현 (1) | 2022.09.30 |
---|---|
synchronized 동기화 메소드와 동기화 블록 (1) | 2022.09.29 |
(JSP2.1) 답변형 게시판 구현 - 목록 구현하기 (0) | 2022.09.28 |
FileUpload API를 이용한 파일 업로드 구현 (0) | 2022.09.27 |
파일 전송을 위한 multipart/form-data (0) | 2022.09.27 |
댓글