JSP 등장
- 서블릿으로 화면 구현 시 문제점
- 기존 서블릿에서는 자바 코드를 기반으로 문자열을 사용해 HTML과 자바스크립트로 화면을 구현했음
- JSP는 이와 반대로 HTML, CSS와 자바스크립트를 기반으로 JSP요소들을 사용해 화면을 구현함
- 웹 프로그램의 화면 기능이 복잡해지므로 서블릿의 자바 기반으로 화면 기능 구현 시 어려움이 발생
- 디자이너 입장에서 화면 구현시 자바 코드로 인해 작업을 어려워함
- 서블릿에 비즈니스 로직과 화면 기능이 같이 있다 보니 개발 후 유지관리가 불편
- 해결책
- 서블릿의 비즈니스 로직과 결과를 보여주는 화면 기능을 분리
- 비즈니스 로직과 화면을 분리함으로써 개발자는 비즈니스 로직 구현에 집중하고, 디자이너는 화면 기능에만 집중
- 개발 후 재사용성과 유지관리가 훨씬 수월
JSP 구성 요소
- HTML, CSS, JAVASCRIPT
- JSP 기본 태그
- JSP 액션 태그
- 개발자가 직접 만들거나 프레임워크에서 제공하는 커스텀 태그
톰캣에서 JSP 변환 과정
- 변환단계 : 컨테이너는 JSP 파일을 자바 파일로 변환
- 컴파일단계 : 컨테이너는 변환된 자바파일을 클래스 파일로 컴파일
- 실행단계 : 컨테이너는 클래스파일을 실행하여 그 결과를 브라우저로 전송해 출력
JSP 페이지 구성 요소
- 디렉티브 태그(Directive Tag)
- 스크립트 요소(Scriptring Element): 주석문, 스크립트릿(Scriptlet), 표현식, 선언식
- 표현언어(Expression Language)
- 내장 객체(내장 변수)
- 액션 태그(Action Tag)
- 커스텀 태그(Custom Tag)
디렉티브 태그 종류
- 페이지 디렉티브 태그(Page Directive Tag) : JSP 페이지의 전반적인 정보를 설정할 때 사용
- <%@ page 속성1="값1" 속성2="값2" 속성3="값3"... %>
- 인클루드 디렉티브 태그(Include Directive Tag) : 공통으로 사용하는 JSP 페이지를 다른 JSP 페이지에 추가할 때 사용
- 특징 : 재사용성이 높다 / JSP 페이지의 유지관리가 쉽다.
- <%@ include file="example.jsp"%>
- 태그라이브 디렉티브 태그(Taglib Directive Tag) : 개발자나 프레임워크에서 제공하는 태그를 사용할 때 사용
JSP 스크립트 요소 기능
- JSP페이지에서 여러가지 동적인 처리를 제공하는 기능
- <% %> 기호 안에 자바 코드로 구현
- <% %> 기호를 스크립트릿(Scriptlet)이라고 부름
- 스크립트릿 종류
- 선언문(declaration tag) : JSP에서 변수나 메서드를 선언할 때 사용
- 스크립트릿(scriptlet) : JSP에서 자바 코드를 작성할 때 사용
- 표현식(expression tag) : JSP에서 변수의 값을 출력할 때 사용
- 스크립트릿 안에는 !! 자바코드만 사용가능 !!
- 주석문
- JSP 주석문
- HTML주석문
- 자바스크립트 주석문
내장 객체(내장 변수) 기능
- JSP가 서블릿으로 변환 시 컨테이너가 자동으로 생성 시키는 서블릿 멤버 변수