[JSP] JSP문법

2019. 2. 25. 17:08JAVA Back-End


JSP 페이지에서 3가지 스크립트 요소를 제공합니다

  • 선언문(Declaration)   <%! %>  : 전역변수 선언 및 메소드 선언에 사용
  • 스크립트릿(Scriptlet)  <% %>  : 프로그래밍 코드 기술에 사용 (Service부분)
  • 표현식(Expression)    <%= %> : 화면에 출력할 내용 기술. 응답 결과에 포함할 부분


선언문(Declaration) - <%! %>

선언문은 JSP 페이지 내에서 필요한 멤버변수나 메소드가 필요할 때 선언해서 사용하는 요소입니다.

exam.jsp
<body>
    <%!
        String id = "shiningJean"; // member변수 선언
        public String getId(){
            return id;
        }
    %>
</body>

// JSP파일의 위치는 중요하지 않습니다. 어차피 자바로 바뀔 대 JSP코드 부분 때문에 위치가 선정되므로
// 실제 JSP파일 내의 위치가 어딨냐는 크게 중요하지 않습니다:)


스크립트릿(Scriptlet) - <% %>

가장 일반적으로 많이 쓰이는 스크립트 요소로 로직을 기술할 때 사용됩니다.


exam2.jsp

<body>
<%
for(int i=1; i<=5; i++){
%>
    <h<%=i%>> header </h<%=i%>>
<%  
}
%>
</body>


exam2.java

for(int i=1; i<=5; i++){

out.write("\r\n");
out.write("\t<h");
out.print(i);
out.write("> header </h");
out.print(i);
out.write('>');
out.write('\r');
out.write('\n');
}
// 자바 코드로 바뀐 부분.


실행 결과

header

header

header

header

header 

표현식(Expression) - <%= %>

JSP페이지에서 웹 브라우저에 응답 결과를 표현할 때. 출력할 부분을 표현식으로 나타냅니다.

스트립트릿 내에서 출력할 부분은 내장객체인 out.print() 또는 println() 메소드가 사용되어 출력됩니다

주석(Comment) 

HTML 주석 : <!--  -->을 사용
HTML 주석은 HTML주석을 사용한 페이지를 웹에서 서비스할 때 화면에 내용이 표시되진 않지만, [소스보기]를 하면
HTML주석 내용이 화면에 표시됩니다.

JSP 주석 : <%--  --%>을 사용
JSP주석은 JSP페이지에서만 사용됩니다(jsp코드전용 코멘트). 자바코드로 변환될 때 변환되지 않습니다.
따라서 웹 브라우저에서도 JSP주석은 실해되지 않습니다.

JAVA주석 : //, /* */ 을 사용
JSP페이지 스크립트 요소 내에서 사용할 수 있습니다.(자바코드로 변환되기 때문에)
// 는 한 줄짜리 주석 작성 시 사용되고
/* */ 는 여러 줄의 주석 작성 시 사용됩니다.

스트립트릿(<% %>)이나 선언문(<%! %>)에 사용되는 주석으로, 자바와 주석 처리 방법이 같습니다.


comment.jsp

<body>
<!-- html 주석입니다. -->
<%--jsp 주석입니다.--%>

id : <%= getId()%>
    <%!
        String id = "shiningJean"; // member변수 선언
        public String getId(){
            return id;
        }
    %>
    
<%
// 스크립트 내의 자바 주석입니다.
for(int i=1; i<=5; i++){
%>
    <h<%=i%>> header </h<%=i%>>
<%  
}
%>

</body>


comment.java

out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<meta charset=\"UTF-8\">\r\n");
out.write("<title>Insert title here</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write("<!-- html 주석입니다. -->\r\n"); html주석은 out.write메소드로 출력됩니다.
out.write("\r\n");
out.write("\r\n");
out.write("id : ");
out.print( getId());
out.write('\r');
out.write('\n');
out.write(' ');
out.write("\r\n");
out.write("\t\r\n");

// 스크립트 내의 자바 주석입니다. 자바 주석은 이렇게 바로 주석처리되서 나오는 것을 확인할 수 있습니다.
for(int i=1; i<=5; i++){

out.write("\r\n");
out.write("\t<h");
out.print(i);
out.write("> header </h");
out.print(i);
out.write('>');
out.write('\r');
out.write('\n');

}

out.write("\r\n");
out.write("\r\n");
out.write("</body>\r\n");
out.write("</html>");

java코드를 살펴보면 html주석과 java주석은 나오지만 jsp주석은 컴파일되면서 읽히지 않는다는 걸 확인할 수 있습니다.


웹브라우저에서 [소스보기]

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- html 주석입니다. -->


id : shiningJean
    
    

    <h1> header </h1>

    <h2> header </h2>

    <h3> header </h3>

    <h4> header </h4>

    <h5> header </h5>


</body>
</html>

웹브라우저에서는 html주석만 그대로 화면에 출력되는 것을 볼 수 있습니다.


[ edwith - 웹프로그래밍 부스트코스 ] 를 개인적으로 공부하고 정리한 공간입니다. 잘못된 부분은 피드백 주시면 감사하겠습니다

'JAVA Back-End' 카테고리의 다른 글

[JSP] redirect 와 forward  (1) 2019.02.26
[JSP] JSP 내장객체  (0) 2019.02.25
[JSP] JSP 라이프 싸이클  (0) 2019.02.25
[JSP] JSP?  (0) 2019.02.22
[JSP/Servlet] Request / Response 객체  (0) 2019.01.30