본문 바로가기
프로그래밍 기초/JAVA

서블릿(Servlet)이란?

by junsday 2016. 10. 26.

1. 서블릿(Servlet)


JAVA를 이용하여 웹페이지를 동적으로 생성하는 서버측 프로그램이다.

흔히들 CGI(Common Gateway Interface)라고들 하는데 CGI는 사용자의 입력을 받아서 동적인 HTML문서를 만드는 것이다. 웹 페이지에서 로그인 한 사용자에 따라 서로 다른 부분이 있다. 쉽게 예를 들어 로그인을 하고나면 ~님 안녕하세요 라고 띄울 때 ~부분은 사용자에 따라 달라지게 되는 데 이 부분이 동적인 부분으로 매번 다르게 생성되는 부분이다.

Servlet이란 JAVA로 구현 된 CGI라고 생각하면 된다.

jsp와 혼동될 수 있는데 jsp는 html문서에 java언어를 삽입한 것이고, servlet이란 java언어로 이루어진 웹프로그래밍 문서이다.


자세한 내용은 http://anster.tistory.com/128를 참고하자.


javax.servlet.http.HttpServlet 클래스를 상속받아서 사용한다.



2. 서블릿 컨테이너(Servlet Container)


구현되어 있는 servlet클래스의 규칙에 맞게 서블릿을 관리해주는 것이 서블릿 컨테이너이다.


클라이언트에서 요청을 하면 컨테이너는 HttpServletRequest, HttpServletResponse 두 객체를 생성하며 post, get 여부에 따라 동적인 페이지를 생성하여 응답을 보내고 두 객체는 사라진다.



3.톰캣(Tomcat), 아파치(Apache)


보통 웹 서버를 개발할 때에 함께 설치하여 사용하는 것이 톰캣과 아파치이다.

톰캣을 위에서 본 동적인 페이지를 생성하기 위한 서버이다. WAS(Web Application Server)라고 한다. 리눅스에 웹 서버를 띄우려고 할 때에 많은 블로그를 보면 톰캣과 아파치를 다운받아 연동을 시키는데 웹 서버를 처음 공부하는 사람에게는 톰캣 만으로 충분히 서버를 운영할 수 있다. 하지만 이 둘의 차이는 확실히 알고 가야한다.

보통 톰캣과 아파치를 함께 사용하는 이유로서는 WS(Web Server)와 WAS의 기능을 분리하기 위함이다.

WS인 아파치는 정적인 데이터를 처리하는 서버이고,

WAS인 톰캣은 동적인 데이터를 처리하는 서버이다.

아파치와 톰캣은 목적부터가 다르다.

이미지나 단순 파일 등의 정적인 리소스를 제공하는 서버는 WAS를 이용하는 것 보다 WS를 이용하는 것이 빠르고 안정적이다.

WAS는 DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우에 사용하는 것이 옳다.



출처1 : http://ha0programming.tistory.com/8

출처2 : http://sungbine.github.io/tech/post/2015/02/15/tomcat%EA%B3%BC%20apache%EC%9D%98%20%EC%97%B0%EB%8F%99.html

'프로그래밍 기초 > JAVA' 카테고리의 다른 글

[Java8] Default Method와 Static method  (1) 2017.06.20
[Java8] 함수형 프로그래밍  (0) 2017.06.20
쿠키와 세션, 캐시  (0) 2016.10.26
interface와 abstract class의 차이  (0) 2016.10.26

댓글