Tiny Bunny
본문 바로가기

2023-02 몰입형 SW 정규 교육

[JSP] JSP 지시어(Directive), 액션 태그(Action Tag)

728x90
<%= request.getParameter("email") %>

23. 09. 21

 

# 주석

 

html 형식의 주석

 

JSP는 HTML과 함께 구성되므로 HTML 형식의 주석 사용 가능 (단, JSP 문법이 사용된 부분에는 사용 불가)

<!-- 주석 -->

 

 

 

JSP 주석

 

HTML과 JSP 문법 모든 부분에 사용할 수 있으며 웹 브라우저에서 소스 보기(ctrl + u)를 하면 주석이 보이지 않음

<%-- 주석 --%>

 

 

 

자바 주석

 

JSP 스크립트릿 영역 내에서 사용

/* */, //, /** */

 

 

 

# 지시어

 

지시어의 종류

 

page 지시어 : JSP 페이지에 대한 정보를 설정한다.

taglib 지시어 : 표현 언어에서 사용할 자바 클래스나 JSTL을 선언한다.

include 지시어 : 외부 파일을 현재 JSP 페이지에 포함시킨다.

 

 

 

# page 지시어

 

page 지시어

 

현재 JSP 페이지를 컨테이너에서 처리하기 위한 각종 속성 지정

<%@ page 속성1="속성값1" 속성2="속성값2" ... %>

 

사용 예

<%@page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@page import="java.util.Calendar"%>

 

지시어 목록

속성 내용 기본값
language 스크립트 언어 지정 java
import jsp 파일 내에서 사용할 외부 자바 패키지나 클래스 지정 -
session 세션 생성 여부 지정 true
buffer 버퍼 크기 지정 8kb
autoFlush 버퍼 내용 자동 비움 지정 true
isThreadSafe 단일 쓰레드 모델을 사용하여 동시성 제어 여부 지정 true
info jsp 페이지 설명 -
errorPage 에러 발생 시 호출 페이지 지정 -
isErrorPage 에러만 처리하는 페이지 지정 false
contentType MIME 형식과 캐릭터셋 설정 text/html; charset=ISO-8859-1
pageEncoding charset과 같이 인코딩을 지정 ISO-8859-1
trimDirectiveWhitespaces
지시어 선언으로 인한 공백을 제거할지 여부를 지정 false

 

 

 

taglib 지시어

 

현재 JSP 페이지에 사용할 커스텀 태그 라이브러리를 지정

  • 포준화된 커스텀태그: JSTL(JSP Standard Tag Library)
  • JSP 페이지 내에 불필요한 자바 코드를 줄일 수 있음.
  • 라이브러리를 JSP에서 사용할 때 접두사를 지정하기 위해 사용
  • uri 속성과 prefix 두 가지 속성으로 구성

 

uri 속성: 태그 라이브러리에서 지정한 태그와 속성 정보를 저장한 Tag 파일이 존재하는 위치 지정
prefix 속성: 사용할 커스텀 태그의 namespace를 지정

 

<%@taglib uri="사용할 URL 주소" prefix="접두사" %>

 

사용 예

<%@ taglib uri="/META-INF/mytag. tld" prerfix="mytag" %>

 

 

 

# 액션

 

액션 태그(Action Tag)란?

 

자바 코드 형태로 작성할 수 있는 것을 태그 형태로 정의한 것

  • 코드 양을 대폭 줄일 수 있고 가독성 높은 소스코드를 작성할 수 있음
  • 태그의 이름 앞에 jsp 라는 접두어를 사용
  • jsp와 jsp 사이를 제어하거나 다른 페이지의 실행 결과를 현재 페이지에 포함시킬 수 있음

 

액션 태그 목록

종류 액션 기능
페이지 이동, 포함 jsp:include 다른 페이지를 현재 페이지에  포함
페이지 이동, 포함 jsp:forward 현재 페이지의 제어를 다른 페이지로 전달
Data 객체 사용 jsp:useBean 자바 빈즈를 생성하고 사용하기 위한 환경을 정의
Data 객체 사용 jsp:getProperty 자바빈즈의 property를 얻음
Data 객체 사용 jsp:setProperty 자바빈즈의 property를 설정
페이지 변수 전달 jsp:plugin 애플릿과 같은 다른 구성 요소를 포함
페이지 변수 전달 jsp:param 매개 변수 값을 설정, 대부분 include, forward에서 사용
페이지 변수 전달 jsp:fallback 플러그인이 작동하는 경우 메시지를 인쇄하는 데 사용
(jsp:plugin에서 사용)

 

 

 

include

 

현재 jsp 페이지의 특정 영역에 외부 파일의 내용을 포함한다. (include 지시어와 유사하므로 헷갈리지 않도록 하자.)

 

include 지시어와의 차이점

  • 실행 시점에 해당 파일을 호출하고 결과를 포함시킴
  • 파라미터를 전달할 수 있음

 

