본문 바로가기
WEB/JSP Servlet

기본 객체 : request

by 노랑파랑 2016. 10. 26.
반응형




request

* 웹 브라우저에 웹 사이트의 주소를 입력하면, 웹 브라우저는 해당 웹 서버에 연결을 한 후 요청 정보를 전송하는데, 

 이 요청정보를 제공하는 것이 request 기본 객체이다.



request 제공 기능

* 클라이언트와 관련된 정보 읽기 기능

* 서버와 관련괸 정보 읽기 기능

* 클라이언트가 전송한 요청 파라미터, 헤더 읽기 기능

* 클라이언트가 전송한 쿠키 읽기 기능

* 속성 처리 기능



1. 클라이언트 정보 및 서버 정보 읽기

* 관련 메소드



2. 요청 파라미터 처리

* HTML 폼과 요청 파라미터

        •  입력 요소의 이름(name)은 웹 브라우저가 서버에 전송하는 요청 파라미터의 이름으로 사용된다.

* 요청 파라미터 관련 메소드

        • 같은 name 을 갖는 input은 같은 이름의 파라미터로 전송된다. 이 때 getParameter()는 오직 한개 값, getParameterValues()는 같은 이름으로 전송된 모든 파라미터의 값을 배열로 리턴한다.

* GET / POST 방식

        • GET : 요청 URL에 파라미터를 붙여서 전송한다. URL 경로 뒤에 물음표(?)와 함께 파라미터를 붙여서 전송하는데, 이를 퀘리 문자열이라 한다. 각각의 파라미터는 앰퍼샌드(&) 기호로 구분하며, 파라미터 이름과 값은 등호기포(=)로 구분한다. 이름1=값1&이름2=값2.. GET방식은 URL의 쿼리 문자열로 전송되기 때문에, 폼을 사용하지 않아도 파라미터를 전송할 수 있다. 서버, 컨테이너에 따라 전송 길이 제한이 있다.
        • POST : 데이터 영역을 이용해 데이터를 전송하기 때문에 웹 브라우저나 서버와 상관없이 전송할 수 있는 파라미터 길이 제한이 없다. 

* 요청 파라미터 인코딩

        • 웹 브라우저는 웹 서버에 파라미터를 전송할 때 알맞은 캐릭터 셋을 이용해 파라미터 값을 인코딩한다. 웹 서버는 캐릭터 셋을 이용해 웹 브라우저가 전송한 파라미터 데이터를 디코딩한다. 만약 인코딩할 때의 캐릭터 셋과 디코딩할 때의 캐릭터 셋이 다르면 웹 서버는 잘못된 파라미터 값을 사용하게 된다. 
        • 파라미터 값 사용 전에 setCharacterEncoding() 메소드를 사용해 파라미터 값을 디코딩할 때 사용할 캐릭터 셋을 지정할 수 있다.

* 톰캣에서 GET 방식 파라미터를 위한 인코딩 처리

        • 톰캣 8 이상 버전에서는 GET 방식으로 파라미터 값을 읽어올 때 사용하는 캐릭터 셋 기본값이 UTF-8이다. 다른 캐릭터 셋을 이용하려 할 때는 server.xml 파일에서 <Connector>의 useBodyEncodingForURI="true" 속성을 추가하면 된다.이를 하면 GET 방식의 파라미터 값을 읽어올 때 setCharacterEncoding() 메소드를 이용해 지정한 캐릭터 셋으로 읽어올 수 있다.



3. 요청 헤더 정보의 처리

* 웹 브라우저는 웹 브라우저의 종류, 선호하는 언어에 대한 정보를 헤더에 담아 전송한다. 

* 관련 메소드

메소드 

리턴 타입 

설명 

 getHeader ( String name ) 

 String 

지정한 이름의 헤더 값을 구한다. 

 getHeaders ( String name ) 

 java.util.Enumeration 

지정한 이름의 헤더 목록을 구한다. 

 getHeaderNames()

 java.util.Enumeration 

모든 헤더의 이름을 구한다. 

 getIntHeader ( String name )

 int 

지정한 헤더의 값을 정수 값으로 읽어온다. 

 getDateHeader ( String name )

 long 

지정한 헤더의 값을 시간 값으로 읽어온다.

이때 시간은 1970년 1월 1일 이후로 흘러간 1/1000초 단위의 값을 가진다. 


반응형

'WEB > JSP Servlet' 카테고리의 다른 글

JSP 처리과정, 출력버퍼와 응답  (0) 2016.10.26
기본 객체 : response  (0) 2016.10.26
스크립트 요소  (0) 2016.10.26
Page 디렉티브 : contentType, import, trimDirectiveWhitespace, pageEncoding  (0) 2016.10.26
JSP 기본 요소  (0) 2016.10.25