JSP에서 사용되는 대표적인 스크립팅 요소는 3가지가 있다.
Expression(표현식), Scriptlet(스크립트릿), Declaration(선언문)으로 html에 자바언어를 사용하기 위해 필요한 블록이라고 생각하면 될 것 같다.
예를 통해 차례로 설명하도록 하겠다.
1. Expression (표현식)
사용블록 : <%= %>
변수나 자바메소드, 간단한 연산 등을 수행할 때 사용된다.
Scriptlet 에서는 내용을 출력하려면 out.println()나 out.print()를 꼭 사용해야하고, 세미콜론(;)도 붙여야하지만
표현식에는 출력함수도 세미콜론도 필요없다.
그러나 리턴값이 없는 void 메소드를 호출하면 출력할 값이 없기 때문에 에러가 날 수 있으니 주의하자.
<예시>
<html>
<body>
<%= new String("what is Expression").toUpperCase() %>
<br><br>
1 + 2 = <%= 1 + 2 %><br>
5 * 4 = <%= 5 * 4 %>
<br><br>
50 < 40 ? <%= 50 < 40 %><br>
30 = 30 ? <%= 30 == 30 %>
<br><br>
</body>
</html>
2. Scriptlet (스크립트릿)
사용블록 : <% %>
JSP에서 자바 소스코드를 그대로 적고 사용하는 코드블록이다.
위에서 설명했다시피 출력하려면 out.println() 등의 출력메소드가 필요하고 세미콜론(;)도 꼭 붙여줘야한다.
하지만 리턴값만을 넣어야하는 표현식과는 다르게 별의별 값을 다 넣을 수 있다.
변수도 설정할 수 있고 반복문 조건문 등을 다 쓸 수 있다.
<예시>
<html>
<body>
<h3>Hello World of Java</h3>
<%
String str = "Scriptlet";
for(int i = 0; i<2; i++){
out.println(str+"<br>");
}
int number = 10;
if(number > 15){
out.println("this is big number!");
} else {
out.println("this is small number...");
}
%>
</body>
</html>
3. Declaration (선언문)
사용블록 : <%! %>
스크립트릿이나 표현식에서 사용할 수 있는 함수를 작성하기 위해 사용하는 블록이다.
자바의 메소드와 같지만 선언만 할 수 있다. 그 어떤 출력도 불가능하다.
<예시>
<html>
<body>
<%!
public static int add(int a, int b){
return a + b;
}
public static int subtract(int a, int b){
return a - b;
}
%>
5 + 2 = <%= add(5, 2) %> <br>
10 - 2 = <%= subtract(10, 2) %> <br>
</body>
</html>