JSP에서는 스크립트 태그, 선언문 태그, 스크립틀릿 태그, 표현문 태그 등 여러 태그들이 있습니다.
이번 포스팅에서는 JSP 태그의 기능과 사용법에 대해 알아보겠습니다.
JSP는 태그를 이용하여 문법을 기술합니다.
JSP 태그는 크게 스크립트 태그, 디렉티브 태그, 액션 태그로 나뉩니다.
<스크립트 태그>
- HTML 코드에 자바 코드를 넣어 프로그램이 수행하는 기능을 구현할 수 있습니다.
<디렉티브 태그>
- JSP 페이지를 어떻게 처리할 것인지 설정하여 JSP 페이지에 대한 정보를 JSP 컨테이너에 보냅니다.
<액션 태그>
- 클라이언트 / 서버에 어떤 작동을 행하도록 지시하는 XML 형태의 태그로, JSP 사이에서 제어를 이동할 수도 있습니다.
[ 스크립트 태그의 종류 ]
스크립트 태그 | 형식 | 설명 |
선언문 (declaration) |
<%! ~~~ %> | 자바 변수나 메소드를 정의하는 데 사용합니다. |
스크립틀릿 (scriptlet) |
<% ~~~ %> | 자바 로직 코드를 작성하는 데 사용합니다. |
표현문 (expression) |
<%= ~~~ %> | 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력하는 데 사용합니다. |
선언문, 스크립틀릿, 표현문 태그의 예시를 알아보기 위해 [JSP] JSP와 개발 환경 도구 설정 포스팅에서 만들었던
Hello.jsp 파일을 열어서 아래와 같이 수정했습니다.
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Web_Programing</title> </head> <body> <h1> Scripting Tag </h1> <%---------- 1번 블록 ----------%> <%! int count = 3; String makeItLower(String data) { return data.toLowerCase(); } %> <%---------- 1번 블록 ----------%> <%---------- 2번 블록 ----------%> <% for (int i = 1; i <= count; i++) { out.println("Java Server Pages " + i + ".<br>"); } %> <%---------- 2번 블록 ----------%> <%---------- 3번 블록 ----------%> <br> <%=makeItLower("Hello World") %> <%---------- 3번 블록 ----------%> </body> </html> |
보다 보기 쉽게 하기 위하여 JSP 주석을 활용하여 임의로 세 개의 블록으로 나누었습니다.
(JSP 주석은 <%-- 주석 --%> 의 형식으로 이루어져 있습니다.)
1번 블록 |
<%! int count = 3; String makeItLower(String data) { return data.toLowerCase(); } %> |
1번 블록은 “선언문 태그”를 사용하여 자바 변수와 메소드를 정의한 것입니다.
- 1번 블록의 선언문(declaration) 태그는 변수나 메소드 등을 선언하는 태그입니다.
- 선언문 태그에 선언된 변수와 메소드는 서블릿 프로그램으로 변환될 때 _jspService() 메소드 외부에 배치되므로 JSP 페이지 임의의 위치에서 선언할 수 있습니다.
- 선언문 태그 안의 내용은 각 행이 세미콜론으로 끝나야 합니다.
2번 블록 |
<% for (int i = 1; i <= count; i++) { out.println("Java Server Pages " + i + ".<br>"); } %> |
2번 블록은 “스크립틀릿 태그”로 자바 로직 코드를 작성한 것입니다.
스크립틀릿 태그는 선언문 태그와 다르게, 메소드 없이 변수만을 선언할 수 있습니다.
스크립틀릿 태그는 선언문 태그와 다르게, 서블릿 프로그램으로 변환될 때 _jspService() 메소드 내부에 배치됩니다.
스크립틀릿 태그 안의 내용은 각 행이 세미콜론으로 끝나야 합니다.
3번 블록 |
<br> <%=makeItLower("Hello World") %> |
3번 블록은 “표현문 태그”로 선언문의 메소드를 호출하여 문자열 형태로 출력한 것입니다.
표현문 태그는 웹 브라우저에 출력할 부분을 표현하는 태그입니다.
표현문 태그는 스크립틀릿 태그에서 사용할 수 없습니다.
표현문 태그 안의 내용은 각 행을 세미콜론으로 종료할 수 없습니다.
[ 선언문 태그에서 전역변수 선언 ]
1번 블록의 선언문 태그에서 전역변수 count를 3으로 초기화하고,
2번 블록 안의 스크립틀릿 태그에서 전역변수 count를 사용한 것을 확인할 수 있습니다.
(2번 블록에서 i를 count번 반복합니다. count는 전역변수이기 때문에 2번 블록에서도 사용할 수 있으며,
1번 블록에서 3으로 초기화하였기 때문에 2번 블록에서의 count는 3과 같습니다.)
[ 선언문 태그에서 전역 메소드 선언 ]
1번 블록에서 전역 메소드 makeItLower()를 선언한 후, 3번 블록에서 전역 메소드 makeItLower()를 호출한 것을 알 수 있습니다. (전역 메소드이기 때문에 3번 블록에서도 사용할 수 있습니다.)
[ 스크립틀릿 태그에서 지역변수 선언 ]
1번 블록(선언문 태그)과 다르게, 2번 블록(스크립틀릿 태그)에서 선언한 변수 i는 전역변수가 아닌 지역변수입니다.
따라서 변수 i는 1번 블록이나 3번 블록에서 사용이 불가합니다.
'[JSP] 웹 프로그래밍' 카테고리의 다른 글
[JSP] JSP 페이지의 처리 과정과 생명 주기, 동/정적 웹 페이지 특징 (2) | 2022.03.04 |
---|---|
[JSP] JSP와 개발 환경 도구 설정 (0) | 2022.03.03 |