WEB/JSP

[JSP] Servlet이란? 클라이언트와 서버 사이의 Bridge

디벨로펄 2023. 3. 7.
반응형

서블릿으로 프로그래밍을 진행했지만, 내부적으로 어떻게 동작하는지는 살펴본적이 없어서 살펴보고자 한다.

 

 

Servlet은 클라이언트와 Backend사이의 다리 역할을 한다.

 

서블릿 : 클라이언트의 요청을 받아서 처리한 뒤 응답한다.

특징

- 클라이언트 요청에 동적으로 작동하는 웹 애플리케이션 컴포넌트

- html을 사용해 요청에 응답

- Java Thread로 동작.

- MVC의 Controller

- HTTP 프로토콜 서비스 지원하는 javax.servlet.http.HttpServlet 클래스 상속받음

- UDP 보다 처리 속도 느림

 

Servlet은 웹서버가 동적인 페이지를 제공할 수 있도록 도와준다.

 

CGI : Common Gateway Interface

별도로 제작된 웹서버와 프로그램간의 교환방식이다. 하나의 방법론이기 때문에, 어떠한 프로그래밍 언어로도 구현이 가능하다. HTML의 Get or Post방법으로 클라이언트의 데이터를 프로그램(서버)에 전달하고, 프로그램의 결과를 클라이언트에게 전송한다.

 

 

■ Servlet Container 서블릿 컨테이너 : 서블릿을 관리해주는 컨테이너

서블릿 컨테이너는 웹서버와 소켓으로 통신한다.(ex Tomcat)

*tomcat이란  아파치 소프트웨어 재단에서 개발한, 서블릿 컨테이너만 있는 웹 애플리케이션 서버이다. 톰캣은 웹서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바서버 페이지와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다.

request를 확인하고, url Pattern에 맞는 servlet을 찾아 처리한 후 응답을 보낸다.

△ 역할

1. 웹서버와의 통신 지원 : 서블릿과 웹서버가 쉽게 통신할 수 있게 해준다. 원래는 listen, accept 등이 필요하다고 한다.

 

2. 서블릿 생명주기 관리 : 서블릿의 생성과 소멸 관리. 서블릿 클래스를 생성하여 초기화하고, 요청이 들어오면 적절한 서블릿 메서드를 호출한다.(doPost, doGet) 소멸하는 순간에는 적절히 가비지 컬렉션을 실시한다.

 

3. 멀티 쓰레드 지원 및 관리 : 서블릿 컨테이너는 요청이 올 때마다 Thread 생성. Http 서비스 메서드를 실행하고 나면 Thread는 자동으로 Bye. 서버가 다중 스레드를 생성 및 운영하기 때문에, 직접 관리할 필요는 없다(휴 다행)

 

4. 선언적인 보안 관리 : 보안 관리는 xml에 작성하므로, 보안 관련 수정사항이 생겨도 자바 코드를 수정할 필요는 없다.

 

JSP: HTML 안에 Java있다

jsp 내부의 java코드는 WAS(Web Application Server)에 의해 Servlet 클래스로 변환되어 실행된다. 

<% java코드 %>

 

 

참고자료

망나니개발자 블로그 : https://mangkyu.tistory.com/14

반응형

'WEB > JSP' 카테고리의 다른 글

[JSP] JSP프로젝트 시작 : Dynamic Web Project(eclipse)  (0) 2023.03.08

댓글