웹(web)
전세계에 거대한 네트워크 망을 통해 정보를 공유하며 정보의 흐름은 양방향성을 가진다.
웹 어플리케이션(Web Application)
웹에서 실행되는 응용프로그램을 뜻하며 인터넷을 통한 업무, 쇼핑, 등등 인터넷에서 하는 여러 서비스를 총칭하며 사용자가 필요한 요청(Request) 를 하고 서버에서는 이에 해당하는 요청을 수행하고
그리고 요청한 데이터를 응답(Response) 한다.
컨테이너란?
컨테이너는 어떤 환경에서나 실행하기 위해 필요한 모든 요소를 포함시키는 SW 패키지 (== 실행가능하게 해주는 패키지)
웹 브라우저(Web Browser) : 클라이언트에서 요청을 하고 전달받은 페이지를 볼수있는 환경을 말한다. ( 크롬, Safari, Firefox 등.. )
웹 서버(Web Server) : 클라이언트로 부터 요청받아 서버에 저장된 리소스를 클라이언트 에게 전달한다. 주로 정적컨텐츠를 담당한다.
웹 어플리케이션 서버( Web Application Server ) : 약자로 was 라고 부르며, 서버단에서 필요한 기능을 수행하고 그 결과를 웹서버에게 전달한다.
데이터베이스(Data base, DB) : 서비스에 필요한 데이터를 보관, 갱신 등 관리를 한다.
JSP 란 JavaServer Pages 의 약자이며, HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다.
JSP 가 실행되면 자바 서블릿(Servlet) 으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고
그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.
서블릿이란 웹페이지를 동적으로 생성하기 위해 서버측 프로그램을 말한다.
이는 자바 언어를 기반으로 만들지며 웹 어플리케이션 서버 ( Web Application Sever ) 위에서 컴파일 되고 동작한다.
개념
특징
동작방식(서블릿 컨테이너 생명주기)
신입 개발자에게 많이 물어보는 질문이기도 합니다.
JSP 와 서블릿(Servlet)의 차이점은 결과적으로 하는일은 동일하지만 JSP 는 HTML 내부에 JAVA 소스코드가 들어감으로 인해 HTML 코드를 작성하기 간편하다는 장점이있으며, 서블릿은 자바코드내에 HTML 코드가 있어서 읽고 쓰기가 굉장히 불편하기 때문에 작업의 효율성이 떨어진다.
정리
하는 일은 동일
JSP : HTML 내부에서 자바코드 사용
Servlet : 자바코드내에서 HTML 코드사용
하지만 기본적인 웹 학습에는 JSP 와 서블릿은 함께 학습하게 된다.
JSP 로 작성된 프로그램은 서버로 요청시 서블릿(Servlet) 파일로 변환되어 JSP 태그를 분해하고 추출하여 다시 순수한 HTML 를 변환한다.
JSP의 내부적인 동작 과정
JSP 문서는 백그라운드에서 Servlet으로 자동으로 변환
위 그림의 과정은 아래와 같다.
클라이언트가 어떤 동작을 함으로써 hello.jsp 를 요청
JSP 컨테이너가 JSP 파일을 읽는다.
JSP 컨테이너가 Generete (변환) 작업을 통해 Servlet ( .java ) 파일을 생성
.java 파일은 다시 .class 파일로 컴파일
Execute (실행) 을통해 HTML 파일을 생성하여 JSP 컨테이너 에게 전달
JSP 는 HTTP 프로토콜을 통해 HTML 페이지를 클라이언트에게 전달
JSP의 특징
References
- http://javacpro.tistory.com/43
- https://www.tutorialspoint.com/jsp/taglib_directive.htm
- https://www.javatpoint.com/jsp-useBean-action
- https://www.javatpoint.com/jsp-setProperty-and-jsp-getProperty-action-tag
- https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EC%84%9C%EB%B8%94%EB%A6%BFhttp://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm
- https://gmlwjd9405.github.io/2018/11/03/jsp.html