JSP : 지시자(Directive)

Studying/Web|2022. 7. 15. 17:57

JSP는 Java 코드가 약간 포함된 HTML 페이지이다.


지시자

jsp 페이지가 실행될 때 필요한 정보를 JSP 컨테이너에게 알린다.

지시자는 태그 안에서 <%@...%> 로 감싸져 있고, 크게 3종류가 있다.

 

 

1) page 지시자

 : JSP 페이지에 지원되는 속성을 정의하고,

 JSP 컨테이너가 이 페이지를 어떻게 처리해야 하는지에 대한 페이지 정보를 가져 온다.

 

ContentType ***

JSP 페이지의 내용을 어떤 형태로 출력을 할 것인지 브라우저에게 알려 준다.

text/html(HTML), text/plain(json), text/xml(XML) 등 여러 가지가 있다.

또한 문자 형식(charset, 캐릭터셋)을 지정하는 데에도 사용된다.

출력할 내용에 한글 요소가 포함되어 있다면 반드시 charset을 UTF-8로 지정해야 한다.

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

 

import ***

외부, 또는 자바 라이브러리를 가져올 때 사용한다.

지시자의 다른 속성들은 한 번씩만 사용이 가능하지만 import는 여러 번 사용이 가능하다.

<%@ page import="java.util.*, java.io.*,..." %> *콤마로 구분해도 되고 여러 줄로 써도 됨

 

buffer

HTML을 출력하는 메모리 공간을 나타낸다. 

디폴트 크기는 8KB밖에 되지 않기 때문에, 용량이 큰 페이지를 불러올 때는 사이즈를 키워 주어야 한다.

(ex) 출력을 했는데 화면이 잘려서 출력된다 → 버퍼 늘려야 함

<%@ page buffer="16kb"%>

 

errorPage ***

에러가 발생할 경우 페이지가 특정 페이지로 이동할 수 있도록 하는 것이다.

<%@ page errorPage="에러 시에 보여줄 파일 지정"%>

 

2) include

JSP 안에 다른 JSP를 첨부해서 사용하게 한다.

여러 jsp 페이지에서 공통적으로 포함하는 내용이 있을 때,

매번 같은 코드를 작성하기보다는 하나의 파일에 저장해 두었다가 파일만을 삽입할 수 있다.

또한, 특정 내용을 나타내는 페이지를 따로 분리함으로써 좀 더 이해하기 쉽게 페이지를 구성할 수 있게 된다.

→ 조립식 프로그램!

<%@include file="fileURL"%>

이처럼 include 지시자로 jsp 파일을 컴파일하면 include되는 jsp 페이지의 소스 내용을 포함해서 컴파일된다.

→ 두 개의 파일이 하나의 파일로 구성이 된다.

include에는 정적인 방식과 동적인 방식이 있는데, 그 차이는 아래와 같다.

<%--정적--%>
<%@ include file="변경이 안되는 파일"%>
<%--동적--%>
<jsp:include page="<%=jsp%>"/> ******
String jsp="main.jsp";
	jsp="login.jsp";
	jsp="board.jsp";

 

또한 include는 pageContext를 통해서도 첨부가 가능하다.

<%@ 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>
	<%
		//특정 위치에 특정 파일을 첨부할 수 있다. (조립!)
		pageContext.include("header.jsp");
	%>
	<div class="container">
		<%
			pageContext.include("home.jsp");
		%>
	</div>
	<%
		pageContext.include("footer.jsp");
	%>
</body>
</html>

 

JSP 스크립트

스크립트릿(<%..%>)

일반 자바 코드를 넣을 때 사용한다. 

JSP 페이지가 Servlet으로 변환/요청될 때 _jspService() 메서드 안에 선언되는 요소이다.
표현식(<%=..%>)

브라우저에 변수(데이터) 출력  → out.println()으로도 가능 → _jspService()
선언식(<%!..%>)

메서드 선언, 멤버변수 선언 → 클래스 영역에 첨부될 때 사용하는 방식 
→ 거의 사용하지 않음. 보안 문제 등 때문에

 

 

3) taglib

JSP의 기능을 확장할 때 사용하는 사용자 정의 태그의 집합이다.

자세한 내용은 이후에 다시 다루기로~

 

'Studying > Web' 카테고리의 다른 글

JSP : 내장 객체 / request, response, pageContext  (0) 2022.07.18
웹의 동작 방식 : Servlet과 JSP  (0) 2022.07.13
CSS : 구조적 선택자  (0) 2022.07.08