control Y

[JSP] 서블릿 실행 순서 본문

KH정보교육원/JSP 스프링 프레임 워크

[JSP] 서블릿 실행 순서

ControlY 2023. 7. 5. 17:32

서블릿 실행 순서

서블릿의 실행 순서를 이해하려면  loC라는 개념을 알아야 함

  • MAIN()  메서드 안에 구현한 순서대로 실행.
  • 즉 실행되는 순서를 개발자가 제어
  • JAVA EE기반 프로그램은 개발자가 아닌 컨테이너가 제어한다.
  • 개발자가 아닌 제 3자가 프로그램의 실행 흐름을 제어하는 것
  • loC = 제어의 역전이라고 함 

->우리가 개발할 서블릿도 여기에 속함.

따라서 JAVA EE 기반 프로그램을 개발할 때는 먼저 컨테이너들이 프로그램을 어 떤 순서로 실행시키는지 알고 

순서에 맞게 개발해야 함.

 

* 서블릿 컨테이너의 역할

  • 웹 서버로부터 서블릿에 대한 요청이 들어오면 서블릿 컨테이너는 요청 정보를 이용해서 HttpServletRequest 객체와 HttpServletResponse 객체를 생성하게 된다.
  • HttpServletRequest  객체는 클라이언트의 요청 정보를 담고 있으며, HttpServletResponse  객체는 클라이언트로 전달될 응답객체를 나타낸다.

(1) 서블릿 객체 생성

용청 및 응답 객체를 생성

요청된 서블릿이 서블릿 컨테이너에 존재하는지 검사

서블릿 객체가 서블릿 컨테이너에 로딩되어 있다면 해당 서블릿 객체를 생성

서블릿 객체가 서블릿 컨테이너에 로딩되어 있지 않다면 해당 서블릿의 클래스 파일을 로딩한 수 객체 생성

 

(2) 서블릿의 실행

서블릿을 작성할 때 HttpServlet 클래스를 상속받아 서블릿에서 정의된 doGet() 이나 doPost() 메소드를 재정의함으로써 서블릿을 구현하게 된다.

 

* HttpServletRequest 메소드

  • getParameter(name) > String 타입으로 반환 / 1개의 문자열을 받을 때 사용
  • getParameterValues(name)  >  String 타입으로 반환 /  문자열을 배열로 받을 때 사용

* doGet() 방식

  • url에 전달하고자 하는 정보를 포함해 정보를 전달
  • ? 이후의 값들을 서버에서 query_STRING을 통해 전달
  • 속성 = 값 형태로 사용해야 하면 &은 여러 속성값을 전달할 때 연결해주는 문자열
  • 브라우저에 직접적으로 url 입력
  • a 태그로 정의
  • from method = "get" 으로 정의

* doPost() 방식

  • from method = "post" 으로 정의

 

* 응답 처리를 위한 코드 작성

메소드 기능
setConterntType(type) 문자열 형태의 타입에 지정된 MIME 타입으로 ConterntType 설정
setHeader(name, value) 문자열 name의 이름으로 문자열 value 값을 헤더로 설정
sedError(status, msg) 오류 코드를 설정하고 메세지를 보낸다
sendRedirect(url) 클라이언트 요청을 다른 페이지로 보낸다

 

1.  콜백 메서드

  • 어떤 객체에서 상황이 발생하면 컨테이너가 자동으로 호출하여 실행하는 메서드를 의미
  • 이런 콜백 메서드들이 서블릿을 실행.
  • HttpServlet 클래스를 상속받은 후 재정의한 init(), service()가 콜백 메서드에 속함.
  • 이 메서드 들은 서블릿 객체에 어떤 상황(메서드)이 발생하면 호출
메서드명 메서드가 실행되는 시점 실행 횟수 기능 구현
init() 클라이언트로부터 최초로 서블릿 요청이 있을 때 1 초기화
service() 클라이언트로부터 요청이 있을 때마다 실행 n 실제 서블릿이 처리해야 하는 작업
destroy() 서블릿 객체가 메모리에서 삭제될 때 실행
(서비스나 서버 중지 시)
1 지원 해재 작업

 

 

반응형