상세 컨텐츠

본문 제목

[서버프로그래밍] 4. 서블릿 핵심 API (1)

Backend/서버프로그래밍

by 사랑짱 2021. 7. 5. 13:32

본문

 

 

◆ 서블릿 아키텍처(구조)

- 클라이언트에서 웹 브라우저를 이용하여 적절한 URL형식으로 서블릿에 요청하면,

   웹 컨테이너에서 서블릿을 실행하고 결과값을 html로 구성하여 클라이언트로 응답을 처리

 

 

 

◆ HttpServletRequest API

- HTTP Request인 요청과 관련된 작업을 처리하는 핵심 API

- 클래스가 아닌 인터페이스(규격)으로 제공

 

 

◆ HttpServletResponse API

- HTTP Response인 요청과 관련된 작업을 처리하는 핵심 API

- 클래스가 아닌 인터페이스(규격)으로 제공

 

※ 서블릿의 응답처리 : html 형식으로 응답처리

1) response.setContentType("text/html;charset=UTF-8")

- 웹 브라우저에게 처리할 데이터의 MIME 타입을 알려주는 메소드

 

2) response.getWriter( )

- 응답처리 출력을 위한 메소드(자바 I/O기술 이용)

- 문자 데이터를 처리하기 위해서는 PrintWriter를 이용하고,

  바이너리(binary) 데이터를 위해서 는 ServletOutputStream 클래스를 사용

 

 

◆ HttpServlet API

- 서블릿을 구현하기 위한 핵심 API

- 추상클래스로 제공

 

※ 상위- GenericServlet 추상클래스
- 초기화 작업에 필요한 init(ServletConfing)메서드
- 핵심 로직 작업에 필요한 service(request,respons) 메서드
- 자원 반납 처리작업에 필요한 destroy() 메서드
- 초기화 파라미터 작업에 필요한 getInitParameter(String) 메서드
- 서블릿명을 알 수 있는 getServletName() 메서드 

※ 하위-HttpServlet 추상클래스
- HttpServletRequest와 HttpServletResponse 2개의 인자를 가진 doGet 또는 doPost 메서드

 

 

LifeCycle 메소드

- 톰캣 컨테이너는 nit, service, destroy 3가지 메서드를 사용하여 서블릿 인스턴스를 관리

1) init 메소드(초기화 작업)

- 웹 컨테이너에 의해 서블릿 인스턴스가 처음 생성될 때 단 한번 생성

 

2) service 메소드

- 클라이언트가 요청할 때마다 호출

- 클라이언트가 원하는 동적인 처리 작업 시 필요

 

3) destroy 메소드

- 서블릿 인스턴스가 웹 컨테이너에서 제거될 때 호출

- 초기화 작업을 반납처리

 

※ 서블릿의 선처리 후처리 작업

@PostConstruct 

- init 메서드가 호출되기 전에 수행되는 선처리 작업 메서드

- 반드시 리턴 타입은 void로 지정하고, 예외 클래스를 throws 할 수 없다.

 

@PreDestroy

- destroy 메서드가 호출된 후에 수행되는 후처리 작업 메서드

- 반드시 리턴 타입은 void로 지정하고, 예외 클래스를 throws 할 수 없다.

 

 

관련글 더보기