Tomcat은 JSP 환경을 포함하고 있는 Servlet 컨테이너


Servlet과 jsp를 이용하여 로직을 처리한다


웹서버와 WAS는 이 처럼 동적데이터를 처리해주는 웹컨테이너의 유무 차이라고 보면 된다 


WAS = 웹 서버 + 웹 컨테이너

이미지 출처: http://gap85.tistory.com/45


사용자 요청(웹 브라우저) -> 웹 서버 -> WAS(동적 처리) -> 웹 서버 -> 사용자 응답 메세지(웹 브라우저)


웹 서버에서 JSP를 요청하면 톰캣에서는 JSP 파일을 서블릿으로 변환하여 컴파일을 수행하고, 서블릿의 수행결과를 웹 서버에서 전달하게 된다. 



출처: http://unabated.tistory.com/


Servlet이란

Servlet은 웹에서 JAVA 프로그래밍을 구현하기 위해 탄생 함.



서블릿(Servlet)

 - 자바 플랫폼에서 컴포넌트를 기반으로 한 웹 애플리케이션을 개발할 때 사용하는 핵심 기술.

   이러한 서블릿을 이용하면 웹 애플리케이션 확장이 용이하고 플랫폼에 독립적인 개발이 가능하다.

 - 쉽게 말하면 "클라이언트의 요구를 받아 그에 대한 처리를 한 후, 결과를 되돌려주는 서버 모듈"이다.


서블릿의 장점

1) 스레드를 기반으로 하기 때문에 웹 애플리케이션 운영에 효율적이다.

2) 자바를 기반으로 하므로 자바 API를 모두 사용할 수 있다.


웹 애플리케이션 개발시 서블릿 이용의 장점

1) 컨텐츠와 비즈니스 로직을 분리

2) 컨트롤러와 뷰 역할 분담으로 인해 웹 디자이너와 개발자간의 원활한 작업이 가능.

3) 유지보수가 수월, 기능 확장이 용이하다.

4) 현재와 같이 프로그래머가 HTML, 자바스크립트, 스타일 시트와 같은 복잡한 기술을 모두 알아야 할

    필요는 없다.

5) JSP에 HTML, CSS, 자바스크립트와 자바 소스 코드가 뒤섞이는 문제를 막는다.


동작 과정
1) 웹 서버는 클라이언트 요청을 컨테이너로 전달한다. 컨테이너는 서블릿이 메모리에 있는지 확인하고 없을시
   클라이언트 요청을 처리할 스레드를 생성해서 처리한다.
2) 서블릿은 JDBC를 이용해 데이터베이스에 접근할 수 있고, 별도로 제작된 자바 클래스를 통해 다양한 기능을 구현한다.
3) 서블릿에서 수행된 결과는 HTML 형식으로 클라이언트에 전달된다.

서블릿(Servlet)도 하나의 자바프로그램이긴 한데, 서블릿의 주된 업무는 사용자에게 정보를 입력받아 적절한 HTML 문서를 돌려주는 역할을 한다. 이러한 일을 하는 프로그램을 자바로 구현한 것이다. 사용자의 입력에 따라서 다른 HTML문서를 만들어내므로 동적인 HTML 문서를 구현할 수가 있게 된 것이다.

서블릿 규칙은 꽤 복잡하다. 따라서 이를 좀 더 쉽게 프로그래밍하기 위하여 나온 것이 JSP이다. JSP 문서를 실행시켜면 이 문서가 자동적으로 서블릿으로 컴파일되어 실행되게 된다.


이미지 출처: http://wiki.gurubee.net/pages/viewpage.action?pageId=26740202

.jsp -> .java -> .class -> .jsp


Servlet Container란

Servlet을 실행하고 생명주기를 관리하는 역할을 한다.

멀티 스레딩을 지원하여 클라이언트의 다중 요청을 알아서 처리해준다.

대표적인 Conatainer에는 Tomcat, jetty, jboss 등이 있다



출처: http://wan00ny.tistory.com/11

+ Recent posts