서블릿(Servlet)이란? 동작방식(feat. Dispatcher Servlet)

bluesky·2022년 9월 2일
0

자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다. 서블릿은 JSP와 비슷한 점이 있지만, JSP
가 HTML 문서 안에 Java 코드를 포함하고 있는 반면, 서블릿은 자바 코드 안에 HTML을 포함하고 있다는 차이점이 있다

  • 일반적인 자바 프로그램과 다르게 독자적으로 실행되지 못하고, 톰캣과 같은 servelt 컨테이너에서 실행된다는 차이가 있습니다.

  • **HttpServlet 추상 클래스를 상속한 일반적인 서블릿 실행 순서**

  • 요청과 서블릿 그리고 쓰레드 관계

  • 각요청에 대해 프로세스가 아닌, 스레드가 생성되어 처리함.

  • 스레드 풀은 개수를 지정하여, 일정이상 요청이 들어오면, 대기하도록 처리됨.

  • 쓰레드와 서블릿 관계.

  • 또한 최초 요청이 있을 경우에 초기화를 실행한다.

  • 서버 종료시, destroy가 호출

  • 웹서버, WAS, 서블릿의 관계

  • WAS는 각요청에 해당하는 서블릿을 실행합니다. 그리고 서블릿은 요청에 대한 기능을 수행후 결과를 반환하여 클라이언트에 전송합니다.

디스패쳐 서블릿

디스패처 서블릿은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller)라고 정의할 수 있습니다.



  • 디스패처 서블릿은 핸들러 매핑을 이용하여 적절한 헨들러 어댑터에 요청을 위임합니다.
  • 그리고 4-6번 과정을 거친후, 반환된 결과를 클라이언트에 반환합니다.

참고자료

https://ko.wikipedia.org/wiki/자바_서블릿#:~:text=자바 서블릿(Java Servlet)은,자바 클래스의 일종이다.

https://velog.io/@jakeseo_me/자바-서블릿에-대해-알아보자.-근데-톰캣과-스프링을-살짝-곁들인#서블릿과-cgi의-결정적-차이는

https://sgcomputer.tistory.com/226

https://docs.spring.io/spring-framework/docs/3.0.0.M4/spring-framework-reference/html/ch15s02.html

https://mangkyu.tistory.com/18

profile
SMART https://github.com/dongseoki?tab=repositories

0개의 댓글