12주차 - jsp (7) <%! %>, <% %> 둘을 비교해보자

2022. 9. 21. 20:20jsp/jsp

이번의 목표

01. <%! %> 에 대해 알아보자

02. <% %> 에 대해 알아보자.

03. <%! %> 와 <% %>에 대해 알아보자.


<%! %> declaration 선언 : 자바 코드 작성 ( 클래스 내부에 작성하는 것과 같은 기능)

<% %> scriptlet 스크립트릿 : 자바 코드 작성 (메서드 내부에 작성하는 것과 같은 기능)

 

위의 둘은 둘다 자바 코드를 작성할 수 있도록 해주는 기능을 합니다.

다른점은 <%! %>에 적는 코드는 클래스에 적는것과 같기 때문에 여기에 적는 변수는 멤버변수로 취급됩니다. 또한 메서드의 생성 등이 가능합니다.

<% %>는 메서드에 적는 것과 같기 때문에 여기에 적는 변수는 지역변수로 취급됩니다. 또한 메서드의 생성이 불가합니다.

※멤버 변수는 자동으로 초기화가 되지만 지역 변수는 초기화를 반드시 해야합니다.

 

01. 코드
02. 실행 화면

01. 코드

<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex07</title>
</head>
<body>
	<%!
		int data;
		void setData(int data){
			this.data=data;
		}
		int getData(){
			return data;
		}
	%>
	<%
		out.print(getData()+"<br> "); // data는 멤버변수이기 때문에 자동으로 초기화되어 0을 가지고 있다.
		setData(10);
		out.print(getData()); // data에 10을 저장했기 때문에 10을 받아온다.
	%>
</body>
</html>

02. 실행 화면