[JAVA 기초] 서블릿 프로그래밍

shooting star·2023년 6월 20일
1

JAVA 기초

목록 보기
4/5

CGI 프로그램과 서블릿

CGI(Common Gatewqy Interface)는 웹 서버와 애플리케이션 사이에 데이터를 주고받는 규약이다. CGI의 규칙에 따라서 만들어진 프로그램을 CGI프로그램이라고 한다. CGI 프로그램의 종류로는 컴파일 방식인 C, C++, Java 등이 있고 인터프리터 방식의 PHP, Python이 있다.

웹서버는 스크립트 엔진을 실행시켜 스크립트 파일을 해석하여 웹서버에게 결과값을 돌려준다. 웹서버와 스크립트 엔진사이에서는 CGI 규칙이 적용되고 있다. 서블릿과 서블릿 컨테이너에도 동일하게 적용된다.

웹서버와 스크립트엔진사이에는 CGI가 적용된다. 즉, 개발자는 더이상 CGI에 신경쓰지 않아도 된다. 대신에 서블릿컨테이녀와 파일 사이에 대해서 알아야 한다.

Servlet(Server + Applet)이란?

자바에서 웹 애플리케이션을 만드는 기술로 자바에서 동적인 웹 페이지를 구현하기 위한 표준이다.

ServletContainer

Container는 라이프사이클을 관리할때 붙여진 이름이다 즉, 서블릿의 생성부터 소멸까지의 라이프사이클을 관리하는 역할을 한다. 그래서 서블릿 컨테이너는 웹 서버와 소켓을 만들고 통신하는 과정을 대신 처리해주는 것이다. 그렇기 때문에 개발자는 비즈니스 로직에만 집중하면된다. 또핞 서블릿 객체를 싱클톤으로 관리한다. 이는 인스턴스 하나만 생성하여 공유하는 방식으로 상태를 유지하게 설게하면 안되고, Thread safety하지 않는다.

WAS

WAS는 서블릿 컨테이너를 포함하는 개념으로 매 요청마다 스레드 풀에서 기존 스레드를 사용한다. WAS의 주요 튜닝 포인트는 max thread 수이다. 이를 얼만큼 할 것인지가 중요하다는 것이다. 대표적인 WAS는 톰켓이다.

Servlet 만들기


Servlet를 만들기 위해서는 다음과 같은 과정을 지켜야 한다. 그리고 서블릿 인터페이스는 서블릿 컨테이너가 서블릿 인터페이스에 있는 메소드들을 호출한다. 메소드는 라이프사이클과 관련된 메소드와 그외의 메소드들이 있다. 라이프사이클과 관련된 메소드는 init(), service(), destroy()가 있고 그 외에는 getServletConfig(), getServletInfo()가 있다.

서블릿을 왜 알아야 할까?

0개의 댓글