Be Coder
Servlet Programming - Servlet API 본문
1. Servlet API 구성
Java Servlet 작성을 위해 제공되는 패키지는 javax.servlet, javax.servlet.http 패키지로 구성된다.
즉, Serlvet 작성을 위해서는 두 패키지에서 제공되는 클래스와 인터페이스를 이용해야한다.
java.servlet |
특정 프로토콜에 종속적이지 않는 Servlet 작성을 위한 클래스와 인터페이스를 제공한다. Interface : Servlet, ServletRequest, ServletResponse, ServletConfig, ServletContext, RequestDispatcher Class : ServletInputStream, ServletOutputStream, GenericServlet |
javax.servlet.http |
특정 HTTP 프로토콜을 따르는 Servlet 작성에 필요한 클래스와 인터페이스를 제공한다. Interface : HttpServletRequest, HttpServletResponse, HttpSession Class : HttpServlet, Cookie, HttpSessionEvent, HttpUtils |
2. Servlet 작성을 위한 기본 Interface, Class
HttpServlet ( Class ) | HTTP Servlet 작성하려면, 이 클래스를 상속받고, 요청에 따라 doGet(), doPost() 메소드 재정의. |
HttpServletRequest ( Interface ) | HTTP Servlet에서 클라이언트로부터 전달된 요청과 관련된 작업을 할 수 있는 기능 제공. 일반적으로, CGI 환경변수 값 참조, 클라이언트에게 전달받은 매개변수 파싱, 클라이언트에게 전달받은 Cookie 데이터 파싱 작업, HTTP 요청에 대한 헤더 정보 취득. HttpServletRequest는 ServletRequest Interface를 상속받고, HttpServlet Class에 의해 상속됌. |
HttpServletResponse ( Interface ) | 일반 Servlet에서 클라이언트에게 전달할 응답과 관련된 작업을 하도록 기능 제공. 보통, ServletResponse 객체를 이용해 PrintWriter 객체를 얻고, 결과 페이지 출력하는 작업. HTTP 응답에 대한 헤더 정보 설정, Cookie 추가도 가능. HttpServletResponse는 ServletResponse Interface를 상속받고, HttpServlet Class에 의해 사용. |
* 코드 작성
1. HttpServlet 클래스 상속.
2. GET, POST 요청 방식에 따라 doGet(request, response), doPost(request, response) 메소드를 반드시 구현.
3. 해당 요청 방식에 맞는 메소드 내에서, 우선 브라우저에 출력하려는 컨텐트 타입을 MIME 타입으로 지정.
> response객체의 setContentType(String type)으로 설정. MIME 타입은 web.xml에서 확인 가능.
4. response 객체 생성. 데이터가 문자열이면 response.getWriter(), 바이너리 코드면 response.getOutputStream() 호출.
5. getWriter() 메소드 호출해서 PrintWriter 스트림 생성 후, 브라우저에 보여줄 HTML 태그 출력.
3. Serlvet 작성에 사용되는 응용 Interface, Class
javax.servlet.ServletConfig ( Interface ) | 일반 Servlet, Http Servlet의 이름, 실행 환경 등 Servlet 구성 정보를 제공. |
javax.servlet.ServletContext ( Interface ) |
통신을 할 수 있는 기능 제공. 사용 : Servlet Container에 대한 정보 얻기, web.xml에 설정된 초기화 매개변수 값 얻기, Servlet Container의 log 파일에 log 메시지 출력, 같이 실행중인 Servlet 얻기, Servlet의 실제 디렉토리 얻기, RequestDispatcher 객체 얻기(include, forward하기 위한 서버 자원) |
javax.servlet.RequestDispatcher ( Interface ) | 동일 Context내에 있는 자원을 사용할 수 있도록, 다른 Servlet의 결과로 생성된 결과 페이지를 include하거나, 다른 Servlet으로 forward 하기 위해 사용. |
javax.servlet.http.HttpSession ( Interface ) | 특정 클라이언트와 관련된 상태 정보를 클라이언트가 연결되어 있는 세션 동안 저장하기 위한 저장소 제공. 클라이언트는 자신만의 정보 저장을 위한 각각의 세션을 보유. |
javax.servlet.http.Cookie ( Class ) | 클라이언트에서 전달한 쿠키로부터 데이터를 읽거나, 클라이언트에게 쿠키를 부여하기 위해 사용. |
'웹' 카테고리의 다른 글
Servlet Programming - 서블릿 개요와 동작 과정 (0) | 2020.04.19 |
---|---|
Servlet Programming - HTTP 프로토콜의 이해(Request/Response Msg) (0) | 2020.04.19 |
웹 애플리케이션 - Client/Server (0) | 2020.04.19 |
웹 프로그래밍 방식 (0) | 2020.04.17 |
웹 애플리케이션 (0) | 2020.04.17 |