아무거나

[Servlet] 서블릿 학습(2) 본문

Java & Kotlin/JSP & Servlet

[Servlet] 서블릿 학습(2)

전봉근 2019. 12. 21. 21:23
반응형

[Servlet] 서블릿 학습(2)

 

1. servlet 작동 순서

   - 클라이언트에서 servlet요청이 들어 오면 서버에서는 servlet컨테이너를 만들고, 요청이 있을 때마다 스레드가 생성.

     웹브라우저 -> 웹서버 -> 웹어플리케이션 서버(was) -> servlet 컨테이너(스레드 생성, servlet객체 생성)

 

     ** java컨테이너는 servlet, ejb, jsp 가 있다.

 

2. servlet 장점

   - 다른 cgi언어들은 요청에 따라 계속해서 웹서버에 객체를 생성해준다(즉, 요청이 많을수록 서버에 부하가 크다.)

     하지만 servlet는 java기반이므로 요청이 들어오면 jvm에서 스레드가 생성되어 스레드에서 처리를 하므로 속도가 더 빠르고 서버에 부하가 적다.

     

3. servlet 라이프사이클(생명주기)

   - servlet의 사용도가 높은 이유는 빠른 응답 속도 때문, servlet은 최초 요청 시 객체가 만들어져 메모리에 로딩되고, 이후 요청 시에는 기존의 객체를

     재활용하게 된다. 따라서 동작 속도가 빠르다.

     

     Servlet 객체생성(최초 한번) -> Init() 호출(최초 한번) -> service(), doGet(), doPost() 호출(요청시 매번), destroy() 호출(마지막 한번 -> 자원 해제 : servlet 수정, 서버 재가동 등등..)

 

     ** service() 란 doGet이랑 doPost가 둘다 없으면 service()메소드가 실행된다.

        service()랑 doGet(or doPost)이랑 같이 쓰면 콜백으로 service()에 들어온다.

 

4. servlet 선처리, 후처리

   - servlet의 라이프 사이클중 init()과 destory()메소드와 관련하여 선처리(init()전)와 후처리(destroy()후) 작업이 가능ㅎ아다.

     Servlet 객체생성 -> @PostConstruct(선처리 되는 애노테이션) -> Init() 호출 -> server(), doGet(), doPost() 호출 -> destroy()호출 -> 후처리: @preDestroy(후처리 애노테이션 선언)​ 

 

참고: https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-jsp-%EA%B0%95%EC%A2%8C/dashboard

반응형

'Java & Kotlin > JSP & Servlet' 카테고리의 다른 글

[JSP] 학습 1  (0) 2019.12.21
[Servlet] 서블릿 학습(4)  (0) 2019.12.21
[Servlet] 서블릿 학습(3)  (0) 2019.12.21
[Servlet] 서블릿 학습 (1)  (0) 2019.12.21
[Servlet] 간단 예제  (0) 2019.06.12
Comments