JSP 디렉티브 태그, 스크립트 태그

진세종·2022년 2월 20일

JSP

목록 보기
4/5

디렉티브 태그(<%@ %>)

<%@ page%>

현재 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()메소드 안에 매개변수로 전달된다.
                           

예제1

<%@ 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>


예제2

<%@ 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>

메소드 사용보다 메소드 선언이 하단부에 선언되었지만 정상적으로 실행
되는 것을 알 수 있다.

                            
profile
개발자 지망생

0개의 댓글