728x90
Servlet 생명주기
서블릿은 처음에 생성하게 되는데 그 단계를 init단계라고 합니다.
서블릿이 구현한 방식으로 구현된 기능으로 일을 하면 그것을 서비스 단계라고합니다.
일을 다 끝내고 서블릿이 소멸될때 destroy단계라고합니다.
이 3가지 단계가 Servlet 생성 및 종료인데, 이 생성 및 종료를 준비하는 단계를 PostConstruct라고 합니다.
이후 종료를 한다음 정리하기 위한 단계를 PreDestroy단계라고합니다.
생명주기 관련 메서드
init() 메서드와 destroy() 메서드는 Override해서 사용하기 때문에 이름을 바꿀수 없지만 postConstruct()메서드와 preDestory() 메서드는 각각의 어노테이션을 사용하기 때문에 개발자의 취향에 맞게 이름을 지어도 괜찮습니다.
package com.servlet;
import java.io.IOException;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
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("/ST")
public class ServletTest extends HttpServlet {
// servlet 실행
// service 메소드는 거의 이용하지 않음
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@PostConstruct
public void postConstruct() {
System.out.println(" --postConstruct()-- ");
}
// servlet 생성
@Override
public void init() throws ServletException {
System.out.println(" -init()--- ");
}
// servlet 종료
@Override
public void destroy() {
System.out.println(" --preDestroy()-- ");
}
@PreDestroy
public void preDestroy() {
System.out.println(" --preDestroy()-- ");
}
}
서버를 실행시키면 init까지 로그가 찍히게 됩니다.
아직 서버가 돌고 있기 때문에 Destroy로그는 찍히지 않고있네요.
이 글은 실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌를 수강하며 공부한 내용을 정리한 글입니다.
https://www.inflearn.com/course/실전-jsp_renew/dashboard
728x90
'Java 관련 > JSP & Servlet' 카테고리의 다른 글
[JSP & Servlet] JSP 스크립트<%! %>, 스크립트릿<% %>, 주석 <%-- --%> (0) | 2022.08.14 |
---|---|
[JSP & Servlet] form 데이터 처리 (0) | 2022.08.13 |
[JSP & Servlet] request(요청), response(응답) (0) | 2022.08.11 |
[JSP & Servlet] Servlet 맵핑 (0) | 2022.08.10 |
[JSP & Servlet] Servlet 시작하기! (0) | 2022.08.09 |