[JSP] 지시자(Directive)

 지시자(Directive) 

- 속성에 따라 자바 코드를 생성함

<%@ 지시자 속성="값" 속성="값" ... %>

-Web Container 가 JSP page를 Servlet class로 변환할 때 필요한 정보를 기술하기 위해 사용

page : 환경 설정

include : file 형태로 불러와 현재 page의 일부로 사용

taglib : 다른 곳의 태그를 호출



page 지시자 

주로 사용되는 속성

contentType : 브라우저로 내보내는 내용의 MIME 형식 지정 및 문자 집합 지정

import : 현재 JSP 페이지에서 사용할 Java 패키지나 클래스 지정

errorPage : 에러 발생 시 대신 호출되어 예외 처리될 페이지 지정


<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>


-현재 페이지의 환경 설정 또는 Servlet으로 변환될 때 필요한 정보를 기술

contentType : 응답 형식 지정

pageEncoding : 페이지 인코딩 형식

※하단의 meta charset 과 pageEncoding 과 동일해야 함

<meta charset="UTF-8">


import : 다른 클래스 파일을 사용하기 위해 임포트 할 때 사용(DOCTYPE 태그 위에 작성)

<%@ page import = "java.util.ArrayList" %> ->ArrayList 배열 사용

※ import 태그는 자동 완성으로 작성 가능함


errorPage : 에러 발생 시 해당하는 jsp 파일을 대신 호출하여 페이지 대체

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

->html 파일을 대신 넣을 수 있으나, 모든 파일을 jsp 파일이라 가정 하에 실행 되므로, 한글 문자의 경우 깨지게 됨


Include 지시자

- 원하는 위치에 생성이 가능(body의 어느 위치나 가능)

- file 이라는 필수 속성 설정이 요구됨

<%@ include file="파일 경로 등" %>


※실습


-1,2 간 서로 이동 기능, footer 페이지를 각 페이지에 삽입

-ex05include1.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%@ 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>
    <h1>1번 JSP페이지</h1>
    <a href="ex05include2.jsp">2번 페이지로</a>
    <%@ include file="footer.jsp" %>
</body>
</html>
cs

-ex05include2.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ 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>
    <h1>2번 JSP페이지</h1>
    <a href="ex05include1.jsp">1번 페이지로</a>
    <%@ include file="footer.jsp" %>
</body>
</html>
cs


-footer.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ 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>
    
    <hr>
    <p>빅데이터 13차</p>
    <p>마로<p>
    <p>010.0000.0000</p>
    <hr>
</body>
</html>
cs


※include 지시자 : 특정 jsp 파일 전체를 삽입
->html 파일의 경우 권장하지 않음(한글 문자 깨짐 발생)














taglib 지시자

taglib : 커스텀태그 라이브러리 호출 지시자

<%@ taglib prefix="c" uri = "저장된 커스텀 태그 라이브러리 위치" %>

uri : 태그 라이브러리의 종류 선택
prefix : 다른 태그와 헷갈리지 않게 앞에 붙이는 별칭


forEach 태그 기능
     
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ 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>
<%-- 불러온 커스텀 태그 jar 파일을 사용 --%>
    <c:forEach begin="1" end="5" step="1">
        안녕하세요<br>
    </c:forEach>
</body>
</html>
cs

-> 불러온 태그를 'c' 키워드를 이용하여 호출
for-each 태그 사용 법 : 내부의 문자열, 태그를 반복함

begin : 시작 값
end : 종료 값
step : 증감 값


※2022-05-10 실습중 jar 파일 오류로 문제 발생, 해결 할 예정

※위의 링크가 아닌 하단의 링크의 jar 파일을 이용할 것




+) jsp 주석
html 사용 주석 : <!-- -->
jsp 사용 주석 : <%-- --%>

-> jsp 주석의 사용을 권장, jsp 스크립트에선 html 주석이 출력됨

댓글