* 기존 서블릿에서는 자바 코드를 기반으로 문자열을 사용해 HTML과 자바스크립트로 화면 구현
서블릿으로 구현 시 문제점
- 웹 프로그램의 화면 기능이 복잡해지므로 서블릿의 자바 기반으로 화면 구현 시 어려움 발생
- 디자이너 입장에서 자바 코드로 인해 작업이 어려움
- 유지관리가 어려움
◎ JSP
* JSP는 HTML, CSS, 자바스크립트를 기반으로 JSP 요소들을 사용해 화면 구현
주로 웹 프로그램의 화면 기능과 모델2 기반 MVC에서 뷰(view) 기능을 담당
구성 요소
- HTML 태그, CSS, 자바스크립트 코드
- JSP 기본 태그
- JSP 액션 태그
- 개발자가 직접 만들거나 프레임 워크에서 제공하는 커스텀(custom) 태그
JSP의 3단계 작업 과정
- 변환 단계(Translation Step) : 컨테이너는 JSP 파일을 자바 파일로 변환
- 컴파일 단계(Compile Step) : 컨테이너는 변환된 자바(java) 파일을 클래스(class)파일로 컴파일
- 실행 단계(Interpret Step) : 컨테이너는 class 파일을 실행하여 그 결과(HTML, CSS와 자바스크립트 코드)를 브라우저로 전송해 출력
JSP 파일 자체를 브라우저로 전송하면 브라우저는 JSP 요소들을 인식하지 못함.
따라서 JSP는 톰캣 컨테이너에 의해 브라우저로 전송되기 전에 실행 단계를 거쳐야 함.
◎ 디렉티브 태그
: 주로 JSP 페이지에 대한 전반적인 설정 정보를 지정할 때 사용하는 태그
- 페이지 디렉티브 태그(Page Directive Tag) : JSP 페이지의 전반적인 정보를 설정할 때 사용
- 인클루드 디렉티브 태그(Include Directive Tag) : 공통으로 사용하는 JSP 페이지를 다른 JSP 페이지에 추가할 때 사용
- 태그라이브 디렉티브 태그(Taglib Directive Tag) : 개발자나 프레임워크에서 제공하는 태그를 사용할 때 사용
1. 페이지 디렉티브 태그
페이지 디렉티브 형식은 <%@ page %> 안에 속성과 값을 나열함.
<%@ page 속성1="값1" 속성2="값2" 속성3="값3"... %>
2. 인클루드 디렉티브 태그
공통으로 사용되는 JSP 페이지를 미리 만들어 놓고 다른 JSP 페이지 요청 시 인클루드 디렉티브 태그 사용
형식은 <%@ include file="공통기능.jsp" %>
인클루드 디렉티브 태그의 특징
- 재사용성이 높음.
- JSP 페이지의 유지관리가 쉬움
◎ JSP 스크립트 요소와 기능
JSP 페이지에서 여러 가지 동적인 처리를 제공하는 기능
<% %> : 스크립트릿(scriptlet) 이란 기호 안에 자바 코드로 구현
스크립트 요소의 종류
- 선언문(declaration tag) : JSP에서 변수나 메서드를 선언할 때 사용
- 스크립트릿(scriptlet) : JSP에서 자바 코드를 작성할 때 사용
- 표현식(expression tag) : JSP에서 변수의 값을 출력할 떄 사용
1. 선언문(declaration tag)
선언문은 JSP 페이지에서 사용하는 멤버 변수나 멤버 메서드를 선언할 때 사용
선언문의 형식
<%! 멤버 변수 or 멤버 메서드 %>
선언문 예제
<%!
String name = "네임";
public String getName() { return name; }
%>
이렇게 선언한 것은 HTML에서
<h1>안녕하세요 <%= name %> 님!! <h1>
위와 같은 표현식을 이용해 출력이 가능
2. 스크립트릿(scriptlet)
java 코드로 화면의 동적인 기능을 구현 또는 지역 변수 지정
스크립트릿의 형식
<% 자바 코드 %>
스크립트릿 예제
<% String age = request.getParameter("age"); %>
위 선언문과 동일하게 HTML에서 표현식을 이용해 출력
단, 서블릿의 _jspService( ) 메서드 안의 자바 코드로 변환
3. 표현식(expression tag)
JSP 페이지에서 변수나 메서드의 결과값 등을 브라우저에 출력하는 용도
표현식의 형식
<% 값 or 자바 변수 or 자바 식 %>
◎ JSP 주석문
- HTML 주석
- 자바 주석
- JSP 주석
HTML 주석 : <!-- 내용 -->
자바 주석 : /* 내용 */
JSP 주석 : <%-- 내용 --%>
브라우저로 전달된 HTML 태그를 보면 HTML 주석문은 브라우저로 전달되고 자바 주석문도 서블릿으로 변환 시 자바 주석문으로 표시
하지만 JSP 주석문은 JSP 자체의 주석문이기 떄문에 서블릿 코드로 변환하지 않음.
'개발 > Programming' 카테고리의 다른 글
[JSP] 표현언어와 JSTL (0) | 2021.07.14 |
---|---|
[JSP] 액션 태그 (0) | 2021.07.04 |
서블릿의 필터와 리스너 기능 (0) | 2021.06.22 |
웹 페이지 연결 기능(Session Tracking) (0) | 2021.06.18 |
ServletConfig 와 load-on-startup 기능 (0) | 2021.06.13 |