티스토리 뷰

 

 

1. 디렉티브 태그의 개요

 

디렉티브 태그는 JSP 페이지를 어떻게 처리할 것인지를 설정하는 태그이다.

 

 

디렉티브 태그 종류

디렉티브 태그 형식 설명
page <%@ page ...%> JSP 페이지에 대한 정보를 설정한다.
include <%@  include ...%> JSP 페이지의 특정 영역에 다른 문서를 포함한다.
taglib <%@ taglib ...%> JSP 페이지에서 사용할 태그 라이브러리를 설정한다.

 

 

* %@는 하나의 단어처럼 보기때문에 띄워쓰면 안된다.

 

 

 

 

 

2. page 디렉티브 태그의 기능과 사용법

 

page 디렉티브 태그는 현재 JSP 페이지에 대한 정보를 설정하는 태그이다.

JSP 페이지가 생성할 콘텐츠 유형의 문서(=인코딩), 사용할 자바 클래스, 오류 페이지 설정, 세션 사용 여부 등 JSP 컨테이너가 JSP 페이지를 실행하는데 필요한정보를 설정할 수 있다.

JSP 페이지 어디에서든 선언할 수 있지만 일반적으로 최상단에 선언한다.

 

 

ex ) <%@ page 속성1="값1" %>

 

 

page 디렉티브 태그의 속성

속성 설명 기본 값
language 현재 JSP 페이지가 사용할 프로그래밍 언어를 설정한다. java
contentType 현재 JSP 페이지가 생성할 문서의 콘텐츠 유형을 설정한다. text/html
pageEncoding 현재 JSP 페이지의 문자 인코딩을 설정한다. ISO-8859-1
import 현재 JSP 페이지가 사용할 자바 클래스를 설정한다.  
session 현재 JSP 페이지의 세선 사용 여부를 설정한다. true
buffer 현재 JSP 페이지의 출력 버퍼 크기를 설정한다. 8KB
autoFlush 출력 버퍼의 동작 제어를 설정한다.
버퍼에 있는것들을 내보냄(출력함)
true
isThreadSafe 현재 JSP 페이지의 멀티스레드 허용 여부를 설정한다. true
info 현재 JSP 페이지에 대한 설명을 설정한다.  
errorPage 현재 JSP 페이지에 오류가 발생했을 떄 보여줄 오류 페이지를 설정한다.  
isErrorPage 현재 JSP 페이지가 오류 페이지인지 여부를 설정한다. false
isELIgnored 현재 JSP 페이지의 표현 언어(EL) 지원 여부를 설정한다. false
isScriptingEnabled 현재 JSP 페이지의 스크립트 태그 사용 여부를 설정한다.  

 

 

* 하나의 디렉티브 태그에는 여러개의 속성도 설정할 수 있다.

import 속성 제외한 나머지 속성들은 JSP 페이지에 한번씩만 설정할 수 있다.

 

 

 

 

- language 속성

현재 JSP 페이지에 사용할 프로그래밍 언어를 설정하는데 사용한다.

기본 값은 java이지만 JSP 컨테이너가 자바 이외의 언어도 지원할 수 잇도록 하기 위한 속성이다.

 

ex) 자바 프로그래밍 언어 설정

<%@ page language="java" %>

 

 

 

- contentType 속성

현재 JSP 페이지의 콘텐츠 유형을 설정하는데 사용한다.

콘텐츠 유형은 주로 text/html, text/xml, text/plain 등이 있고 기본 값은 text/html 이다.

콘텐츠 유형은 이외로 특정 프로그램도 줄 수 있다. (ex) MS 프로그램 등)

 

ex) text/html  콘텐츠 유형 설정, utf-8 문제열 세트 설정

<%@ page contentType="text/html:charset=utf-8" %>

 

 

 

 

- pageEncoding 속성

현재 JSP 페이지 문자 인코딩 유형을 설정하는데 사용한다.

 

 

 

- import 속성

JSP 페이지에서 사용할 자바 클래스를 설정하는데 쓴다.

