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 |