Servlet Flow

Servlet 

Generic Servlet 

HttpServlet

아래에서 위로 상속을 받는다.

Servlet은 HttpServlet을 상속받는데 extends HttpServlet을 해줘야한다.

그 사이에 Generic Servlet이라는 abstract가 존재하는데 사실 잘 모르겠다.


GET & POST

GET : URL 뒤쪽에 정보가 붙어 전송된다. -> 보안에 약하다.

POST : Header을 이용해 정보를 전송한다. -> 보안에 강하다.(강하다고 해야할지..)


doGet()

form 태그의 method="get" 일 경우 doGet()이 호출 된다.

인자는 HttpServletRequest, HttpServletResponse 를 받는다.(doPost도 마찬가지.)


doPost()

form 태그의 method="post"일 경우 doPost()가 호출된다.

인자는 doGet과 동일 하다.


Servlet 작동 순서

웹 -> 웹서버(WS) -> 웹 어플리케이션 서버(WAS) -> Servlet Container 

Servlet Container에서도 첫번째로 작동하는 것은 스레드 생성. 두번째는 Servlet 객체를 생성하는 것이다.


Servlet LifeCycle


Servlet은 응답속도가 빠른편이라 사용률이 높다.


왜 속도가 빠른가?

Servlet은 요청을 받아 객체가 생성되면 그 뒤로 객체를 재활용 하기 때문.(메모리에 로딩이 된다.)

       Servlet 객체 생성

       init() 호출

       service(), doGet(), doPost()호출

       destroy() 호출

위 표에서 진행 방향은 위 -> 아래 이다.

Servlet객체를 생성하면 init함수를 호출한다. 

init함수는 객체가 가지고 있어야할 정보를 가져오거나 준비하는 역할이다.

따라서 Servlet객체는 재활용 되므로 한번만 실행된다. ( Servlet객체 생성도 한번, init도 한번)

service(), doGet(), doPost()는 웹에서 호출하면 계속해서 함수가 불려진다.

destroy()함수는 마지막에 Servlet객체를 메모리에서 해제 시킬 때 한번 호출된다.


'Web' 카테고리의 다른 글

React와 Express 연동하기(1)  (0) 2020.09.11
IntelliJ에서의 Servlet 프로젝트 설정 방법  (0) 2019.09.19
젠킨스 사용해보기  (0) 2017.12.31
Servlet 기초(2)  (0) 2016.11.11

+ Recent posts