Servlet Request 객체와 Response의 주요 메서드

2025. 3. 5. 03:37·개발/servlet

 

1. HttpServletRequest (요청 객체)

HttpServletRequest 객체는 클라이언트의 HTTP 요청 정보를 담고 있다.

  • 요청 정보 획득:
    • getMethod(): String - 요청 메서드(GET, POST, PUT, DELETE 등)를 반환.
    • getRequestURI(): String - 요청 URI(Uniform Resource Identifier)를 반환. (URL에서 호스트와 포트 부분을 제외한 경로)
    • getRequestURL(): StringBuffer - 전체 요청 URL을 반환.
    • getServletPath(): String - 서블릿 매핑 경로를 반환.
    • getQueryString(): String - URL의 쿼리 스트링(query string)을 반환. (예: ?name=value&param=value)
    • getProtocol(): String - 프로토콜 (예: HTTP/1.1) 반환
    • getServerName(): String - 서버의 호스트 이름을 반환.
    • getServerPort(): int - 서버의 포트 번호를 반환.
    • getRemoteAddr(): String - 클라이언트의 IP 주소를 반환.
    • getRemoteHost(): String - 클라이언트의 호스트 이름을 반환.
    • getRemotePort(): int - 클라이언트의 포트 번호
  • 요청 헤더 정보:
    • getHeader(String name): String - 지정된 헤더의 값을 반환.
    • getHeaders(String name): Enumeration - 지정된 헤더의 모든 값을 반환.
    • getHeaderNames(): Enumeration - 모든 헤더 이름들을 반환.
    • getIntHeader(String name): int - 지정된 헤더의 값을 int로 반환. (없으면 -1)
    • getDateHeader(String name): long - 지정된 헤더 값을 Date값으로 파싱해서 long 타입으로 반환 (없으면 -1)
  • 요청 파라미터 (Parameters):
    • getParameter(String name): String - 지정된 파라미터의 값을 반환. (값이 없으면 null)
    • getParameterValues(String name): String[] - 지정된 파라미터의 모든 값을 배열로 반환. (값이 없으면 null)
    • getParameterNames(): Enumeration - 모든 파라미터 이름들을 반환.
    • getParameterMap(): Map<String, String[]> - 모든 파라미터를 Map 형태로 반환.
  • 요청 본문 (Body):
    • getReader(): BufferedReader - 요청 본문을 텍스트로 읽기 위한 BufferedReader를 반환. (주로 JSON, XML 파싱에 사용)
    • getInputStream(): ServletInputStream - 요청 본문을 바이트 스트림으로 읽기 위한 ServletInputStream을 반환. (파일 업로드 등)
    • getContentLength(): int - 요청 본문의 길이(바이트)를 반환. (long 타입을 원하면 getContentLengthLong())
    • getContentType(): String - 요청 본문의 콘텐츠 타입(MIME 타입)을 반환.
    • getCharacterEncoding(): String - 요청 본문의 문자 인코딩을 반환
  • 속성 (Attributes):
    • setAttribute(String name, Object value): 요청에 속성(attribute)을 추가. (서블릿 간 데이터 공유에 사용)
    • getAttribute(String name): Object - 지정된 속성의 값을 반환. (없으면 null)
    • getAttributeNames(): Enumeration - 모든 속성 이름들을 반환.
    • removeAttribute(String name): 지정된 속성을 제거.
  • 세션 (Session):
    • getSession(): HttpSession - 현재 세션을 반환하거나, 없으면 새 세션을 생성.
    • getSession(boolean create): HttpSession - 현재 세션을 반환하거나, create가 true이면 새 세션을 생성하고, false이면 null을 반환.
  • 쿠키 (Cookie):
    • getCookies(): Cookie[] - 클라이언트가 보낸 모든 쿠키를 배열로 반환. (없으면 null)
  • 기타:
    • getLocale() : Locale - 클라이언트가 선호하는 로케일(언어, 국가)
    • getLocales() : 클라이언트가 사용 가능한 로케일 목록
    • isSecure(): boolean - 요청이 HTTPS를 사용하는지 여부를 반환.
    • getServletContext(): ServletContext - 웹 애플리케이션의 ServletContext 객체를 반환.

