JSP 기본 태그 및 지시어
- JSP태그 : 모든 태그는 대소문자를 구별하며, 주석, 지시어, 스크립트 요소, 액션을 알아봅니다.
- 주석
- 주석이란, 코드를 설명하는 글을 남겨 놓아 후에 디버깅 혹은 다른 개발자가 그 코드를 읽고자 할 때 가이드의 역할을 할 수 있도록 남겨 놓는 글을 말합니다.
- HTML의 주석 <!-- -->
- HTML을 안다면 알겠지만, 이것은 HTML 이나, XML에서 주석으로 사용하는 태그입니다.
- 이러한 내용은 클라이언트에게도 전송되며, 추후 웹 브라우저에서 소스보기를 통하여 확인할 수 있습니다.
- [방법] <!-- -->, <!-- 주석 <%= 표형식 %> -->
- JSP의 주석 <%-- --%>
- 이 방식은 숨겨진 주석(Hiddeng Comment)으로 클라이언트로 전송되지 않으며, 오로지 개발자 만이 읽을 수 있습니다. 또한, 컴파일 과정에서도 주석 부분은 컴파일을 하지 않습니다.
- 자바 스타일의 주석 // , /* */
- // 는 한줄 단위의 주석이고,
- /* */ 는 여러줄에 가능한 주석입니다. 일반적으로는 이 형식을 추천합니다.
- 주석이란, 코드를 설명하는 글을 남겨 놓아 후에 디버깅 혹은 다른 개발자가 그 코드를 읽고자 할 때 가이드의 역할을 할 수 있도록 남겨 놓는 글을 말합니다.
- JSP 지시어
-
include 지시어
-
해당 JSP 파일에 지정된 파일을 삽입하도록 하는 지시어입니다. 이때 삽입되는 대상은 로컬상의 JSP파일 혹은 HTML파일 둘다 가능합니다.
-
<%-- includeTest.jsp --%>
...
-
<%@include file = "header.jsp" %>
... - <%@ include file = "footer.html" %>
... - includeTest.jsp 파일은 헤더와 푸터부분을 include 지시어를 사용하여 각각 JSP와 HTML 문서를 삽입시키고 있습니다.
-
- taglib 지시어
- 태그라이브러리라고 합니다. 이것은 기본적은 JSP의 내장 기능을 확장하기 위한 커스텀 태그들의 집합을 말하는데, taglib 지시어는 해당 페이지가 해당 에플리케이션에 필요한 기능을 구현한 커스텀 태그를 사용한다고 JSP 컨테이너에게 알려주는 역할을 합니다.
- 이 지시어는 URI 속성에 태그 라이브러리에서 정의한 태그와 속성을 담고 있는 TLD(Tag Library Descriptor)파일이 존재하는 URI를 지정합니다. prefix 속성에는 사용할 커스텀 태그들의 네임 스페이스를 지정합니다.
- TLD(Tag Library Descriptor). 이것은 JSP페이지 컴파일 서블릿이 JSP파일에 대한 서블릿 코드 생성시 해당 페이지에서 사용하고 있는 커스텀 태그가 유효한 것인지를 JSP 컨테이너가 일차적으로 검증하는 데 사용되는 XML문서라고 알아두면 됩니다. 그리고, 네임 스페이스란, 특정 변수나 속성이 알려지는 영역이나 범위를 지정하는 데 사용하는 용어입니다.
[형식] : <%@ taglib uri = "/yangtags" prefix = "tagPrefix" %> - 위와 같은 taglib 지시어를 지정한 .jsp 파일에서는 /yangtags가 가르키는 URI의 TLD를 통해 지정된 커스텀 태그를 tagPrefix 라는 네임스페이스로 접근하여 사용가능합니다.
- 태그라이브러리라고 합니다. 이것은 기본적은 JSP의 내장 기능을 확장하기 위한 커스텀 태그들의 집합을 말하는데, taglib 지시어는 해당 페이지가 해당 에플리케이션에 필요한 기능을 구현한 커스텀 태그를 사용한다고 JSP 컨테이너에게 알려주는 역할을 합니다.
JSP 액션 : 동적인 페이지가 됩니다. include 할 때마다 달라집니다.
▶웹 페이지간의 흐름을 제어합니다.
- forward 액션
- 현재 페이지의 요청 처리 제어권을 완전히 넘겨주는 것이기 때문에, 이전까지의 모든 출력 버퍼 내용이 무시되고, 지정된 uriPath가 요청을 처리하여 응답하고 나면, 원래 페이지로 제어권이 넘어가지 않습니는다.
- 즉, forward 액션을 통해 요청 처리 제어권이 넘겨진다는 것은 원래 페이지의 request가 그대로 넘겨진다는 뜻입니다.
- 다시 말하면, 원래 페이지의 내장 객체 request에 지정된 속성은 forward된 JSP나 서블릿에서도 그대로 유효합니다.
- include 액션과 유사하지만 현재 페이지의 제어권을 완전히다른 페이지로 전달합니다.
- 브라우저 URL에는 최종 전달된 파일명이 보이는 것이 아니라최초 호출한 파일명이 보이게 됩니다.
- 기본 형식
- <jsp:forward page=”포워딩할 파일명” />
- 사용 예
- include_action.jsp
09 <jsp:forward page="footer2.jsp">
10 <jsp:param name="email" value="test@test.net" />
11 <jsp:param name="tel" value="000-000-0000" />
12 </jsp:include> - footer2.jsp
08 <%= request.getParameter("email") %>
- include_action.jsp
- include 액션
- include 지시어와 유사하게 다른 페이지를 import 합니다.
- include 지시어와의 차이점
- 실행 시점에 해당 파일을 호출하고 결과를 포함시킴.
- 파라미터를 전달할 수 있음.
- 즉. 포함되는 페이지가 변경되면, import 한 페이지에서도 변경되어 보여집니다.
- 기본 형식
- <jsp:include page=”포함할 파일명” />
- 사용 예
- include_action.jsp
10 <jsp:include page="footer2.jsp">
11 <jsp:param name="email" value="test@test.net" />
12 <jsp:param name="tel" value="000-000-0000" />
</jsp:include> - footer2.jsp
08 <%= request.getParameter("email") %>
- include_action.jsp
- <jsp:param/>태그
- <jsp:forward/> 혹은 <jsp:include/>를 사용하여 요청을 처리할 제어권을 영구적 혹은 임시로 지정된 uriPath 로 넘겨줄 수 있다고 했는데요, 이렇게 되면, forward된 파일이나 include 된 파일에서는 원래 페이지의 request 객체를 그대로 전달받게 됩니다. 만약 원래 페이지에 클라이언트 요청시에 전달받은 파라미터가 있었다고 한다면, forward 된 파일이나 include 된 JSP파일에서도 이를 request.getParameter("paramName")을 통해 얻을 수 있습니다.
- useBean 액션
- 컴포넌트를 기반으로 한 프리젠테이션 로직과 애플리케이션 로직의 분리는 JSP가 갖는 장점 중에서도 중요한 부분을 차지합니다.
- useBean 액션은 서버에 존재하는 자바 빈즈 컴포넌트(EJB와는 다릅니다)와 통신을 하기 위한 기능을 구현한 내장 액션이라고 할 수 있습니다.
- [기본 형식]
- <jsp:useBean id = "..." class="..." scope="..."/>
- <jsp:useBean ...> ... ...
</jsp:useBean> - <jsp:useBean id=”변수명” class=”빈즈클래스명” />
<jsp:getProperty name=”변수명” property=”속성명” />
<jsp:setProperty name=”변수명” property=”속성명” />
- 사용 예
- <jsp:useBean id="StdBean" class="net.member.db" scope="session"/>
- useBean 액션은 서버측에 존재하는 자바 빈즈 컴포넌트 객체를 생성하거나 이미 생성된 객체에 대한 인스턴스를 얻기 위해 사용됩니다.
'Languages > JSP' 카테고리의 다른 글
JAVA Bean과 Session, 그리고 Cookie (0) | 2013.02.24 |
---|---|
JSP- JSP에서 사용가능한 컴포넌트(Editor, chart, report ...) - 예제 (0) | 2012.10.26 |
JSP - 스크립트 요소 (0) | 2012.10.26 |
JSP - 데이터를 담는다! BEAN! (0) | 2012.10.26 |
JSP - 컴포넌트 - SmartEditor JSP에 적용하기 (5) | 2012.10.26 |