Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

청개구리 개발자

Java Servlet 이란?? 본문

Java

Java Servlet 이란??

beConstant 2020. 1. 11. 17:46

Servlet이 무엇인가??

자바 공식문서에는 다음과 같이 정의되어 있다.

Java Servlet이란? 요청 - 응답 프로그래밍 모델에 의해 접근하는 응용 프로그램을 호스팅하는 서버의 기능을 확장시키는데 사용되는 자바 프로그래밍 언어의 클래스이다. 서블릿은 모든 유형의 요청에 응답할 수 있지만, 서블릿은 일방적으로  웹 서버에 의해 호스팅되는 어플리케이션의 확장에 사용된다.

다시 말해서 Servlet이란?

 

웹 기반의 어플리케이션을 빌드하기 위해 CGI(Common Gateway Interface) 제한없이 component 기반의 플랫폼 독립적인 메소드를 제공하는 클래스이다.

 

*CGI(Common Gateway Interface) : 웹 서버 상에서 사용자의 프로그램을 동작시키기 위한 조합이다.

 

CGI를 사용하지 않고 Java Servlet을 사용하는지에 대해서 알아보자

  • Java Servlet이 CGI에 비해서 Performance가 훨씬 좋다.
  • Servlet은 웹 서버의 주소공간 내에서 실행된다. client의 요청을 다루기 위해 process를 분리해서 생성할 필요가 없다.
  • Servlet은 자바로 작성되어 있음으로 Platform 독립적이다.
  • 서버의 Java Security Manager가 리소스 보호를 위해 제한을 걸어두기 때문에 보안이 향상된다.
  • Java 클래스 라이브러리의 모든 기능은 Servlet에서 사용할 수 있다.

Servlet 아키텍처

Servlet은 브라우저, HTTP client로부터의 요청과 HTTP Server의 어플리케이션과 database 사이의 middle layer의 역할을 수행한다.

Servlet Architecture

Servlet 주요 역할

서블릿이 수행하는 주요 역할

  • Servlet은 Client로부터 보내진 데이터를 읽을 수 있습니다. 
    (Client : HTML Form, Applet, HTTP Client Program, ...)
    (Data : cookies, media types, compression schemes, ...)
  • Servlet은 data를 처리하고 결과를 생성한다. ( Database를 접근해야 될 수도 있고, RMI, CORBA call, 웹 서비스 호출, 응답을 직접적으로 프로세싱 할 수도 있다.)
  • Servlet은 함축된 HTTP Response를 Clients에게 보내준다. ( 이 HTTP Response는 Client에게 어떤 타입의 document가 응답되었는지를 알려준다,)
  • Servlet은 명확한 데이터(document, ...)를 Client에게 보내준다. ( 이 document는 HTML, XML, GIF images, Excel, .. 다양한 형식으로 보내질 수 있다.)

Servlet 수명 주기

Servlet life Cycle은 전체 프로세스에서 Servlet의 생성부터 소멸까지 정의되어 진다.

  1. init() 메소드에 의해서 Servlet은 생성된다.

  2. service() 메소드에 의해서 Client의 요청을 처리한다.
    • 서버가 Servlet이 처리해야할 요청을 받을 때마다, 서버는 새로운 스레드를 생성하고 service 메서드를 호출한다.
      service 메서드는 HTTP request type등을 체크해 적절한 메소드(doGet, doPost, doPut, doDelete, ...)를 호출한다.
  3. destory() 메소드에 의해서 Servlet은 소멸된다.
  4. Servlet은 JVM의 garbage collector에 의해서 수집되어지는 garbage가 된다.

Servlet - Lieft Cycle

'Java' 카테고리의 다른 글

JUnit 사용법 및 테스트 [좌표 찍기]  (0) 2020.02.12
JPA(Java Persistence API)란??  (0) 2020.01.13
Comments