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()
Servlet 생명 주기
- Was는 서블릿 요청을 받으면 해당 서블릿이 메모리에 있는지 확인
- 메모리에 없으면 해당 서블릿 클래스를 메모리에 올림 -> init() 메소드를 실행 -> service() 메소드 실행
- was가 종료되거나, 웹 어플리케이션이 새롭게 갱신된 경우에 destroy() 메소드가 실행 됨
service(request, response) 메소드
- HttpServlet의 service 메소드는 템플릿 메소드 패턴으로 구현
- 클라이언트의 요청이 Get일 경우에는 자신이 가지고 있는 doGet(requeset, response) 메소드 호출
- 클라이언트의 요청이 Post일 경우에는 자신이 가지고 있는 doPost(requeset, response)를 호출
4)Request, Response 객체 이해하기
Request, Response 이해하기
요청과 응답
- 요청 할 때 가지고 잇는 정보를 HttpServletRequest 객체를 생성하여 저장
- 웹 브라우저에게 응답을 보낼 때 사용하기 위해 HttpSErvletResponse 객체를 생성
- 생성된 HttpServletRequest, HttpServletResponse 객체를 서블릿에게 전달
HttpServletRequest
- http프로토콜의 request 정보를 서블릿에게 전달하기 위한 목적으로 사용
- 헤더 정보, 파라미터, 쿠키, url, uri 드으이 정보를 읽어 들이는 메소드를 가지고 있음
- Body의 sTream 을 읽어 들이는 메소드를 가지고 있음
HttpServletResponse
- WAS는 어떤 클라이언트가 요청을 보냈는지 알고 있고, 해당 클라이언트에게 응답을 보내기 위해 HttpServletResponse객체를 생성하여 서블릿에게 전달
- 서블릿은 해당 객체를 이용하여 content type, 응답 코드, 응답 메세지 등을 전송함
<해당 포스트는 교육 목적을 위해 '부스트코스'의 강의를 듣고 강의자료를 개인적으로 정리한 것으로 모든 내용의 출처와 저작권은 부스트코스에 있습니다.>