🔙뒤로가기

JSP의 스크립트 요소는 다음과 같다

  1. 선언문(Declaration)
  2. 스크립틀릿(Scriptlet)
  3. 표현식(Expression)

선언부(Declaration)

<%! %> : 페이지 전역에 있는 변수, 생성자, 메소드 선언할 수 있다. 메소드 호출에는 직접 사용할 수 없다.

//예제
<%! int num1 = 10; %>

<aside> 💡

스크립틀릿의 <%! 문은 JSP 페이지에서 자바 코드를 선언하는 데 사용될 수 있다. 선언문은 필드, 메소드, 생성자 등을 선언할 때 사용된다. 선언문에서 생성자는 호출할 수 없다. 필드와 메소드는 호출할 수 있지만, JSP 페이지에서 그것을 표현식으로 표시하는 것이 아니라 웹 페이지에서 자바 코드를 실행하는 데 사용되어야 한다. 전역 선언문에서는 클래스 레벨에서의 선언을 할 수 있지만 메소드를 실행할 수는 없다. 예를 들어 <%@ System.out.println(sum); %> 이 코드는 실행되지 않으며 컴파일 시에 에러가 발생한다.

</aside>

스크립틀릿(Scriptlet)

<% %> : 페이지 내에서 제어문, 변수 선언, 메소드 호출 등의 어떤 Java 코드도 사용할 수 있다.

//예제
<%
int num2 = 20;
num2 += num1;
%>

<%
    java.util.Date date = new java.util.Date();
%>

<aside> 💡 스크립틀릿은 JSP 페이지에서 변수를 선언하거나 제어문을 사용하여 흐름 제어, 메소드 호출 등의 기능을 제공할 수 있다. 스크립틀릿의 코드가 실행되면, 결과는 정적 HTML 페이지로 변환되어 브라우저로 전송된다.

</aside>

표현식(Expression)

<%= %> : JSP 실행 중에 전달된 값이나 계산된 값, 변수, 객체 메소드, 수식 등의 결과 값을 출력할 수 있다.

//예제
<%= num2 %>

<p>Today is <%= new java.util.Date() %>.</p>
// 현재 날짜를 표시할 수 있다.
<p>Today is Mon Feb 07 13:46:17 KST 2022.</p>
// 실제 결과 예시

<aside> 💡 표현식은 간단한 데이터 표시에는 유용하지만, 복잡한 처리는 스크립트릿을 사용하는 것이 좋다. 메소드 실행은 scriptlet에서만 할 수 있는 것이 아니라, 표현식에서도 가능하다.

</aside>

스크립틀릿과 표현식의 차이 요점 정리