현재 JSP페이지에 대한 정보를 설정하는 태그이다.
되도록 페이지 최상단에 선언한다.
1. language : 현재 JSP 페이지가 사용할 프로그래밍 언어
2. contentType : 현재 JSP 페이지가 생성할 문서의 콘텐츠 유형
3. pageEncoding : 현재 JSP 페이지의 문자 인코딩 설정
4. import : 현재 JSP 페이지에서 사용할 자바 패키지 및 클래스 설정
5. session : 현재 JSP 페이지에서 세션 사용 여부 설정
6. info : 현재 JSP 페이지에 대한 설명을 작성
7. errorPage : 현재 JSP 페이지에 오류가 발생했을 때 보여줄 오류 페이지 설정
8. isErrorPage : 현재 JSP 페이지가 오류 페이지인지 여부 설정
// directiveTest.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%> // 에러 발생이 error.jsp실행 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>스크립트 태그</title> </head> <body> <h1> 1 + 1은 <%=1+1%>이다. // 에러 발생 여부 주석 해제시 에러발생 <%-- 10 / 0은 <%=10/0 %> --%> </h1> </body> </html>
// errir.jsp // 사용할 자바 패키지 및 클래스 설정 <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true" %> // 오류페이지인지 여부 설정 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>오류</title> <style> h1 { color: red; } </style> </head> <body> <h1>경고! 잘못된 접근입니다.</h1> // ctrl+space시 자동 import <h2><%=new Date() %></h2> </body> </html>
오류가 없을 때
오류가 있을 때
참고로 주소가 바뀌지 않는다. 오류페이지는 현재 페이지에 덮여씌우기 때문이다.
- <%! %>: 선언문(declaration)
자바 변수나 멘소드를 정의하는데 사용한다.
- <% %>: 스크립틀릿(scriptlet)
자바 변수 선언 및 자바 로직 코드를 작성하는 데 사용한다.
- <%= %>: 표현문(expression)<- 값만 들어간다.
변수, 계산식, 리턴이 있는 메소드 호출 결과를 문자열 형태로 출력
표현문 안에 작성한 값은 out.print()메소드 안에 매개변수로 전달된다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>스크립트 태그 예제1</title> </head> <body> <h2>Scripting Tag</h2> // 변수 및 메소드 선언시 <%! %> 선언문 이용 <%! int count = 3; String makeItBeLower(String data){ return data.toLowerCase(); } %> // 로직 작성시 <% %> 스크립틀릿 이용 <% for(int i=0; i<count; i++){ %> <!-- 이 영역은 3번 반복된다. --> // 자바와 HTML부분을 분리해서 사용한다. <h3>Java Server Pages <%=i+1%>.</h3> <% } %> <hr> <!-- 표현문은 서블릿의 out.print()메소드의 매개변수로 전달된다. --> // 값 입력시 <%= %> 표현문 이용 <h3><%=makeItBeLower("Hello World!")%></h3> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>스크립트 태그 예제2</title> </head> <body> <h2><%=myMethod(0) %></h2> <h2><%=myMethod(0) %></h2> <%! public int myMethod(int count){ return ++count; } %> </body> </html>
메소드 사용보다 메소드 선언이 하단부에 선언되었지만 정상적으로 실행
되는 것을 알 수 있다.![]()