📘 JSP란?
- JAVA 코드가 들어가 있는 HTML 코드이다.
- Java의 웹서버 프로그램 스펙(서블릿)으로 변환되어 서비스가 된다.
📜 Servlet과 JSP의 차이점
Servlet
- "웹 서비스 기능을 해주는 자바 클래스" 를 말하는 것으로 자바 소스코드 속에 HTML 코드가 들어가는 형태이다.
-> HTML 문서를 작성하는데 복잡하고 번거롭다는 단점이 있다.
JSP
- 복잡한 Servlet을 좀 더 간단히 사용할 수 있다.
- Servlet과 반대로 HTML 소스코드 속에 자바 소스코드(<% %> or <%= %>)가 들어가는 형태이다.
-> 컴파일을 통해 클래스 파일로 변환되어 웹 서버(WAS)에서 실행된다.
📜 JSP 동작 구조
✏ Servlet/JSP 동작 순서
- 웹 서버가 사용자로부터 서블릿에 대한 요청을 받으면 서블릿 컨테이너에 그 요청을 넘긴다.
- 요청을 받은 컨테이너는 HTTPRequest와 HTTPResponse객체를 만들어 서블릿 doPost()나 doGet() 메서드 중 하나를 호출한다.
- 클라이언트가 요청에 대한 응답 웹 페이지를 보여줄 때 기존 Servlet에서 출력 객체를 이용해 HTML 문서 작성하던 부분(프레젠테이션 로직)을 JSP로 분리한다.
-> 데이터의 입력, 수정 등의 대한 제어를 JSP로 넘겨 가독성을 높힌다.
- JSP에게 넘겨진 프레젠테이션 로직을 수행한 후 컨테이너에게 Response를 전달한다.
- 전달받은 JSP 프레젠테이션 로직 수행 결과와 Servlet이 결합되어 .class 파일이 만들어진다.
📜 JSP 장점
- 서블릿보다 쉽고 작성하기 빠르다.
- 디자인 부분(html)과 로직 부분( java)으로 이루어져 있다,
- 정보, 디자인 부분(html)과 로직 부분( java)을 분리시킬 수도 있다.
- 프로그래머가 직접 코딩한 서블릿 보다 최적화 된 서블릿으로 생성시켜주므로 효율적인 코드가 만들어진다.
- 웹 애플리케이션 상에서 변수의 사용 가능한 범위(scope)설정이 쉽다.