JSP : 지시자(Directive)
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 |




