Study_Servlet

Servlet

Servlet이란?

  • 웹 어플리케이션을 만들 때 필요한 인터페이스

Servlet 동작방식

  • 각각의 Servlet이 Servlet Interface를 상속받아 구현하고 있고, 이를 Servlet Container가 갖고 있고 Container를 통해 Server와 통신한다.

Servlet 이 등장한 배경

정적 데이터만 전달가능했던 Web Server

동적 데이터를 처리하는 CGI(Common Gateway Interface) 등장




CGI(Common Gateway Interface)의 한계




  • WebContainer 역할 : 요청이 들어오면, 요청마다 Thread를 생성하고, Servlet 구현체를 연결해주고, Servlet Interface내 메소드를 호출해주는 역할을 한다.

Servlet의 생명주기


  • Init : Servlet Instance 생성하는 곳 (initalize)
  • Service : 실제 기능이 수행되는 곳(요청을 처리할 때 호출이 되는 메서드)
abstract class HttpServlet extends Servlet
	//HTTP Method(GET, POST, PUT, DELETE)에 따라
    //doGet(), doPost(), doPut(), doDelete()메서드를 호출한다.
    //doxxx() : 개발자가 구현하는 부
  • Destroy : Servlet Instance가 사라지는곳
    • 보통 container가 종료되는 시점에 destroy()호출
    • 특정 servlet 로드/언로드 시에도 사용
  • 각 메서드는 Servlet Container(Tomcat)이 호출해준다.

Servlet Container & Servlet 호출과정


    1. 요청이 들어오면 Servlet Request / Servlet Reponse 객체 생성
    1. 설정 파일을 참고하여 매핑할 Servlet을 확인
    1. 해당 서블릿 인스턴스 존재 유무를 확인하여 없으면 생성(Init())
    1. ServletContainer에 스레드를 생성하고, Res, Req를 인자로 Service 실행
    1. 응답을 처리한다.

Dispatcher Servlet







Web 요청 처리과정







ref.
https://www.youtube.com/watch?v=cmwmamOQmPc
https://www.youtube.com/watch?v=calGCwG_B4Y
https://www.youtube.com/watch?v=2pBsXI01J6M

좋은 웹페이지 즐겨찾기