JSP&Servlet

[JSP] JSP의 스크립트 요소

Untitled_Blue 2023. 10. 3. 20:51
반응형

안녕하세요. 이번 글은 JSP의 스크립트 요소에 대한 글입니다.

 

- 스크립트 요소란?

  • JSP파일에서 자바 코드를 사용하기 위한 일종의 코드 블럭
  • 크게 선언문(Declaration), 스크립트릿(Scriptlet), 표현식(Expression) 3가지로 분류된다.

- 선언문 (Declaration)

  • <%! %>
  • JSP 파일 내 필요한 변수와 메서드를 선언 및 사용하기 위한 요소
 <%!
 	String vUrl = "/index.do";
 	
 	public void Indexing() {
 		vUrl += "MainPage";
 	}
 %>

다음과 같이 변수와 메서드를 선언하기 위해 해당 요소를 사용할 수 있다는 점을 확인할 수 있다. 또한 선언문은 여러 번 선언할 수 있다.

- 스크립트릿 (Scriptlet)

  • <% %>
  • JSP 페이지 내에서 가장 많이 사용하는 스크립트 요소이자 로직을 기술할 때 사용
  • 해당 스크립트 요소에 선언되는 모든 부분은 지역변수로 인식
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
String test = "Untited_blue";
%>

<h2>여기는 티스토리 플랫폼에서 운영 중인 <%=test %>의 블로그입니다.</h2>
</body>
</html>

다음과 같이 스크립트릿을 통해 변수와 메서드를 선언할 수 있음을 확인할 수 있다. 이때 이렇게만 보면 선언문과 별다른 차이점이 없는 것 아닌가? 하는 의문이 들 수 있다. 차이점은 먼저 선언문에서는 변수와 메서드를 선언하면 전역변수로 인식해서 선언문 기준 이전과 이후 위치에서 모두 사용할 수 있다. 하지만 스크립트릿은 지역변수로 인식하기 때문에 스크립트릿 이후에만 해당 변수와 메서드를 사용할 수 있다. 이전에는 사용할 수 없다.

- 표현식 (Expression)

  • <%= %>
  • JSP 페이지에서 웹 문서로서 출력할 부분을 표현하기 위한 스크립트 요소
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
String test = "Untited_blue";
%>

<h2>여기는 티스토리 플랫폼에서 운영 중인 <%=test %>의 블로그입니다.</h2>
</body>
</html>

상단 소스코드에 대한 실행 결과는 스크립트릿 (Scriptlet)에서 볼 수 있다. 다음과 같이 <%= %>을 통해 선언문 또는 스크립트릿을 통해 선언해둔 변수와 메서드를 웹 문서에 표시할 수 있음을 확인할 수 있다. 이때 세미콜론은 사용하지 않는다.

<%-- 주석은 이렇게 사용하면 된다. --%>

추가로 JSP에서는 주석을 <%-- --%>을 사용하면 된다. 하지만 선언문과 스크립트릿에서는 Java처럼 //, /* */을 사용해야 한다. 하지만 HTML 내에서는 <!-- -->을 사용하는데 JSP 주석을 사용해도 그렇지 않아도 정상적으로 주석을 인식할 수 있음을 확인할 수 있다.

 

다음 글은 JSP의 내장객체에 대한 설명입니다. 감사합니다.

반응형