서블릿으로 프로그래밍을 진행했지만, 내부적으로 어떻게 동작하는지는 살펴본적이 없어서 살펴보고자 한다.
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이란 아파치 소프트웨어 재단에서 개발한, 서블릿 컨테이너만 있는 웹 애플리케이션 서버이다. 톰캣은 웹서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바서버 페이지와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다.
△ 역할
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 |
---|
댓글