JSP 스크립트 태그

박승현·2022년 4월 21일

JSP

목록 보기
1/11

스크립트 태그의 개요

JSP태그는 크게 스크립트 태그(script tag), 디렉티브 태그(directive tag), 액션 태그(action tag)로 나뉜다.

  • 스크립트 태그는 HTML 코드에 자바 코드를 넣어 프로그램이 수행하는 기능을 수현할 수 있다.
  • 디렉티브 태그는 JSP페이지를 어떻게 처리할 것인지 설정하여 JSP 페이지에 대한 정보를 JSP 컨테이너에 보낸다.
  • 액션 태그는 클라이언트/서버에 어떤 작동을 행하도록 명령을 지시하는 XML 형태의 태그로, JSP 페이지 사이에서 제어를 이동할 수 있다.
스크립트 태그형식설명
선언문(declaration)<%!...%>자바 변수나 메소드를 정의하는데 사용됨.
스크립틀릿(scriptlet)<%...%>자바 로직 코드를 작성하는 데 사용됨.
표현문(expression)<%=...%>변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력하는 데 사용됨.

선언문 태그의 기능과 사용법

선언문(declaration)태그는 변수나 메소드 등을 선언하는 태그이다. 선언문 태그에 선언된 변수와 메소드는 서블릿 프로그램으로 번역될 때 _jspService()메소드 외부에 배치되므로 JSP 페이지 임의의 위치에서 선언할 수 있다. 심지어 스크립틀릿 태그보다 나중에 선언해도 스크립틀릿 태그에서 사용할 수 있다.

<%! 자바 코드; %>

선언문 태그로 선언된 변수는 서블릿 프로그램으로 번역될 때 클래스 수준의 멤버 변수가 되므로 전역변수로 사용된다.

예제코드
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		int a = 2;
		int b = 3;
		int sum = a + b;
		out.println("2 + 3 = " + sum);
	%>

</body>
</html>

전역 메소드 sum()을 선언하기 위해 선언문 태그를 작성한다.
out.println()메소드를 이용하여 '2+3=5' 를 출력하도록 스크립틀릿 태그를 작성한다. 여기서 선언된 sum()메소드는 선언문 태그에 선언된 적역 메소드인 sum()을 호출한다.

스크립틀릿 태그의 기능과 사용법

스크립틀릿(scriptlet) 태그는 자바 코드로 이루어진 로직 부분을 표현하며, 다음과 같은 형식으로 out 객체를 사용하지 않고도 쉽게 HTML 응답을 만들어낼 수 있다. 스크립틀릿 태그는 가장 일반적으로 사용되며 변수 또는 메소드 선언, 유효식 등 다수를 포함할 수 있다. 모든 텍스트, HTML 태그, 또는 JSP 요소는 스크립틀릿 태그 외부에 있어야 한다.

<% 자바 코드; %>

선언문 태그스크립틀릿 태그
변수뿐만 아니라 메소드를 선언할 수 있다.메소드 없이 변수만을 선언할 수 있다.
서블릿 프로그램으로 변환될 때 _jspDervice()메소드 외부에 배치된다.서블릿 프로그램으로 변환될 때 _jspService() 메소드 내부에 배치된다.
예제코드
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		for(int i = 0; i <= 10; i++){
			if(i % 2 == 0){
				out.println(i + "<br>");
			}
		}
	%>
</body>
</html>

0부터 10까지의 짝수를 출력하도록 스크립틀릿 태그를 작성한다.

표현문 태그의 기능과 사용법

표현문(expression)태그는 다음과 같이 <%=와 %>를 사용하여 웹 브라우저에 출력할 부분을 표현한다. 표현문 태그를 이용하여 선언문 태그 또는 스크립틀릿 태그에서 선언된 변수나 메소드의 반환 값을 외부로 출력할 수 있다. 표현문 태그는 스크립틀릿 태그에서 사용할 수 없으므로 이 경우에는 out.print() 메소드를 사용해야 한다.

<%= 자바 코드 %>

표현문 태그에 숫자, 문자, boolean 등의 기본 데이터 타입과 자바 객체 타입도 사용 가능하다.

예제코드
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p> Today's date : <%= new java.util.Date() %></p>
</body>
</html>

현재 날짜를 출력하도록 표현문 태그를 작성한다.

profile
그냥 해보자 안되더라도 해보자 끝까지 해보자

0개의 댓글