Notice
Recent Posts
Recent Comments
Link
청개구리 개발자
Java Servlet 이란?? 본문
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 주요 역할
서블릿이 수행하는 주요 역할
- 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의 생성부터 소멸까지 정의되어 진다.
-
init() 메소드에 의해서 Servlet은 생성된다.
- service() 메소드에 의해서 Client의 요청을 처리한다.
- 서버가 Servlet이 처리해야할 요청을 받을 때마다, 서버는 새로운 스레드를 생성하고 service 메서드를 호출한다.
service 메서드는 HTTP request type등을 체크해 적절한 메소드(doGet, doPost, doPut, doDelete, ...)를 호출한다.
- 서버가 Servlet이 처리해야할 요청을 받을 때마다, 서버는 새로운 스레드를 생성하고 service 메서드를 호출한다.
- destory() 메소드에 의해서 Servlet은 소멸된다.
- Servlet은 JVM의 garbage collector에 의해서 수집되어지는 garbage가 된다.
'Java' 카테고리의 다른 글
JUnit 사용법 및 테스트 [좌표 찍기] (0) | 2020.02.12 |
---|---|
JPA(Java Persistence API)란?? (0) | 2020.01.13 |
Comments