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 |