<jsp:inclde page="포함할 외부 파일명" flush="false" />
* page: 현재 jsp 페이지 내에 포함할 내용을 가진 외부 파일명
* flush: 설정한 외부 파일로 제어가 이동할 때 현재 jsp 페이지가 지금까지 출력 버퍼에 저장한 결과를 처리

 

사용 예

include_test1.jsp

<jsp:include page="include_test2.jsp">
     <jsp:param name="email" value="test@test.com" />
     <jsp:param name="tel" value="010-0000-0000" />
</jsp:include>

 

include_test2.jsp

<%= request.getParameter("email") %>

 

 

 

forward

 

현재 jsp 페이지에서 다른 페이지로 이동하는 태그

  • include 액션과 유사하지만 현재 페이지의 제어권을 완전히 다른 페이지로 전달
  • 브라우조 url에는 최종 전달된 파일명이 보이는 것이 아니라 최초 호출한 파일명이 보임
  • -jsp 컨테이너가 forward 액션 태그를 만나면, 그전까지 출력 버퍼에 저장되어있던 내용을 모두 삭제하고, forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동함

 

기본형식

<jsp:forward page="이동할 외부 파일명" />

 

사용 예

forward_test1.jsp

<jsp:forward page="forward_test2.jsp">
     <jsp:param: name="email" value="test@test.com" />
     <jsp:parem name="tel" value="010-0000-0000" />
</jsp:forward>

 

forward_test2.jsp

<%= request.getParameter("email") %>

 

 

 

plugin

 

웹 브라우저에서 자바 애플릿을 실행시킬 때 사용

  • 애플릿이 웹에서의 서비스가 느린 것 때문에 잘 사용하지 않는다.
  • 애플릿은 JNLP(Java Network Lunching Protocol)로 대체되는 추세이다.

 

 

 

useBean

 

자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고 초기화하는 태그

 

id: 생성될 자바빈즈 객체(인스턴스)의 이름을 쓰는 곳 (필수 속성)
class: 객체가 생성될 자바빈 클래스명을 기술하는 곳으로 패키지명을 포함한 자바 클래스의 풀네임을 기술한다. (필수 속성) 예) class="패키지이름.클래스이름"
scope: 자바빈 객체의 유효 범위로 자바빈 객체가 공유되는 범위를 지정한다. scope 속성값으로 page, request, application을 가지며 scope 송석 생략 시 기본값은 page이다.

 

 

 

setProperty

 

자바빈즈의 setter() 메서드에 접근하여 자바빈즈의 멤버변수인 프로퍼티의 값을 저장하는 태그

 

name: 사용할 빈의 이름을 지정 (필수 속성)
property: 값을 저장할 프로퍼티명을 지정 (필수 속성)
value: 프로퍼티에 저장할 값을 지정

 

기본 형식

<jsp:property name="식별자" property="프로퍼티 이름" value="값" />

 

 

 

getProperty

 

자바빈즈 객체에서 저장된 프로퍼티 값을 사용하기 위해 사용

 

name: 사용할 빈의 이름을 지정
property: 값을 가져올 빈의 변수를 지정

 

기본 형식

<jsp:getProperty name="식별자" property="프로퍼티 이름"/>

 

 

 

param

 

현재 jsp 페이지에서 다른 페이지에 정보를 전달하는 태그

단독으로 사용할 수 없으며, <jsp:include>나 <jsp:forward> 태그의 내부에서 사용해야 함

 

기본 형식

<jsp:include page="외부파일명" name="식별자" value="값" /> 

 

 

 

선언

 

jsp 파일에서 메서드나 멤버 변수를 쓸 때 사용

jsp 내에 프로그램 코드를 많이 두는 것은 바람직하지 않음

 

기본형식

<%! 멤버 변수 선언, 메서드 선언 %>

 

사용 예

<%!
     // 멤버 변수 선언이나 메서드 선언이 올 수 있다.
     String str = "test";
     public boolean check() {
          return false;
     }
%>

 

 

 

표현식

 

jsp 파일에서 간단한 출력을 위해 사용한다.

out.println()의 인자로 적합한 형태여야 한다.

 

기본형식

<% 메서드 호출 및 변수 %>

 

사용 예

메서드 호출: <%= calculator() %>
변수 출력: <%= result %>
사칙연산과 문자열 결합: <%= "i + 2" + i + 2 + 입니다" %>

 

 

 

스크립트릿

 

jsp 파일 중간에 자바 코드를 기술하는 방식

  • 태그 라이브러리 등을 권장하며 스크립트 남용 => 페이지 가독성을 떨어뜨리고 유지보수를 어렵게 한다.
  • 스크립트릿에서 화면 출력을 위해 out.println()을 사용한다.
  • 스크립트릿을 닫고 html 출력 후 다시 스크립트릿을 작성하는 것도 가능

 

기본 형식

<% 자바 코드 %>

 

사용 예

<%
     // 로컬 변수 선언이나 프로그램 로직이 올 수 있다.
     String str = "test";
     for( int i=0; i<10; i++) {
          out.println(i);
     }
%>

 

728x90