본문 바로가기
boostcource/boostcourse_web programming

Servlet 라이프 싸이클-2

by sgyeong 2024. 4. 8.

Servlet 생명주기

 

LifecycleServlet 

 

- HttpServlet의 3가지 메소드를 오버라이딩

init()
service(request, response)
destroy()

 

 

- WAS는 서블릿 요청을 받으면 해당 서블릿이 메모리에 있는지 확인
- if (메모리에 없음)  {
       해당 서블릿 클래스를 메모리에 올림
        init() 메소드를 실행
}

       service() 메소드를 실행

- WAS가 종료되거나, 웹 어플리케이션이 새롭게 갱신될 경우 destroy() 메소드가 실행

 

 

 

service(request, response) 메소드

- HTTPServlet의 service 메소드는 템플릿 메소드 패턴으로 구현

클라이언트의 요청이 GET일 경우에는 자신이 가지고 있는 doGet(request, response)메소드를 호출
클라이언트의 요청이 Post일 경우에는 자신이 가지고 있는 doPost(request, response)메소드를 호출

 

 

LifecycleServlet 수정

 

실습
- service(request, response)메소드 주석 처리
- HttpServlet의 doGet(request, response) 메소드 오버라이딩
- HttpServlet의 doPost(request, response) 메소드 오버라이딩

 

메소드 오버라이드

Source > Override/implement Methods...

 

 

doGet메소드와 doPost메소드 체크한 다음 OK

 

 

 

 

 

실행 결과

 

 

 

화면 우클릭 > 소스 보기 또는 페이지 원본 보기 클릭

 

 

 method > 메소드를  post로 요청

action >   action의 주소로 요청

submit > 클릭하면 doPost 메소드 실행

 

프로그램이 동작하면서 응답 결과가 바뀐다. >> 동적 페이지

 

 

정리

해당 servlet의 url 주소를 직접 입력하거나 링크를 클릭하는 것은 get방식으로 서버에 요청을 보내게 된다.
service 메소드가 호출이 되면서 해당 service 메소드는 자신의 doGet메소드를 호출하게 된다.

요청할때 메소드가 post방식으로 들어가면 method가 post값을 전달하고, 실제 service 메소드는 post가 들어왔기 때문에 doPost 메소드를 호출해서 doPost 안에 있는 내용이 출력되게 된다.

 

 

 

 

참고  :  boostcourse  https://www.boostcourse.org/web316/lecture/254273/?isDesc=false

 

웹 프로그래밍(풀스택)

부스트코스 무료 강의

www.boostcourse.org

 

https://jdm.kr/blog/116

 

템플릿 메소드 패턴(Template Method Pattern) :: JDM's Blog

이 포스팅은 템플릿 메소드(Template Method) 패턴에 대해서입니다. 간단하게 최종 코드를 먼저 보고 그 뒤 하나씩 구현해보겠습니다. 최종 코드 public class TemplateMain { public static void main(String[] args) { /

jdm.kr

 

'boostcource > boostcourse_web programming' 카테고리의 다른 글

Request / Response -1  (0) 2024.04.09
HttpServletRequest / HttpServletResponse  (0) 2024.04.09
Servlet 라이프싸이클 -1  (0) 2024.04.08
Servlet 실습 -2  (0) 2024.04.08
Servlet 실습 -1  (0) 2024.04.08