[컴][웹] Servlet 이 처리되는 과정


http server 에서 servlet 요청 처리


  • HTTP server : url 을 resolve 해준다.
  • Web container : servlet, jsp 에 대한 request 처리를 해준다.

위의 server와 container 에 대한 설명은 여기 그림을 보면 명확하다.

HTTP server로 들어온 url 요청이 들어오면 HTTP server 가 web.xml(Deployment Descriptor) 를 보고 이 url 요청이 servlet 에 mapping 되어 있는지를 판단한다.
그리고, servlet 요청이라면, web container 로 넘겨준다.

한개의 web container 는 여러개의 servlet instance 를 가지고 있는데, 중복된 servlet instance 를 가지고 있지 않다.


web container 에서 jsp 처리


url 요청이 jsp 이면,
웹 컨테이너는 jsp 를 parsing 하여 java code 로 변환한다.
html 태그로 된 부분들은 서블릿 소스처럼 write() 메서드를 사용하는 방식으로 변환한다.

이 java code file 을 compile 하여 servlet class 파일을 만들게 된다.
만들어진 servlet class 가 실행되면 가장 먼저 인스턴스를 생성하고 init() 메서드에 의해 초기화 된다.

그 후 request 따른 thread 가 하나 생성되어 service() method 를 호출하게 되고,
request type 에 따라 doGet() 또는 doPost() method 가 실행되어 HTML 로 이뤄진 결과 페이지가 생성된다.
이 페이지가 web server 에 전달돼서 user 에게 전달된다.

두번째 요청부터는 이미 생성된 instance 에서 thread 만 하나씩 생성되어 service() 메서드를 호출한다.


url 요청이 jsp 인 경우

  1. web container가 jsp -> java code
  2. servlet class 생성 : java code -> compile -> servlet class
  3. servlet class 실행 : create instance, execute init() method
  4. request 에 따른 thread 생성 --> call service() --> doGet() or dePost() --> HTML page 생성

댓글 없음:

댓글 쓰기