다이나믹 웹 프로젝트 생성
프로젝트명 : serveltLifeCycle
다음과 같이 서블릿 클래스 생성 : ServletLifeCycle
매핑설정
생성할 메소드 체크
다음과 같이 작성 ServletLifeCycle.java
package servlet;
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("/slc.do")
public class ServletLifeCycle extends HttpServlet {
private static final long serialVersionUID = 1L;
public ServletLifeCycle() {
super();
System.out.println("생성자 메서드");
}
public void init(ServletConfig config) throws ServletException {
System.out.println("init 메서드");
}
public void destroy() {
System.out.println("destory 메서드");
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("service 메서드");
String method = request.getMethod();
if (method.equals("GET")) {
doGet(request, response);
} else {
doPost(request,response);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet 메서드");
System.out.println("------");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost 메서드");
System.out.println("------");
}
}
실행 결과 : 서버 실행 후 최초 요청
최초 요청 후 서버 동작 중 요청
생성자 메서드 init메서드 실행되지 않음
서버 시작 후 최초 요청 시 한번만 실행됨
service() 메서드
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// get, post에 관계에 없이 공통으로 수행하여야할 로직 작성
// 요청을 구분해서 요청 방식에 따라 doPost(),doGet() 호출
System.out.println(request.getMethod()); // getMethod()요청방식 리턴
String method = request.getMethod();
if (method.equals("GET")) {
doGet(request, response);
} else {
doPost(request,response);
}
}
destroy() 메서드
public void destroy() {
System.out.println("destroy"); //서버 종료시 콘솔에 출력되지 않으나 실행은 됨
// 열었던 스트림 닫기
// 사용한 메모리 반환 (close())
}
JSTL <c:forEach> <c:forToken> 태그 (0) | 2019.11.14 |
---|---|
JSTL <c:if> <c:choose> <c:when> <c:otherwise> (0) | 2019.11.14 |
JSTL <c:set> (0) | 2019.11.14 |
서블릿 : 파라미터 요청처리 doPost메서드 doGet메서드 (0) | 2019.11.10 |
서블릿(Servlet) : Dynamic Web module 2.5 와 3.1 (0) | 2019.11.10 |
댓글 영역