자바 서블릿 API의 주요 인터페이스
- Servlet
- 서블릿을 구현하기 위한 기본 인터페이스예요.
- 서블릿 생명주기를 정의하는 메서드들을 포함하고 있어요.
- 주요 메서드: init(), service(), destroy()
- ServletRequest
- 클라이언트의 요청 정보를 제공하는 인터페이스예요.
- 주요 메서드: getParameter(), getAttribute(), getInputStream()
- ServletResponse
- 서버가 클라이언트에게 응답을 보낼 때 사용되는 인터페이스예요.
- 주요 메서드: getWriter(), setContentType(), getOutputStream()
- HttpServletRequest
- ServletRequest를 확장하여 HTTP 프로토콜의 요청 정보를 제공하는 인터페이스예요.
- 주요 메서드: getSession(), getCookies(), getHeader()
- HttpServletResponse
- ServletResponse를 확장하여 HTTP 프로토콜의 응답 정보를 제공하는 인터페이스예요.
- 주요 메서드: sendRedirect(), addCookie(), setHeader()
- Filter
- 요청과 응답을 서블릿에 전달하기 전후에 처리할 수 있는 필터를 정의하는 인터페이스예요.
- 주요 메서드: init(), doFilter(), destroy()
- FilterChain
- 필터 체인을 통해 필터를 순차적으로 호출하는 데 사용되는 인터페이스예요.
- 주요 메서드: doFilter()
- ServletContext
- 서블릿 컨텍스트에 접근할 수 있게 해주는 인터페이스예요.
- 주요 메서드: getInitParameter(), getAttribute(), getResource()
- ServletConfig
- 서블릿 초기화 매개변수와 서블릿 컨텍스트에 접근할 수 있게 해주는 인터페이스예요.
- 주요 메서드: getServletName(), getInitParameter(), getServletContext()
- HttpSession
- 세션 정보를 제공하고 관리하는 인터페이스예요.
- 주요 메서드: getAttribute(), setAttribute(), invalidate()
- HttpSessionListener
- 세션의 생성 및 소멸 이벤트를 처리하는 인터페이스예요.
- 주요 메서드: sessionCreated(), sessionDestroyed()
- ServletContextListener
- 서블릿 컨텍스트의 초기화 및 종료 이벤트를 처리하는 인터페이스예요.
- 주요 메서드: contextInitialized(), contextDestroyed()
- ServletRequestListener
- 요청 객체의 생성 및 소멸 이벤트를 처리하는 인터페이스예요.
- 주요 메서드: requestInitialized(), requestDestroyed()
- AsyncListener
- 비동기 처리 시 발생하는 이벤트를 처리하는 인터페이스예요.
- 주요 메서드: onComplete(), onError(), onStartAsync(), onTimeout()
- ServletInputStream
- 서블릿 요청에서 입력 스트림을 읽기 위한 인터페이스예요.
- 주요 메서드: read(), isFinished(), isReady()
- ServletOutputStream
- 서블릿 응답으로 출력 스트림을 작성하기 위한 인터페이스예요.
- 주요 메서드: write(), setWriteListener()
추가로 SevletRequest, response와 HttpServletRequest, response의 차이점도 물어봤다.
ServletRequest와 ServletResponse
이 두 인터페이스는 서블릿 API의 기본 인터페이스로, 프로토콜에 독립적인 요청 및 응답을 처리하는 데 사용돼요.
ServletRequest
- 역할: 클라이언트의 요청 정보를 제공해요.
- 특징: 프로토콜에 독립적이에요. 즉, HTTP 뿐만 아니라 다른 프로토콜에서도 사용될 수 있어요.
- 주요 메서드:
- getParameter(String name): 요청 파라미터 값을 반환해요.
- getAttribute(String name): 요청에 속성을 설정하고 가져와요.
- getInputStream(): 요청 본문의 데이터를 읽기 위한 입력 스트림을 반환해요.
- getReader(): 요청 본문을 읽기 위한 리더를 반환해요.
ServletResponse
- 역할: 서버가 클라이언트에게 응답을 보낼 때 사용돼요.
- 특징: 프로토콜에 독립적이에요. 즉, HTTP 뿐만 아니라 다른 프로토콜에서도 사용될 수 있어요.
- 주요 메서드:
- getWriter(): 응답을 작성하기 위한 PrintWriter 객체를 반환해요.
- setContentType(String type): 응답의 콘텐츠 타입을 설정해요.
- getOutputStream(): 응답 본문을 작성하기 위한 출력 스트림을 반환해요.
- setContentLength(int len): 응답의 콘텐츠 길이를 설정해요.
HttpServletRequest와 HttpServletResponse
이 두 인터페이스는 ServletRequest와 ServletResponse를 확장하여 HTTP 프로토콜을 처리하기 위한 인터페이스예요.
HttpServletRequest
- 역할: HTTP 요청 정보를 제공해요.
- 특징: HTTP 프로토콜에 특화된 요청 정보를 다룰 수 있어요.
- 주요 메서드:
- getSession(): 현재 세션을 반환해요.
- getCookies(): 요청에 포함된 쿠키 배열을 반환해요.
- getHeader(String name): 요청 헤더 값을 반환해요.
- getMethod(): HTTP 메서드(GET, POST 등)를 반환해요.
- getQueryString(): 요청 URL의 쿼리 문자열을 반환해요.
- getRequestURI(): 요청된 URI를 반환해요.
- getContextPath(): 컨텍스트 경로를 반환해요.
HttpServletResponse
- 역할: HTTP 응답 정보를 제공해요.
- 특징: HTTP 프로토콜에 특화된 응답 정보를 다룰 수 있어요.
- 주요 메서드:
- sendRedirect(String location): 클라이언트를 다른 위치로 리다이렉트해요.
- addCookie(Cookie cookie): 응답에 쿠키를 추가해요.
- setHeader(String name, String value): 응답 헤더를 설정해요.
- setStatus(int sc): 응답 상태 코드를 설정해요.
- getOutputStream(): 응답 본문을 작성하기 위한 출력 스트림을 반환해요.
- getWriter(): 응답을 작성하기 위한 PrintWriter 객체를 반환해요.
차이점 요약
- ServletRequest와 ServletResponse는 프로토콜에 독립적인 요청 및 응답 인터페이스예요.
- HttpServletRequest와 HttpServletResponse는 HTTP 프로토콜에 특화된 요청 및 응답 인터페이스예요.
- HttpServletRequest와 HttpServletResponse는 HTTP의 구체적인 기능을 지원하는 메서드들을 추가로 제공해요.
'java' 카테고리의 다른 글
ExecutorService 기반 스레드 생명주기와 자원관리 (0) | 2024.07.08 |
---|---|
JAVA Beans 패턴 (0) | 2024.07.05 |
System.arraycopy vs Arrays.copyOfRange (0) | 2024.06.27 |
내 마음의 위험한 배열 (0) | 2024.06.27 |
ArrayList의 toArray() (0) | 2024.06.25 |