자바(Java)/JAVA 2EE

사용자의 요청 정보를 담고 있는 ServletRequest 인터페이스

본클라쓰 2010. 12. 8. 17:17

 

 ServletRequest 인터페이스는 클라이언트로부터 온 요청에 대한 정보를 서블릿에게 전달하기 위해 사용되는 인터페이스이다. 서블릿 컨테이너는 클라이언트로부터 온 요청을 ServletRequest 인터페이스를 구현한 Request객체를 생성해 서블릿에게 전달해 준다. 따라서 Request 객체에 사용되는 메소드를 미리 정의해 놓은 인터페이스이다.

 

ServletRequest 인터페이스는 매개변수의 이름과 값, 매개변수의 속성, 입력 스트림을 얻을 수 있는 메소드를 미리 정의해 놓았다.

 

ServletRequest 인터페이스 메소드

메소드

설명

Enumeration getAttributeNames()

요청이 갖는 속성들의 이름에 대한 Enumeration 객체 반환

Object getAttribute(String name)

주어진 name의 속성 값을 반환

void setAttribute(String key, Object obj)

주어진 이름의 속성을 설정

String getCharacterEncoding()

요청에 사용된 문자인코딩을 반환

int getContentLength()

요청에 포함되어 있는 데이터의 길이를 반환하며, 길이를 알 수 없는 경우 -1을 반환

String getContentType()

요청에 포함되어 있는 내용에 대한 MIME 타입을 반환. 알수 없는 경우 null를 반환

Enumeration getParameterNames()

매개변수들의 이름에 대한 Enumeration 객체를 반환

String[] getParameterValues(String name)

주어진 이름으로 변수가 갖는 모든 값을 문자열 배열로 반환(HTML 입력요소가 리스트나, 선택박스 일 때 사용하는 메소드)

String getProtocol()

프로토콜 및 major/minor 버전을 반환

String getRemoteAddr()

클라이언트의 IP주소를 반환

String getRemoteHost()

클라이언트의 호스트 이름을 반환

String getServerName()

요청을 받은 서버의 이름을 반환

int getServerPort()

요청을 받은 포트 번호를 반환

BufferedReader getReader()

요청 바디로부터 문자 인코딩에 따라 텍스트를 읽어 들이기 위한 BufferedReader객체를 반환

ServletInputStream getInputStream()

요청 바디로부터 바이너리 데이터를 읽어들이기 위해 한 라인씩 읽을 수 있는 ServletInputStream객체를 반환

 

 

ServletInputStream 클래스

 

 ServletInputStream 클래스는 클라이언트로 온 바이너리 데이터를 읽기 위한 입력 스트림(input stream)과 한번에 한 라인씩 읽을 수 있도록 해주는 readLine() 메소드를 제공합니다. 일반적으로 ServletRequest.getInputStream()메소드를 사용해 ServletInputStream객체를 얻는다.

 

int readLine(byte[] b, int off, int len): 입력 스트림에서 한번에 한 라인씩 읽어들인다. 만약, 반환값이 -1이면 더 이상 데이터가 존재하지 않는다는 것을 의미한다.