[Servlet] Life Cycle
🧶 𝗪𝗲𝗯/Servlet

[Servlet] Life Cycle

 

 

 Life Cycle 

개요

init()
: Servlet 이 메모리에 로드될 때 한 번 호출이 된다.
코드가 수정되어 다시 로드되면 다시 호출 된다.
service()
: Servlet 에 오는 모든 요청마다 호출이 된다.
service() 를 통해서 doGet 이나 doPost 메서드로 이동한다.
destroy()
: Servlet이 메모리에서 해제되면 호출이 된다.
코드가 수정되면 호출된다.

 

Servlet Life Cycle JSP 파일

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/Basic/ServletLifeCycle" method="GET">
		<input type="submit" value="GET"/>
	</form>
	
	<form action="/Basic/ServletLifeCycle" method="POST">
		<input type="submit" value="POST"/>
	</form>
</body>
</html>

화면

 

Servlet Life Cycle Test

package servlet;


import java.io.IOException;

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("/ServletLifeCycle")
public class ServletLifeCycle extends HttpServlet {
	private static final long serialVersionUID = 1L;


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


	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
	    throws ServletException, IOException {
		System.out.println("service() 호출 ");
		super.service(req, resp);
	}


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


	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
	    throws ServletException, IOException {
		System.out.println("doGet()");
	}


	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
	    throws ServletException, IOException {
		System.out.println("doPost()");
	}

}

서버가 메모리에 할당되면 init() 이 한번 호출되고

GET 버튼을 누르면 doGet()이, POST 버튼을 누르면 doPost() 메서드가 호출됩니다.

이렇게 doGet() 이나 doPost() 같은 표준 HTTP 메서드 요청으로 인한 메서드가 호출이되면 service 도 같이 호출이 됩니다.

그리고나서 서버가 STOP 이 된다면 destroy() 가 호출이 됩니다.

 

 

 

 

 

 

 


 

728x90

'🧶 𝗪𝗲𝗯 > Servlet' 카테고리의 다른 글

[Servlet] JSP 사용에서 MVC 패턴  (0) 2022.10.04
[Servlet] URL 매핑  (1) 2022.10.04
[Servlet] forward, sendRedirect  (1) 2022.10.04
[Servlet] Servlet 관련 객체 및 API  (1) 2022.10.04