병갈이 블록

Response 기본객체 본문

IT(Old)/JSP 공부 기록

Response 기본객체

woojang 2017. 6. 18. 20:42

response객체의 기능

1. Header 정보 입력.

2. Redirect 하기.



Header관련 메서드

1. add - 헤드에 값을 '추가'하는 메서드.

- addDateHeader(String name, long date) : name헤더에 date를 추가. (1970년 1월 1일 이후로 지금까지 지난 시간. 1/1000초 단위) 

- addHeader(String name, String value) : name헤더에 value값으로 헤더를 추가.

- addIntHeader(String name, int value) : name헤더에 value를 추가.

2. set - 최초에 값을 '지정'하는 메서드.

- setDateHeader(String name, long date) : name헤더의 값을 date로 지정. (1970년 1월 1일 이후로 지금까지 지난 시간. 1/1000초 단위)

- setHeader(String name, String value) : name헤더의 값을 value로 지정.

- setIntHeader(String name, int value) : name헤더의 값을 value로 지정.

3. boolean containsHeader(String name) : name인 헤더를 포함하면 true, 없으면 false 반환.


웹 브라우저에서 새로운 내용을 DB에 추가했음에도 화면이 바뀌지 않는다? 캐시로 인해 새로 바뀐 페이지를 불러오지 못함.

캐시 : 동일한 URI(URL)로 접근시 WAS(Web Application Server)에 페이지를 요청하지 않기위해 이용하는 클라이언트에 저장된 정보.


Cache관련 속성

○ Cache-Control : HTTP 1.1 지원. 

"no-cache"로 설정시 응답결과를 캐시하지 않음.(but, 뒤로가기 버튼 사용 시 캐시를 이용함.)

"no-store"추가하면 아예 캐시저장소를 이용하지 않음.

○ Pragma : HTTP 1.0 지원.  "no-cache" 이용.

○ Expire : HTTP 1.0 지원. 응답결과 만료일 지정. 

-> 1L(long타입의 1. 1970년 1월 1일 0시)로 설정 시 현재시간보다 이전으로 지정되어 캐시가 저장되지 않음.


// 캐시 미사용시 아래와 같은 코드가 들어가 있어야함.

<%

    response.setHeader("Cache-Control", "no-cache");    

    response.addHeader( "Cache-Control", "no-store");    // "Cashe-Control"헤더에 "no-store"를 추가.

    response.setHeader("Pragma", "no-cache");    // "Pragma"헤더를 추가.

    response.setDateHeader("Expire", 1L);    // "Expire"헤더를 1L값으로 추가.

%>


Redirect하기

- response.sendRedirect(String location);


** 쿼리를 URL로 이용할 때 주의점.

charset을 기억하는가.. location에 들어가는 문자열까지 인코딩해주지는 않기에 인코딩 된 문자열을 넣어줘야한다.

(영어, 숫자, 일부 기호 빼고..)

<%@ page contentType="text/html; charset=utf-8"%>

<%@ page import="java.net.URLEncoder"%>    //java.net.URLEncoder를 임포트한다.


<%

    String value = "자바";

    String encodedValue = URLEncoder.encoded(value, "utf-8");   //value를 "utf-8"로 인코딩하여 변환 된 문자열을 대입.

    response.sendRedirect("/char03/index.jsp?name="+encodedValue);

%>


<공부하는 내용을 정리하기 위해 쓰는 포스트입니다. 비난, 비방은 바로 삭제하고 교정이나 가르침은 감사하겠습니다.^^>

'IT(Old) > JSP 공부 기록' 카테고리의 다른 글

JSP 처리 과정에 대해서.  (0) 2017.06.19
Buffer와 autoFlush  (0) 2017.06.19
요청 헤더  (0) 2017.06.17
GET, POST방식에 대한 이해.  (0) 2017.06.17
Request기본 객체  (0) 2017.06.17
Comments