[ Web Server ]
- Web Client : 웹브라우저쪽
=> HTML / CSS / JS /
- Web Application Server : 서버쪽
=> Servlet / JSP / Spring MVC / mybatis
=> HTTP 요청 응답 방식으로 두 단이 통신
- jsp 파일
: HTML 태그 + 자바문장 뒤섞인 것
=> jsp 파일이 들어오면
- HTML 파일은 WS에서 그대로 보내주고
- 자바문장은 웹서버(WAS)에서 처리하고 응답
WS+ JSP container / Servlet container = WAS ( Tomcat )
- 정적인 WS 의 한계를 극복하고 동적인 웹페이지를 구현하기 위해
나온 것이 Servlet 이고, 이걸 발전시켜서 나온것이 JSP,
JSP 에서 발전해서 나온것이 Spring MVC 방식이다
[ Servlet ]
- 클라이언트에서 (자바) 로직실행이 필요한 요청이 들어오면
WS는 이를 실행할 수 없음 => WAS 에 위임
=> WAS(Servlet container)에서 Servlet 이 이를 실행하고 결과반환
=> 클라이언트에 응답
- 서블릿은 기본적으로 멀티스레드 방식으로 동작한다 ( WAS 내장 )
- 기본적으로 자바 클래스다.
=> extends HttpServlet 상속해서 메소드 사용
( 메소드 override 해서 구현 )
[ Life Cycle ]
- doGet( ) / doPost( )
: 가장 기본 메소드로, ( 필수 구현 )
클라이언트 요청이 들어올때마다 실행할 로직을 오버라이딩해서 구현해 놓고 사용
- init( )
: 서버 시작되고, 서블릿 객체 생성하고 메모리 로드될때 처음에 한번 만 호출
이때 실행할 로직을 구현해 놓고 사용
- 예를들어 DB driver 호출하는 class.forName 같은 로직을
init 메소드에 구현해 놓고 사용한다.
( 클라1 요청시에만 호출. 클라2요청은 서버시작후 최초가 아님)
- destroy( )
: 현재 서블릿이 메모리에서 삭제될 때 호출
이때 실행할 로직을 구현해 놓고 사용
=> 저장,컴파일 해서, 전에 있던 메모리가 destroy삭제될 때 destroy메소드가 호출된다.
=> 저장, 재실행 할 때 실행할 로직을 구현 ( 삭제시키기 등 )
=> init 메소드로 시작해 doGet/doPost 메소드로 클라이언트 요청을 실행하고
destroy 메소드까지 실행되는 과정을 servlet의 life Cycle (생명주기)라고 한다.
( init / destroy 는 필요 시, doGet/doPost는 필수구현 )
'Back to the Servlet' 카테고리의 다른 글
Tomcat 연동 / Tomcat UTF-8 설정 ( intellij ) (0) | 2022.08.06 |
---|---|
Servlet 방식 <= Spring MVC 방식 비교 (0) | 2022.08.05 |
URL Mapping / @WebServlet("/url") / web.xml 버전 (0) | 2022.08.05 |
[HTTP 요청방식] get 방식과 post 방식 (0) | 2022.08.05 |
[Servlet] HttpServlet 메소드, Request 와 Response (0) | 2022.08.05 |