티스토리 뷰

1. 서블릿이란 무엇인가?

 

서블릿의 용어는 Server + Let 의 합성어라고 하는 사람들도 있고 Server + Applet 이라는 사람들도 있다. 


"클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램" 


이라고 이해하면 될 것 같다. 

자바와 관련이 있으므로 당연히 JDK 가 필요하다. 즉 자바 API 와 이를 동작시키는 JVM 이 필요하다는 소리이다.


2. 서블릿 컨테이너

 

서블릿을 관리해주는 놈을 서블릿 컨테이너라고 한다.

그냥 서버에 서블릿 만들어서 위치해 둔다고 클라이언트의 Request/Response 를 처리해줄리가 없다. 

서블릿 컨테이너는 서블릿의 생명주기를 관리하고 요청에 따른 스레드를 생성해준다. 또, 클라이언트의 Request 를 받아주고 Response 를 보낼 수 있게 웹 서버와 소켓을 만들어서 통신을 해준다. 자세한 서블릿 컨테이너의 역할은 아래와 같다.


 3. 톰캣

 

톰캣은 서블릿 컨테이너이다. 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바 서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다. 톰캣은 관리툴을 통해 설정을 변경할 수 있지만, XML 파일을 편집하여 설정할 수도 있다. 그리고, 톰캣은 HTTP 서버도 자체 내장하기도 한다. 

보통 톰캣은 WAS 의 기능을 수행한다라고 말한다. 


웹서버에 화면을 동적으로 보여주기위해 여러가지 로직이 들어가게되는데 한서버에 로직이 집중되어 있다보니 무거워지고 속도및 보안에 문제가 생긴다. 그래서 화면에 뿌려주는 로직(Presentation Logic)은 웹서버(Servlet Engine)에 실제돌아가는 로직(Business Logic)은 WAS에서 일을 나누어 역할 분담 시키는 것입니다.

Web Application ?  웹을 기반으로 실행되는 프로그램을 의미.


웹브라우저            1.요청 

웹서버                 2.처리를 요청 

웹어플리케이션서버 3.처리를 수행 

DB                     4.처리를 수행

웹어플리케이션      5.서버(처리결과 웹서버로 돌려보낸다)

웹서버                 5.응답 

웹 브라우저 



즉 클라이언트  <--> 웹서버 간의 통신을 좀더 보충해주는 역할을 하는 것이 웹 어플리케이션 서버


요즘 톰캣의 버젼이 올라가면서 웹 서버의 기능도 충분히 잘 수행하기 때문에 굳이 웹 서버와 WAS 를 나눠서 생각하지 않아도 될 것 같다.


아파치 소프트웨어 재단의 애플리케이션 서버로서, 자바 서블릿을 실행시키고 JSP 코드가 포함되어 있는 웹페이지를 만들어준다. 

톰캣은 자체적으로 보유하고 있는 내부 웹서버와 함께 독립적으로 사용 될 수도 있지만 아파치나 다른 웹서버와 함께 사용할 수도 있다. 



보통은 클라이언트의 요청에 대한 정적인 데이타를 처리하느냐(.html,jpg등의파일)

아니면 DB와 연동해서 동적인 데이타처리를 하느냐에 따라 웹서버와 WAS를 분류하는 것이 정설인데


Container역시 WAS서버의 역할을 충실하게 담당하고 있다.
was라는 것이 따로 있고 container라는 개념이 따로 별개로 있는 것이 아니다.


---> 홈페이지에 접속했을때 메인화면에 뿌려주는 사진들, 레이아웃등이 정적인 데이터이며 이것은 웹서버가 전송해준다.

---> 우리가 로그인을 하는 경우 디비에서 값을 꺼내서 확인하는등 동적인 데이터를 처리해주는 역할을 하는것은 웹 어플리케이션 서버이다.



한줄 요약 : 

클라이언트가 어떤 요청을 보냈을때(예를들면 홈페이지에 접속하는 것.) 웹서버와 웹어플리케이션서버의 합작으로 응답이 이루어지는데, 

요청을 받아 동적으로 데이터(디비접근등..)를 처리해서 응답을 내주는 자바 프로그램을 서블릿이라고 하고, 이 프로그램을 관리해주는 역할을 하는것이 서블릿컨테이너 == 톰캣 이라고 한다.





  •  인터셉터와 필터의 위치




'컴퓨터 공학과 졸업 > 기본 개념' 카테고리의 다른 글

DBCP  (0) 2018.02.14
JNDI  (0) 2018.02.14
GET방식과 POST방식  (1) 2018.01.26
POJO,DTO,DAO,VO  (2) 2018.01.23
자바 빈즈란?  (0) 2018.01.21
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함