2. HttpServletResponse (응답 객체)

HttpServletResponse 객체는 클라이언트에 보낼 HTTP 응답을 생성하는 데 사용.

  • 응답 설정:
    • setStatus(int sc): 응답 상태 코드를 설정. (예: 200, 404, 500)
      • SC_OK, SC_NOT_FOUND 등 HttpServletResponse 상수를 사용할 수 있다.
    • sendError(int sc): 오류 상태 코드를 설정하고, 오류 메시지를 보냄.
    • sendError(int sc, String msg): 오류 상태 코드와 메시지를 설정.
    • sendRedirect(String location): 클라이언트를 지정된 URL로 리디렉션. (302 Found 응답)
  • 응답 헤더 설정:
    • setHeader(String name, String value): 지정된 헤더의 값을 설정.
    • addHeader(String name, String value): 지정된 헤더에 값을 추가.
    • setIntHeader(String name, int value): 지정된 헤더에 int 값을 설정.
    • setDateHeader(String name, long date): 지정된 헤더에 날짜 값을 설정.
    • containsHeader(String name): boolean - 지정된 헤더가 이미 설정되어 있는지 확인.
  • 응답 본문 (Body) 출력:
    • getWriter(): PrintWriter - 응답 본문을 텍스트로 출력하기 위한 PrintWriter를 반환. (HTML, JSON, XML 등)
    • getOutputStream(): ServletOutputStream - 응답 본문을 바이트 스트림으로 출력하기 위한 ServletOutputStream을 반환. (이미지, 파일 다운로드 등)
    • setContentType(String type): 응답 본문의 콘텐츠 타입(MIME 타입)을 설정. (예: text/html; charset=utf-8)
    • setCharacterEncoding(String charset): 응답 본문의 문자 인코딩을 설정. (예: UTF-8)
    • setContentLength(int len): 응답 본문의 길이(바이트)를 설정. (long 타입을 원하면 setContentLengthLong())
  • 쿠키 설정:
    • addCookie(Cookie cookie): 클라이언트에 쿠키를 설정.
  • 기타:
    • setLocale(Locale loc): 응답의 로케일(Locale)을 설정.

 

저작자표시 비영리 변경금지 (새창열림)

'개발 > servlet' 카테고리의 다른 글

HttpSession 과 Cookie 인터페이스 정리  (0) 2025.03.05
ServletConfig 인터페이스 정리  (0) 2025.03.05
ServletContext 인터페이스 정리  (0) 2025.03.05
Servlet RequestDispatcher 정리  (0) 2025.03.05
Servlet은 어떤식으로 작동할까?  (0) 2025.03.05
'개발/servlet' 카테고리의 다른 글
  • ServletConfig 인터페이스 정리
  • ServletContext 인터페이스 정리
  • Servlet RequestDispatcher 정리
  • Servlet은 어떤식으로 작동할까?
함수형 인간
함수형 인간
잘 까먹는 개발자의 두뇌 확장 장치
  • 함수형 인간
    개발 기록 노트
    함수형 인간
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 글 목록 (84)
      • 기타 (1)
      • 개발 (82)
        • Java (6)
        • Javascript (1)
        • Spring (20)
        • jQuery (0)
        • Git (0)
        • servlet (11)
        • JSP (6)
        • HTML (0)
        • CSS (10)
        • SQL (9)
        • JSTL (3)
        • Mybatis (4)
        • Design Patterns (0)
        • HTTP (2)
        • Devtools (0)
        • IntelliJ (5)
        • JDBC (1)
        • Lombok (3)
        • Logging (1)
      • 책 리뷰 (0)
  • hELLO· Designed By정상우.v4.10.3
함수형 인간
Servlet Request 객체와 Response의 주요 메서드
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.