개발/servlet
Servlet Request 객체와 Response의 주요 메서드
함수형 인간
2025. 3. 5. 03:37
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¶m=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 응답)
- setStatus(int sc): 응답 상태 코드를 설정. (예: 200, 404, 500)
- 응답 헤더 설정:
- 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)을 설정.