서블릿 생명주기 (Servlet LifeCycle) 1

JOY·2022년 1월 6일
0

[Java] Servlet

목록 보기
4/9
post-thumbnail

📌서블릿 생명주기 (Servlet Life Cycle) 1


1. 서블릿 생명주기 (Servlet Life Cycle)

어떤 객체의 생성부터 소멸까지의 과정
init() 👉 service() 👉 destroy()

  1. init()
    • 서블릿은 init() 메소드 호출하여 초기화 됨
    • 서블릿 요청시 한 번만 호출
  2. service()
    • 서블릿 요청시 매번 호출
    • 실제 클라이언트의 요청 작업 수행
  3. destroy()
    • 서블릿 기능 수행, 메모리 소멸 시 한 번만 호출
    • 서버는 destory() 메소드 호출하여 서블릿 제거

2. LifecycleServlet 작성

  • 서블릿 생명주기 확인할 수 있는 LifecycleServlet 작성
  1. init()
  2. service(request, response)
  3. destroy()
  • Servlet 생성

  • init(), destroy(), service() 메서드 사용
  • LifecycleServlet.java 생성
package examples;

import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/LifecycleServlet")
public class LifecycleServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public LifecycleServlet() {
    	System.out.println("LifecycleServlet 생성");
        
    }

	public void init(ServletConfig config) throws ServletException {
		System.out.println("init 호출");
	}

	public void destroy() {
		System.out.println("destroy 호출");
	}

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("service 호출");
	}
}

📍 실행 하기


  • @WebServlet("/LifecycleServlet")
    LifecycleServlet URL은 LifecycleServlet 이라는 것을 확인
    해당 클래스의 메모리 존재 여부 확인 존재 하지 않는다면 객체 생성
    👉 LifecycleServlet() 생성자에 넣어준 메세지 출력

📍 다시 실행 하기 ( 두번 실행 )
서블릿은 서버에 서블릿 객체를 여러개 만들지 않는다.
요청된 객체가 메모리에 존재하는지 확인
한번 호출된 이후에는 계속 service()만 출력되고 있는 것을 확인할 수 있다.


  • init() 메서드 수정
public void init(ServletConfig config) throws ServletException {
		System.out.println("init test 호출!!");
	}

📍 실행 하기
destroy() 호출

서블릿이 수정후 destroy() 메소드에 의해 서블릿 제거
메모리에 있는 서블릿 객체는 더이상 사용 불가

📍 다시 실행 하기

❗ init() 메소드 호출 하여 서블릿이 생성된 것을 확인
profile
Just Do IT ------- 🏃‍♀️

0개의 댓글