[JSP] 스크립트 태그

JunHyeok_Yoo·2022년 10월 6일
0

스크립트 태그

<% .. %> 사용
JSP 페이지가 서블릿 프로그램에서 서블릿 클래스로 변환될 때 JSP 컨테이너가 자바 코드가 삽입되어있는 스크립트 태그를 처리하고 나머지는 HTML 코드나 일반 텍스트로 간주

스크립트 태그의 종류

스크립트 태그형식설명
선언문<%!.. %>자바 변수나 메소드를 정의
스크립틀릿<% .. %>자바 로직 코드 작성
표현문<%= .. %>변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력

선언문 태그

  • 변수나 메소드를 선언하는 태그
  • 이때 변수는 전역변수, 메소드도 전역 메소드로 사용되며 각 행이 세미콜론으로 끝나야함
  • 선언문 태그로 선언된 변수는 서블릿 프로그램으로 번역될 때 클래스 수준의 멤버변수가 되므로 전역변수로 사용
  • 해당 JSP페이지의 모든 스크립트 태그가 참조할 수 있음 (전역변수니까)
  • 어느 위치에서도 참조할 수 있으므로 먼저 선언된 스크립틀릿 태그에서 나중에 선언된 선언문 태그의 변수나 메소드 사용 가능
<html>
<head>
<meta charset="UTF-8">
<title>Scripting tag</title>
</head>
<body>
	page count is:
	<%
		out.print(myMethod(0));
	%>
	<!-- 선언문태그 -->
	<%!
		public int myMethod(int count){
			return ++count;	
		}
	%>
</body>
</html>

선언문 태그(전역 메소드)가 스크립틀릿 태그보다 나중에 명시되어있지만 잘 동작한다.

스크립틀릿 태그

  • 자바 코드로 이루어진 로직 부분을 표현
  • out 객체를 사용하지 않고도 쉽게 HTML 응답을 만들어냄
  • 각 행 세미콜론으로 종료
<html>
<head>
<meta charset="UTF-8">
<title>Scripting tag</title>
</head>
<body>
	<!-- num이 먼저 초기화됨 -->
	<% int num = 10;%>
	page count is:<%=num %>
</body>
</html>

위 코드는 잘 작동하지만

<html>
<head>
<meta charset="UTF-8">
<title>Scripting tag</title>
</head>
<body>
	<!-- num이 나중에 초기화됨 -->
	page count is:<%=num %>
    <% int num = 10;%>
</body>
</html>

위 코드는 동작하지 않는다.

선언문 태그 vs 스크립틀릿 태그

선언문 태그스크립틀릿 태그
메소드 & 변수 선언 가능메소드X, 변수만 선언 가능
서블릿 프로그램으로 변환시 _jspService() 메소드 외부에 배치서블릿 프로그램으로 변환시 _jspService() 메소드 내부에 배치

표현문 태그

  • 웹 브라우저에 출력할 부분을 표현
  • 숫자, 문자, 불(Boolean)등 기본 data 타입, 자바 객체 타입 사용가능
  • 세미콜론으로 종료하지 않음

profile
just do it

2개의 댓글

comment-user-thumbnail
2022년 10월 11일

멋지십니다!

1개의 답글