[JSP강의노트] 제1강 JSP 태그
JSP 태그
주석
JSP는 HTML 스타일과 Java 스타일의 주석을 함께 사용합니다. JSP가 태생적으로 HTML에 끼어넣는 형식으로 코딩할 수 있도록 작성된 언어라는 점을 감안하면 당연한 일이라고 볼 수 있을 것 같습니다.
<!-- 주석 -->
HTML의 주석을 활용하여 주석을 달 수 있습니다. 물론 JSP의 주석은 아니고 HTML의 주석을 빌어다 사용하는 겁니다. HTML 코드이기 때문에 사용자에게 전달되어서 소스보기로 내용을 확인할 수 있습니다. 따라서 이 주석은 별로 권할 만한 것이 못되는 것 같습니다.
<%-- 주석 --%>
JSP 고유의 주석이라고 할 수 있습니다. JSP는 일단 서블릿으로 변환이 되는데 이 과정에서 주석은 무시합니다. 당연히 서블릿에 포함되지 않으므로 사용자에게 전달되지도 않습니다.
/* 주석 */
스크립틀릿 코드에서 사용할 수 있는 것으로 스크립틀릿이 Java 코드를 직접 JSP 코드에 포함시키는 것이므로 Java의 주석과 동일한 특성을 가집니다.
//
/* ... */ 주석과 마찬가지로 스크립틀릿 코드에서 사용 가능한 Java 스타일의 주석입니다.
JSP 지시어(Directive)
JSP 컨테이너에게 해당 페이지의 처리 정보를 알려주는 역할을 합니다. JSP 컨테이너는 해당 JSP 페이지를 서블릿으로 변환하기에 앞서 지시어들의 속성과 속성값을 참조합니다.
page 지시어
JSP 문서에 대한 정보를 속성을 이용하여 정의합니다.
속성명 | 설명 | 디폴트값 |
---|---|---|
info | JSP 문서를 설명하기 위한 문자열을 기술하기 위해 사용합니다. | 없음 |
language | JSP 문서내에서 사용할 스크립트 언어를 지정합니다. 현재는 java만이 유일한 속성값이며, 현재 자바7.0의 개발 목표가 다중 언어를 지원하는 것을 포함하고 있으므로 향후 다양한 언어의 사용이 가능하리라 생각됩니다. | java |
contentType | JSP 문서가 클라이언트(웹 브라우저)로 전송할 응답(response)을 MIME(Multipurpose Internet Mail Extension) 형식으로 지정합니다. | text/html;charset=ISO-8859-1 |
extends | JSP 문서가 서블릿으로 변환될 때 해당 서블릿이 상속받은 부모 클래스를 지정합니다. | |
import | JSP 문서 내에서 사용할 클래스의 패키지을 등록합니다. Java의 import문과 동일합니다. Java와 달리 콤마(,)로 구분하여 여러 패지지 이름을 등록할 수 있습니다. | |
session | HTTP 프로토콜은 기본적으로 stateless protocol로 클라이언트가 HTML 문서를 요청(request)할 때마다 매번 새로운 접속을 합니다. 그렇기 때문에 로그인 상태를 유지한다던지 하는 작업은 원래 불가능합니다. 그래서 요청을 한 클라언트의 정보를 유지할 수 있도록 세션이라는 방법을 사용하고 이를 '세션 관리(session management)'라고 합니다. session 지시어는 이 세션의 유지를 여부를 알려주는 것으로 기본값은 "true"로 설정되어 있습니다. 세션의 유지를 위해 내장된 'session'이라는 객체를 사용합니다. "false"로 지정하면 'session' 객체를 사용하지 않으며 프로그래머가 직접 HttpSession 클래스를 이용하여 세션을 관리하여야 합니다 | true |
buffer | JSP 문서는 서블릿으로 변환되며 서블릿이 실행된 결과를 JspWriter 객체인 내장 객체 out을 이용하여 write()나 print() 메서드로 출력을 합니다. buffer는 out 객체의 출력 버퍼의 크기를 지정하는 것으로 기본값은 "8kb"로 설정되어 있습니다. | 8kb |
autoFlush | buffer 속성과 관련이 있으며 버퍼가 채워졌을 때 자동으로 출력을 할 것인지를 지정합니다. 기본적으로 버퍼가 채워지면 자동으로 클라이언트에게 출력을 내보냅니다. | true |
isThreadSafe | 서블릿이 동시에 여러 클라이언트의 요청을 처리할 수 있는지를 지정합니다. | true |
errorPage | 예외가 발생하면 해당 예외를 처리할 웹 페이지를 지정합니다. | |
isErrorPage | JSP 문서를 에러 페이지로 지정합니다. | false |
pageEncoding | JSP 문서의 문자셋 인코딩 형식을 지정합니다. contentType에도 인코딩을 지정할 경우 동일해야 합니다. 일반적으로 contentType이나 pageEncoding 중 하나에만 지정합니다. | ISO-8859-1 |
include 지시어
공통으로 사용되는 JSP 문서 부분을 코드 단편으로 저장해 두었다가 필요할 때 삽입시켜서 사용할 수 있도록 합니다. 서블릿으로 변환되기 전에 진행되기 때문에 결국은 삽입된 JSP 문서가 하나의 서블릿으로 변환됩니다. 그렇기 때문에 삽입할 JSP 문서 조각은 page 지시어의 contentType 속성이 중복되지 않도록 신경써야 합니다. contentType은 문서에서 한 번만 사용할 수 있는 속성이기 때문입니다. 그리고 앞서 설명한 것처럼 include가 실행되는 시점은 서블릿 변환 전에 소스 차원에서 이뤄지므로 다음과 같이 사용할 수 없습니다.
<@ include file="<%= mypage %>" %>
taglib 지시어
커스텀 태그 사용시에 사용하는 지시어 입니다.
스크립트 요소
JSP 문서에 Java 코드나 표현식 태그 등을 삽입하기 위해 사용합니다.
선언문(declarations)
변수나 메서드를 선언하기 위해 사용합니다. Java에서 클래스에 선언하는 멤버 변수나 메서드를 선언하는 것과 같은 의미입니다.
스크립틀릿(scriptlets)
Java 코드를 삽입하여 사용할 수 있습니다. 선언문과 비슷하나 선언문에 선언된 변수는 멤버 변수로 선언되지만 스크립틀릿 내에서 선언된 변수는 _jspService() 메서드의 지역 변수로 선언됩니다. 스크립틀릿 내의 모든 코드는 서블릿으로 변환될 때 _jspService() 메서드의 코드로 변환됩니다.
표현식(expressions)
JSP 문서 내에 직접 출력할 내용을 포함시킬 때 사용합니다.