자바(Java)/JAVA 2EE

HTTP 프로토콜을 위한 서블릿 클래스 HttpServlet 클래스

본클라쓰 2010. 12. 5. 20:29

 GenericSerlvet 클래스는 서블릿의 가장 기본이 되는 클래스이다. Servlet 인터페이스와 ServletConfig 인터페이스를 미리 구현해 놓은 클래스이며, 서블리스이 라이프 사이클인 init(), service(), destroy() 메소드를 미리 구현해 놓은 클래스이다. 따라서 GenericServlet 클래스는 프로토콜과 무관하게 사용할 수 있다.

 

 하지만 서블릿이 가장 많이 사용되는 프로토콜은 HTTP 프로토콜이다. 따라서 HTTP 프로토콜을 위한 서블릿을 미리 구현해 놓았는데 이 것이 HttpServlet 클래스이다. GenericServlet 클래스를 HTTP(HyperText Transfer Protocol)에 맞게 구현한 것으로 일반적인 웹 페이지 제작에는 HttpServlet 클래스를 상속받아 구현한다.

 

 

 

HttpServlet 클래스의 특징(HTTP 프로토콜 서블릿)

 

 GenericServlet 클래스를 상속받아 HTTP 프로토콜에 맞춰 구현해 놓은 클래스이다. HTTP 명령어 타입에 따라 doXXX() 메소드를 호출한다. 만약 클라이언트가 GET 명령어를 사용하여 서버에 요청하면 컨테이너는 해당 서블릿의 doGet() 메소드를 호출하고 POST 명령어를 사용하여 요청하면 doPost() 메소드를 호출한다. 즉, HTTP 명령어와 doXXX() 메소드를 매핑(Mapping) 시킨다.

 

 또한, GenericServlet 클래스를 상속받아 구현한 클래스이기 때문에 서블릿의 라이프 사이클에 신경쓸 필요가 없다. 개발자는 단지 요청에 매핑시킬 doXXX() 메소드만 제정의하면 된다.

 

 일반적으로 HttpServler 클래스를 구현할 때는 doPost() 메소드는 doGet() 메소드를 호출하는 역할만 하는 경우가 많다. 다른 명령어는 하나의 doXXX() 메소드를 호출하는 역할만 하고 모든 처리는 doGet() 메소드나 doPost() 메소드 중 하나에 처리과정을 작성한다.