'서블릿'에 해당되는 글 1건

  1. 2007/10/31 서블릿(Servlet) 이란? (12)

서블릿(Servlet) 이란?

Study/Web programing 2007/10/31 16:01 posted by 전중

@ 서블릿(Servlet)의 개요

 

서블릿은 멀티쓰레딩에 의해 사용자 요구를 처리하고 가공해서 이에 대한 결과를 내보내게 된다.

 

JSP와 서블릿은 같은 처리 구조를 가진다. 처리 과정에 있어서 JSP는 실행시 서블릿으로 변환된다. 그렇기 때문에 수행 속도는 별차이 없다.

 

차이점은 서블릿이 자바 코드에 의존적이라면 JSP는 자바 코드에 대해 덜 의존적이라 프로그래밍 하기가 더 쉽고 편하다.

 

서블릿과 JSP는 상호 연계 되어 JSP에서 정적인 부분을 담당하고, 서블릿은 보다 동적인 처리를 위한 부분으로 사용되어 보다 효율적인 웹 사이트 구성을 할 수 있다.


  JSP : 주로 사용자용 뷰(View)의 구현에 사용된다.

  Servlet : 사용자용 뷰와 프로그램 로직 사이를 제어해 주는 역할에 주로 사용된다.



@ Servlet의 동작 원리


포함해야 할 패키지

  - javax.servlet : 프로토콜에 독립적인 서블릿을 만들기 위한 클래스를 제공한다.

  - javax.servlet.http : HTTP 프로토콜의 고유한 기능(GET, POST 등)을 제공하는 서블릿을 만드는 클래스를 제공한다.


모든 서블릿은 javax.servlet.Servlet 인터페이스를 implement 해야 한다.


서블릿은 웹브라우저에 의해 실행되므로 main() 메서드를 가지지 않는다. 대신, 서버가 서블릿에 요청을 전달할 때마다 서블릿의 service() 메소드가 호출된다.


사용자 삽입 이미지



 - 서블릿의 요청과 응답의 과정

  1. 클라이언트의 서비스 요청이 오면 객체 유무 체크

  2. Yes면 생성 안함, No 면 객체 생성 (메모리에 로드)

  3. Invoker를 실행한다.

     Thread를 하나 만들어 준다. - 작업용 request 마다 1개씩

  4. Invoker 에서 생성된 Thread에서 service 메소드 (reponse의 내용이 담김)를 호출

     Thread의 run 메소드와 유사, 클라이언트당 1개씩 생성

  5. 결과를 클라이언트에 보낸다. 웹 브라이져의 mime type는 text/html이다.


 - 서블릿의 요청과 응답의 과정에서 Container (Tomcat)가 하는 일

 1. 객체가 있는지 유무 판단, 없으면 생성

 2. Thread 생성

 3. Service() 호출

 4. Service() (HttpServlet 의 메소드)가 doGet() 자동 호출


- 서블릿 요청과 응답 과정에서 Service() 메소드가 하는 일

 1. Request가 올 때 마다 doGet()을 호출한다.

 2. doGet()은 HttpServlet 에 의해 지원 받는 몇몇 Service() 중 하나이다.



출처 : http://blog.naver.com/nicekkong/100039025171