1. 지시자(Directive)란?
: 지시자는 클라이언트의 요청에 jsp 페이지가 실행이 될 때 필요한 정보를 JSP 컨테이너에게 알리는 역할을 한다. 그 역할 jsp 페이지에 "이렇게 처리를 하시오"라는 지시를 내리는 것이다. 지시자는 태그 안에서 @로 시작하며 다음과 같은 3가지 종류가 있다.
1) page
2) include
3) taglib
여기서 taglib 지시자는 JSP 기능을 확장할 때 사용하는 사용자 정의 태그의 집합을 의미한다. 오늘 포스팅에서는 이런 것이 있다는 정도만 알고 나중에 더욱 자세히 설명하도록 하겠다.
1) page 지시자
: jsp 페이지에 지원되는 속성들을 정의하는 것들이다. JSP 지시자는 jsp 페이지에서 JSP 컨테이너에게 해당 페이지를 어떻게 처리할 것인가에 대한 정보를 알려주는 데 사용되는 것이다.
※ 주의 - page는 반드시 소문자로 써야 하고 닫는 괄호는 ' > ' 가 아닌 ' %> ' 이다.
(1) info 속성
-info 속성은 페이지를 설명해 주는 문자열
-속성값의 내용이나 길이의 제한은 없다.
-설정은 하지 않더라도 페이지의 처리 내용에는 아무런 영향을 주지는 않는다
-페이지에 제목을 붙이는 역할
<%@ page info="JSPStudy.co.kr" %>
(2) language 속성
-스크립트 요소에서 사용할 언어를 지정
-만약 속성을 지정하지 않으면 기본값으로 JAVA가 지정이 된다
<%@ page language="java" %>
(3) contentType 속성
-JSP 페이지의 내용이 어떤 형태로 출력을 할 것인지 MIME 형식으로 브라우저에 알려주는 역할을 하는 속성
-지정할 속성으로값으로는 text/html, text/plain, text/xml, text/gif 등이 있다
<%@ page contentType="text/html" %>
-contentType 속성은 JSP 페이지에서 사용하는 문자 형식(charset)을 지정하는데도 사용
-charset의 기본값은 ISO-8859-1이고 한글을 지정하는 문자 형식은 EUC-KR혹은 euc-kr로 표현
<%@ page contentType="text/html; charset=euc-kr" %>
(4) extends 속성
-JSP 페이지가 Servlet 소스로 변환되는 시점에서 자신이 상속받을 클래스를 지정할 때 사용
-하지만 JSP 컨테이너가 알아서 적절한 클래스들을 상속시켜 변환해 주므로 사용할 일은 거의 없다
<%@ page extends="com.jspstudy.Directive %>
//com.jspstudy.Dirextive 클래스를 상속을 하겠다는 의미
(5) import 속성
-JSP페이지 내에서 package 이름을 지정하지 않고 다른 클래스를 가져와서 사용하는 경우 import 속성을 지정할 때
-import 속성은 page 지시자 중에 유일하게 중복 사용이 가능한 속성
<%@ page import="java.util.*, java.sql.*"
//여러개의 패키지를 쉼표로 구분해서 사용할수 있다
import="java.IO.*"
//page 지시자 중에 유일하게 중복으로 사용할 수 있다
%>
(6) session 속성
-JSP 페이지가 HttpSession을 사용할지 여부를 지정하는 속성
-이 속성은 true와 false로 나뉘어져 있다
-이 속성의 기본값은 true이다
<%@ page session="false" %>
(7) buffer 속성
-JSP 페이지의 출력 크기를 킬로바이트 단위로 지정하는 속성이며 기본값은 8KB
-buffer값을 "none"으로 지정하면 출력 버퍼를 사용하지 않고 JSP 페이지의 출력 내용을 즉시 브라우저로 전달한다는 의미
-JSP페이지가 많은 양의 데이터를 출력한다면, 그에 따라 알맞게 크기를 늘려주는 것
<%@ page buffer="16kb" %>
<%@ page buffer="none" %>
(8) autoFlush 속성
-JSP페이지의 내용들이 브라우저에 출력되기 전에 버퍼에 다 채워질 경우 저장되어 있는 내용들의 처리를 결정
-autoFlush 속성값을 "true"로 설정해 놓으면 버터가 다 찼을경우 자동으로 비워지게 요청
-기본값은 "true"이며 buffer 속상값이 "none"인 경우 autoFlush 속성을 지정할수가 없다
(버퍼가 저장할 공간도 없고, 또 자동적으로 출력할 수 없게끔 설정되기 때문)
<%@ page autoFlush="false" %>
(9) isThreadSafe 속성
-하나의 JSP 페이지가 동시에 여러 브라우저의 요청을 처리할 수 있는지 여부를 설정하는 것
-기본값은 "true"이며 이 속성값을 "false"로 지정해 놓으면 요청을 동시에 처리하지 않고 요청한 순서대로 처리
<%@ page isThreadSafe="false" %>
(10) errorPage 속성
-JSP 페이지를 처리하는 도중에 페이지에서 예외가 발생할 경우 자신이 예외를 처리하지 않고 다른 페이지에서 처리하도록 함
-속성값으로는 직접 예외를 처리할 페이지의 로컬 url을 적어주면 된다
<%@ page errorPage="Error.jsp" %>
(11) isErrorPage 속성
-현재 JSP페이지가 에러 처리를 담당하는 페이지인지 아닌지의 여부를 지정할 때 사용되는 속성
-현재의 페이지가 예외를 발생하여 에러 처리를 위해서 만들어 지는 에러 페이지라면 isErrorPage 속성갑을 true로 설정
-이 속성의 기본값은 false로 에러를 처리하지 않는 페이지라면 설정할 필요가 없다
<%@ page isErrorPage="true" %>
(12) pageEncoding 속성
-JSP 1.2 규약에 새로 추가된 속성으로 JSP 페이지에서 사용하는 character의 인코딩을 지정할 때 사용
<%@ page pageEncoding="euc-kr" contentType="text/html" %>=<%@ page contentType="text/html; charset=euc-kr" %>
[출처] https://hatssarjy.tistory.com/195
2) include 지시자
: 여러 jsp 페이지에서 공통적으로 포함하는 내용이 있을 때 이러한 내용을 매번 입력하지 않고 별도의 파일을 저장해 두었다가 JSP 파일에 삽입할 수 있다. 이때 지정한 파일에 해당 JSP 파일을 삽입하도록 하는 것이 include 지시자이다. 형식은 다음과 같다.
<%@include file="로컬URL"%>
2. 액션 태그
: JSP에서 액션 태그는 스크립트 요소, 주석, 지시자와 함께 JSP 문법에 속한느 태그이다. 액션 태그는 어떤 동작 또는 액션이 일어나는 시점에 페이지와 페이지 사이에 제어를 이동시킬 수도 있고 또 브라우저에서 자바 애플릿을 실행시킬 수도 있다. 또한 나중에 배우게 될 자바 빈즈의 기능을 사용할 수 있도록 한다.
액션 태그의 종류는 다음과 같이 6가지 종류가 있다.
1) include
2) forward
3) plug-in
4) useBean
5) setProperty
6) getProperty
1) include 액션 태그
include 액션 태그는 include 지시자와 함께 다른 페이지를 현재 페이지에 포함시킬 수 있는 기능을 가지고 있다. 그러나 include 지시자는 단순하게 소스의 내용이 텍스트로 포함이 되지만 include 액션 태그는 포함시킬 페이지의 처리 결과를 포함시킨다는 점이 다르다. 포함되는 페이지는 HTML, JSPM Servlet 모두 가능하다. 기본 형식은 다음과 같다.
<jsp:include page="로컬URL" flush="true"/>
include 액션 태그의 flush 속성은 포함될 페이지로 이동할 때 현재 페이지가 지금까지 출력 버퍼에 저장한 결과를 어떻게 처리할 것인가를 결정한다. flush 속성 값을 true로 지정하면 포함할 페이지의 내용을 삽입하기 이전에 현재 페이지가 지금까지 버퍼에 저장한 내용을 출력하게 되는 것이다.
2) forward 액션 태그
forward 액션 태그는 다른 페이지로 이동할 때 사용되는 태그이다. jsp 페이지 내에 forward 액션 태그를 만나게 되면 forward 태그가 있던 jsp 페이지의 모든 내용을 버리고서 forward 태그가 지정하는 다른 페이지로 이동하게 된다. 따라서 사용자가 입력한 값의 조건의 의해 여러 페이지로 이동해야 할 경우 등에서 사용할 수 있는 태그이다. 사용하는 방식은 다음과 같이 3가지 타입이 있다.
<jsp:forward page="로컬URL"/>
<jsp:forward page="로컬URL"><jsp:forward>
<jsp:forward page='<%=expression%>'/>
3) 기타 액션 태그
(1) plug-in
<jsp:plugin> 액션은 자바 플러그인을 사용하여 자바 애플릿을 jsp 페이지에서 실행할 때 사용하는 액션 태그이다. JSP 컨테이너는 <jsp:plugin> 액션 태그를 브라우저에서 인식할 수 있는 태그로 변환하여 브라우저가 자바 플러그인을 사용하여 자바 애플릿을 실행하도록 만들어 준다.
(2) useBean
useBean 액션 태그는 자바빈즈(JavaBeans)와 통신을 위해서 구현한 액션 태그이다. 문법적인 구조는 다음과 같다.
<jsp:useBean id=". ." class=". ." scope=". ."/>
<jsp:setProperty name=". ." property=". ." value=". ."/>
<jsp:getProperty name=". ." property=". ."/>
useBean 액션 태그는 추가적으로 설명할 부분이 많이 있으므로 중복을 피하기 위해서 나중에 더욱 자세히 다루도록 하겠다.
'JSP&Servlet' 카테고리의 다른 글
JDBC로 데이터베이스 연동 (0) | 2022.03.18 |
---|---|
자바빈즈(JavaBeans) (0) | 2022.03.14 |
서블릿 기초 문법 (0) | 2022.03.11 |
JSP의 내장 객체 (0) | 2022.03.10 |
JSP 기초 문법 (0) | 2022.03.07 |