두개 이상이면 쉼표로 구분한다.

 

ex) 자바 패키지 java.io.* 설정

<%@ page import="java.io.*" %>

 

 

ex) page 디렉티브 태그에 Date 클래스를 이용하여 현재 날짜 출력하는 예시

 

3-3

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ page import="java.util.Date" %>
	Today is <%=new Date() %>
</body>
</html>

 

java.util.Date 클래스를 import해서 가져와서 사용한다.

 

 

결과

 

 

 

 

- session 속성

현재 JSP 페이지의 HTTP 세션사용 여부를 설정하는데 사용한다.

session은 정보를 담아놓는 객체로 어디든지 꺼내 쓸 수 있는 사물함과 같은 기능을 한다고 생각하면 된다.

또한 만들어져 있는 객체이다.

 

ex) session 내장 객체 사용을 위한 true 설정

<%@ page session="true" %>

 

* 만약 사용하지 않으려면 false로 입력하면 된다.

 

 

 

 

- errorPage 속성

JSP 페이지가 실행되는 동안 오류가 발생하면 특정 오류 페이지로 이동시켜주는데 사용한다.

웹페이지의 예외처리라고 생각하면 된다.

 

이 방법을 쓰지 않아도 되지만 쓰지 않으면 코드, 서버 등 정보가 모두 표기되어 나타나기 때문에 정보가 유출된다.

 

ex) 이동할 오류 페이지 설정

<%@ page errorPage="MyErrorPage.jsp" %>

 

 

 

 

- isErrorPage 속성

현재 JSP 페이지가 오류 페이지인지 true or false 여부 설정하는데사용한다.

기본은 false이고 예외처리를 위한 내장 객체인 exception 변수를 사용할 수 없다.

속성값이 true이면 현재 페이지는 오류 페이지가 된다.

 

ex) 현재 JSP 페이지가 오류 페이지가 되도록 true 설정

<%@ page isErrorPage="true" %>

 

 

 

 

- isELIgnored 속성

현재 JSP 페이지의 표현 언어 사용 여부를 설정하는데 사용한다.

기본 값은 false이고 표현식은 '${}'를 사용한다.

{}안에는 변수가 들어가며 false여야 사용할 수 있다.

만약 true이면 처리할 수 없어 정적 텍스트로 처리된다.

 

ex) 표현 언어를 처리하지 않기 위한 true 설정

<%@ page isELIgnored="true" %>

 

 

 

 

 

 

 

 

3. include 디렉티브 태그의 기능과 사용법

include 디렉티브 태그는 JSP 페이지의 특정 영역에 외부 파일을 불러와 내용을 포함하는 태그이다.

이때 포함할 수 있는 외부 파일은 HTML, JSP, 텍스트파일 등이 있다. 

위치는 어디든 상관이 없다.

 

ex)

<%@ include file = "파일명" %>

 

 

 

 

ex) include 디렉티브 태그로 외부 파일의 내용 포함하는 예제

 

3-9

 

header 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h4>헤더 페이지 영역입니다.</h4>
</body>
</html>

 

 

 

 

HTML

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="include01_header.jsp" %>
	<h4>--------- 현재 페이지 영역 ---------</h4>
</body>
</html>

 

include file을 사용하여 이전에 작성했던 파일을 현재 JSP 페이지에 불러 온 것을 볼 수 있다.

 

 

결과를 보면 header파일에 포함되어 있던 텍스트가 현재 JSP 페이지에 출력된 것을 볼 수 있다.

 

 

 

 

 

 

ex) include 디렉티브 태그로 머리글과 바닥글에 외부 파일 내용 포함하는 예제

 

3-10

 

header

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%!
		int pageCount=0;
		void addCount(){
			pageCount++;
		}
	%>
	<%
		addCount();
	%>
	<p>이 사이트 방문은 <%=pageCount %>번째 입니다.</p>
</body>
</html>

 

 

