본문 바로가기

Wanna be a Programmer/Servlet & JSP

Servlet & JSP day12 - JSP 스크립트 태그

JSP Tag

☞  스크립트(SCRIPT)태그 - java code를 넣는 Tag 

ex) <% java code %>

액션(ACTION)태그 - JSP에서 java 코드를 대신하기 위한 Tag

- 표준 action tag : Servlet/JSP spec에서 제공

- Cutom tag : 사용자 정의 tag

☞  Expession Language

 

※ HTML의 tag는 정적이고, JSP의 tag들을 동적이다. 동적인 JSP를 이용함으로써 디자이너와 프로그래머 업무의 이원화

 <html>

   <body>

     <for s="1" e="10"

        step="1" />

class ~~ {

    for(              ) {

    }

 }

다음과 같은 action tag를 사용하기 위해 java code를 만들고 두가지(action tag, java code)를 Web Content에 등록하여 사용

 action tag

 java code

 

 

JSP 스크립트 태그

☞ 지시자(Directive) 태그

◎ Web Container가 JSP를 Servlet으로 변환 할 때 특정 지시를 내리기 위해서 사용하는 태그

구문

<%@ 지시어 속성="값" [속성="값"..] %> -> <%@page import="java.util.ArrayList"%>

지시어

- page : 페이지의 기능, 특징을 지시

- include : JSP 페이지에 다른 페이지를 포함시킬 것을 지시

- taglib : JSP 페이지에서 사용할 custom tag 라이브러리 등록을 지시

page 지시자

- 페이지에 관련된 기능 환경을 정의한는 지시어

- 속성

import : JSP에서 사용할 클래스들을 import할 때 사용

contentType : response.setContentType()의 인수로 들어갈 값 설정

* session : 내장 객체 session의 생성 여부 설정. 값 : true/ false, true가 default

errorPage : JSP가 실행 도중 exception이 발생했을때 이동할 url 지정

 

표현식(Expression) 태그

응답 Stream을 통해 출력하기 위한 태그

구문

<%= 출력내용 %>

예) <%= "안녕하세요"%> -> out.print("안녕하세요") , <% int i = 10;>, <%= i %> -> out.print(i);, <%=dto.getName() %>

서블릿으로 변환 시 out.print(출력내용); 으로 변환됨

 

선언자(Declaration) 태그 - 쓰이는 경우가 거의 없다.

JSP가 서블릿으로 변환될 때 서블릿의 member 변수(Field)나 member 메소드를 선언할 때 사용

- jspInit(), jspDestroy() 오버라이딩시 사용

- _jspService()는 오버라이딩 해서는 안된다.

- 구문

<%! 선언문 %>

 

스크립트릿(Scriptlet) 태그

클라이언트의 요청에 대해 서비스 하는 동적 코드(java 실행 구문)을 작성하기 위한 태그

 태그 내의 코드는 서블릿으로 변환시 _jspService()의 로컬 코드로 삽입 된다.

 구문

<% java code %>

예) <% if(i>10) { %>

10보다 큽니다.

<% } %>

 

-> _jspService() {

if(i > 10> {

out.println("10보다 큽니다.");

}

}

 

주석

JSP에서의 주석

- HTML 주석 : <!-- 주석 내용 --> : client에 전송

- JSP 주석 : <%-- 주석 내용 --%> : client에 전송이 안됨

- JAVA 주석 : //, /* 주석 내용 */

* 스크립트릿, 선언자 태그에서 사용 가능