WAS(Web Application Server)란?
- DB 조회나 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Web Application Server이다
- Web container, Servlet Container 라고도 불린다.
- container란 jsp, servlet을 실행시킬 수 있는 소프트웨어를 말한다
*jsp(Java Server Page)
개념
특징
-
서블릿은 자바 소스 코드 속에 HTML코드가 들어가 있는 형태인데,
JSP는 이와 반대로 HTML 소스코드 속에 자바 소스코드가 들어가는 구조
를 갖는 웹 어플리케이션 프로그래밍 기술이다.
-
JSP 는 WAS(Web Application Server)에 의하여 서블릿 클래스로 변환되어 사용된다.
*servlet
개념
- 동적 웹페이지를 만들 때 요청(request)과 응답(response)의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 java기반의 웹 프로그래밍 기술
- 클라이언트의 요청을 처리하고, 그 결과를 반환하는 servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술
- 자바를 사용하여 웹을 만들기 위해 필요한 기술
특징
- html을 사용하여 요청에 응답
- java thread를 이용하여 동작
- MVC 패턴에서 Controller로 이용
- HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속받음
WAS의 종류와 특징
Tomcat 기능
- jsp/servlet container 중 하나로 사용자에게 jsp요청을 받으면 서블릿으로 바꾸어 실행
- Web Server에서 요청한 동적 페이지를 읽어 프로그램을 실행
- 그 결과를 다시 HTML로 재구성하여 Web server에 전달
Tomcat 특징
- servlet container를 지원함
- 톰캣은 실제로 웹 서버와 통신하며 JSP와 Servlet이 작동하는 환경을 제공해줌
- os의 제약이 없음(windows, linux, unix 등)
Web server와 WAS는 목적이 다르다.
웹 서버는 정적인 데이터를 처리하는 서버이다. 이미지나 단순 html 파일과 같은 리소스를 제공하는 웹 서버를 통하면 was를 이용하는 것보다 빠르고 안정적이다.
WAS는 동적인 데이터를 처리하는 서버이다. DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우에는 WAS를 활용해야 한다.