footer

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>Copyright &copy; JSPBook</p>
</body>
</html>

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="include02_header.jsp" %>
	<p>방문해 주셔서 감사합니다.</p>
	<%@ include file = "include02_footer.jsp" %>
</body>
</html>

 

 

이전 작성했던 header파일과 footer 파일을 현재 JSP페이지로 불러 온것을 볼 수 있다.

확인 결과 JSP 페이지에 header 과 footer에 포함되어 있던 내용이 출력된 것을 볼 수 있다.

 

 

 

header에 페이지 실행할때마다 count하도록 했기 때문에 새로고침을 할 때마다 방문 횟수가 늘어나는 것을 볼 수 있다.

 

 

 

 

 

 

 

 

 

 

4. taglib 디렉티브 태그이 기능과 사용법

 

taglib 디렉티브 태그는 현재 JSP 페이지에 표현 언어, JSTL, 사용자 정의 태그 등 태그 라이브러리를 설정한다.

 

ex)

<%@ taglib uri="경로" prefix="태그 식별자" %>

 

uri 경로는 태그 설정 정보를 가진 경로 주소이다.

prefix 속성은 uri에 설정한 사용자가 정의한 태그를 식별하기 위한 고유 이름이다.

속성값에 별칭을 붙여 좀 더 편하게 보고 사용할 수 있다.

 

 

 

- JSTL 태그

JSP 태그이 모음으로 자주 사용되는 핵심 기능을 제공한다.

반복문, 조건문과 같은 논리적 구조 작업, XML 문서 조작 등 수행을 위한 태그를 지원한다.

하지만 ,JSTL 태그를 사용하려면 WEB-INF/lib 디렉터리에 jstl.jar 라이브러리 파일이 있어야한다.

 

 

 

 

 

 

ex) include 디렉티브 태그에 JSTL의 Core 태그를 설정하여 1부터 10까지 출력하는 예시

 

3-11

 

먼저 웹페이지를 작성하고 WEB-INF/lib/ 폴더에 JSTL 태그 라이브러리인 JSTL-1.2.jar 파일을 추가한다.

그리고 실행하면 실행이 된다.

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<c:forEach var="k" begin="1" end="10" step="1">
		<c:out value="${k}" />
	</c:forEach>

</body>
</html>

 

 

 

 

 

 

 

 

 

웹 쇼핑몰

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
    <%@ page import="java.util.Date" %>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<nav class="navbar navbar-expand navbar-dark bg-dark">
		<div class = "container">
			<div class="navbar-header">
				<a class="navbar-band" href="./welcome.jsp">Home</a>
			</div>
		</div>
	</nav>
	<%! String greeting = "웹 쇼핑몰에 오신 것을 환영합니다"; 
		String tagline = "Welcome to Web Market!";%>
		
	<div class="jumbotron">
		<div class="container">
			<h1 class="display-3">
			<%=greeting %>
			</h1>
		</div>
	</div>	
	
	<div class="container">
		<div class="text-center">
			<h3>
				<%= tagline %>
			</h3>
			<%
				Date day = new java.util.Date();
				String am_pm;
				int hour = day.getHours();
				int minute = day.getSeconds();
				int second = day.getSeconds();
				if(hour/12==0){
					am_pm="AM";
				}
				else{
					am_pm="PM";
					hour=hour-12;
				}
				String CT = hour + ":" + minute + ":" + second + " " + am_pm;
				out.println("현재 접속 시각 : " + CT + "\n");
			%>
		</div>
		<hr>
	</div>
	
	<footer class="container">
		<p>&copy; WebMarket</p>
	</footer>

</body>
</html>

 

 

 

'코딩 > JSP' 카테고리의 다른 글

웹쇼핑몰  (0) 2023.12.01
[8주 5일차] 액션 태그  (1) 2023.12.01
[8주 4일차] 액션 태그  (1) 2023.11.30
[8주 3일차] 스크립트 태그  (0) 2023.11.29
[8주 2일차] JSP (운영체제 /웹 / JSP 환경 설정)  (0) 2023.11.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday