공부하는 히욤이

[부스트코스] 웹 프로그래밍 : Servlet - BE 본문

boostcourse/웹 프로그래밍

[부스트코스] 웹 프로그래밍 : Servlet - BE

히욤이 2019. 8. 3. 22:47

1) Servlet 이란?

서블릿

  • 자바 웹 어플리케이션의 구성 요소 중 동적인 처리를 하는 프로그램의 역할
  • 서블릿은 WAS에서 동작하는 Java 클래스
  • HttpServlet 클래스를 상속 받아야 함
  • 서블릿과 JSP로부터 최상의 결과를 얻으려면, 웹페이지를 개발할 때 이 두가지를 조화롭게 사용해야 함

 

자바 웹 어플리케이션(Java Web Application)

  • WAS에 설치되어 동작하는 어플리케이션
  • HTML, CSS , 이미지, 자바로 작성된 클래스, 각종 설정 파일 등이 포함 됨

 

2) Servlet 작성 방법

버전에 따른 Servlet 작성 방법

1. Servlet 3.0 spec 이상에서 사용하는 방법

  • web.xml 파일을 사용하지 않습니다.
  • 자바 어노테이션(annotation)을 사용합니다.
  • 앞에서 실습했던 first web에서 사용합니다.

2. Servlet 3.0 spec미만에서 사용하는 방법

  • servlet을 등록할 때 web.xml 파일에 등록합니다.

 

3) Servlet 라이프 싸이클

LifecycleServlet

  • HttpServlet의 3가지 메소드를 오버라이딩

  • init()
  • service(request, response)
  • destroy()

<출처 : https://www.edwith.org/boostcourse-web/lecture/16689/>

Servlet 생명 주기

  • Was는 서블릿 요청을 받으면 해당 서블릿이 메모리에 있는지 확인
  • 메모리에 없으면 해당 서블릿 클래스를 메모리에 올림 -> init() 메소드를 실행 -> service() 메소드 실행
  • was가 종료되거나, 웹 어플리케이션이 새롭게 갱신된 경우에 destroy() 메소드가 실행 됨

service(request, response) 메소드

  • HttpServlet의 service 메소드는 템플릿 메소드 패턴으로 구현
  • 클라이언트의 요청이 Get일 경우에는 자신이 가지고 있는 doGet(requeset, response) 메소드 호출
  • 클라이언트의 요청이 Post일 경우에는 자신이 가지고 있는 doPost(requeset, response)를 호출

 

4)Request, Response 객체 이해하기

Request, Response 이해하기

 

<출처 : https://www.edwith.org/boostcourse-web/lecture/16689/>

요청과 응답

  • 요청 할 때 가지고 잇는 정보를 HttpServletRequest 객체를 생성하여 저장
  • 웹 브라우저에게 응답을 보낼 때 사용하기 위해 HttpSErvletResponse 객체를 생성
  • 생성된 HttpServletRequest, HttpServletResponse 객체를 서블릿에게 전달

HttpServletRequest

  • http프로토콜의 request 정보를 서블릿에게 전달하기 위한 목적으로 사용
  • 헤더 정보, 파라미터, 쿠키, url, uri 드으이 정보를 읽어 들이는 메소드를 가지고 있음
  • Body의 sTream 을 읽어 들이는 메소드를 가지고 있음

HttpServletResponse

  • WAS는 어떤 클라이언트가 요청을 보냈는지 알고 있고, 해당 클라이언트에게 응답을 보내기 위해 HttpServletResponse객체를 생성하여 서블릿에게 전달
  • 서블릿은 해당 객체를 이용하여 content type, 응답 코드, 응답 메세지 등을 전송함

 

<해당 포스트는 교육 목적을 위해 '부스트코스'의 강의를 듣고 강의자료를 개인적으로 정리한 것으로 모든 내용의 출처와 저작권은 부스트코스에 있습니다.>