웹 개발 공부 : Back-end/JSP

[JSP] JSP 기본 문법 - 디렉티브, 선언부, 표현부, 스크립트릿

Developer KTU 2021. 9. 16. 12:19
반응형

JSP에선 HTML과 자바 코드를 혼용해서 사용할 수 있다고 했다. 그렇다면 HTML영역, 자바 영역을 구분해야 가독성이 좋을텐데, 이를 수행하는 것이 선언부, 표현식 스크립트릿이다. 페이지 디렉티브는 JSP페이지, 자바의 사전 설정을 수행하는 것이다. (자바에선 import가 올 수 있겠고, jsp에선 utf-8 같은 캐릭터 설정같은 것이 올 수 있겠다)

1. 디렉티브

앞서 설명했듯, 자바의 import나 JSP 페이지의 사전 설정을 수행하는 영역이다. 문법으로는 <%@  %>이다.

<예시>

<%@ page contentType = "text/html; charset=UTF-8" %> <!-- charset=iso-8859-1 한글 깨짐 -->
<%@ page import = "java.util.Date" %>

 

2. 선언부

선언부는 말 그대로 '무언갈 선언한다'는 뜻이다. 자바에서의 함수 정의, 변수 선언 등의 역할을 한다. 문법으로는

<%!  %>를 사용한다.

<예시>

<%!

    public int add(int a, int b) {
    	return a+b;
    }
    
    public int subtract(int a, int b){
    	return a-b;
    }
    
    int val1 = 10;
    int val2 = 20;
    
%>

 

 

3. 스크립트릿

스크립트릿은 JSP페이지 내에서 자바코드를 기술할 수 있는 영역이다. 선언부, 표현부도 자바코드를 기술하긴 하지만, 스크립트릿에서 모든 자바코드는 물론 주요 자바코드를 기술한다. <for, while>, <if, else-if> 등등... 문법은 <%  %>이다.

<예시>

<%
    int value1 = 10;
    int value2 = 20;
    
    int addResult = add(value1, value2);
    int subtractResult = subtract(value1, value2);
%>

 

 

4. 표현부

표현부는 자바의 변수값을 출력하거나 함수의 return 값 등을 표현해주는 영역이다. 음 쉽게 말하자면 어떤 연산의 결과를 보여준다고 하면 이해가 쉬울 것이다. 문법은 <%=  %>를 사용한다. 

<예시>

<%= value1 %> + <%= value2 %> = <%= addResult %>

<%= value1 %> - <%= value2 %> = <%= subtractResult %>

 

전체 코드

<!-- page : 디렉티브 ex) taglib, include -->
<%@ page contentType = "text/html; charset=UTF-8" %>
<!--선언부-->
<%!
    public int add(int a, int b){
        return a+b;
    }
    public int subtract(int a, int b){
        return a-b;
    }
%>
<html>
<head>
    <title>스크립트 릿에서 선언부 사용</title>
</head>
<body>
    <%
        int value1 = 10;
        int value2 = 20;
        int addResult = add(value1, value2);
        int subtractResult = subtract(value1, value2);
    %>
    <!--표현식 함수 호출 -->
    <%= value1 %> + <%= value2 %> = <b><%= addResult %></b> <br>
    <%= value1 %> - <%= value2 %> = <b><%= subtractResult %></b>
</body>
</html>

 

다음 포스트에서 계속....

반응형