본문 바로가기

Developer/Java-was

#004. Servlet (서블릿)에 대해서 알아보기...

#004. Servlet (서블릿)에 대해서 알아보기...

 

1. 자바 서블릿 이란? 웹서버에서 돌아가는 작은 프로그램을 말한다.

자세한 내용은 백과 사전에서 확인해보자. (위키백과 발췌 :: 원본 글 아래주소)

http://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EC%84%9C%EB%B8%94%EB%A6%BF

자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다.

자바 서블릿은 Java EE사양의 일부분으로, 주로 이 기능을 이용하여 쇼핑몰이나 온라인 뱅킹 등의 다양한 웹 시스템이 구현되고 있다.

비슷한 기술로는 등을 이용한 CGI, PHP를 아파치 웹 서버 프로세스에서 동작하게 하는 mod_php, 마이크로소프트사의 IIS에서 동작하는 ASP 등이 있다. CGI는 요청이 있을 때마다 새로운 프로세스가 생성되어 응답하는 데 비해, 자바 서블릿은 외부 요청마다 프로세스보다 가벼운 쓰레드로써 응답하므로 보다 가볍다. 또한, 자바 서블릿은 자바로 구현되므로 다양한 플랫폼에서 동작한다.

 

2. Servlet 의 가장 기본이 되는 클래스 GenericServlet 과 WebApplication 에서 사용하는 HttpServlet 에 대해서 알아보자.

Servlet

Interface Servlet

- init(), service(), distory() 등..을 구현해야 함.

GenericServlet

Servlet 프로그램을 개발할 때 가장 기본이 되는 interface 이다.

abstract 추상화 클래스 이기 때문에 반드시 상속을 받아서 사용을 한다.

implements Servlet, ServletConfig 로 포함 되어있다.

- init(): Class가 톰켓에 올라갈 때 발생함.

- service(): 외부에서 hello.dh 라는 url 호출하면, 사용자구현 내용이 처리됨.

- distory(): Class가 변경이 되면, 톰켓에서 container에 가지고 있던 구 class를 폐기할 때 호출됨.

HttpServlet

GenericServlet 으로 부터 상속을 받고, Http 환경에 맞도록 최적화 됨

즉, GenericServlet + Http 환경 이라고 보면 되겠다.

- doGet(): 값이 요청 URL에 노출되므로 보안에 취약하고, 서버로 전달할 수 있는 데이터 크기는 최대 240 Byte 이다. (보통 조회 시 사용)

- doPost(): 값이 Data Packet 부분에 넣어 전달됨으로 노출이 되지 않아 보안성이 좋고, Data 부분에 넣기 때문에 데이터의 크기 제한이 없다. (보통 처리 시 사용)

 

3. JAVA - API 를 통해 살짝 알아보자...

1) Interface Servlet

설명

Servlet 는 Interface 로 되어 있다.

Servlet 를 포함하는 클래스는 destory(), init(), service() 를 구현해야 한다.

 

2) GenericServlet Class

설명

GenericServlet Class 는 Servlet 으로부터 Implements 되기 때문에 destory(), init(), service() 등..을 구현해야 한다.

 

3) HttpServlet Class

설명

HttpServlet Class 는 GenericServlet Class 로부터 상속을 받는다.

GenericServlet 의 기능을 모두 사용할 수 있고, 추가로 doGet(), doPost() 등을 사용할 수 있다.

 

지금까지 Servlet 에 대해서 간단히 알아봤다.

그럼 다음시간엔 실습을 통해 HttpServlet 에 대해서 알아보자...

 

잡담. 강좌가 밀리네요.. 빨리 써야지 ^^" 감사합니다..