기록하는 코더

[JSP] 스크립트 태그 본문

JSP

[JSP] 스크립트 태그

damda_di 2022. 12. 26. 12:29

JSP의 태그로는 스크립트 태그, 디렉티브 태그, 액션 태그로 나뉜다.

 

JSP 태그 스크립트 태그
디렉티브 태그
액션 태그

 

 

스크립트 태그는

HTML 코드에 자바 코드를 넣어 프로그램을 수행할 수 있도록 해준다.

스크립트 태그의 종류
선언부 <%! ... %> 자바 변수나 메소드를 정의 , 선언문에서 쓰는 변수는 전역변수
스크립트릿 <% ...%> 스크립트릿 내에서 쓰는 변수는 지역변수
표현부 <%= ...%> 문자열 형태로 출력하는데 사용

 

선언부와 스크립트릿은 (;) 세미콜론으로 마무리한다.

 

 

선언부에 선언한 클래스의 값을 표현부에 가져와 웹페이지에서 출력할 수 있다.

<%! Date today = new Date(); 
	Calendar cal = Calendar.getInstance();
%>

<%=today %>
<%=cal %>

 출력결과

 

 

 

스크립트릿 내에서 out.print메소드를 이용해 출력 가능하다.

<%
	// 지역변수  a, b, sum => 서블릿 => 
	//			scriptlet01_jsp.java의 (..Service메소드)에서만 사용됨
	// 선언과 동시에 값을 할당 => 초기화
	int a = 2;
	int b = 3;
	int sum = a + b;
	// JSP  기본 객체인 out객체의 print메서드를 사용하여 화면에 출력
	out.print("<p>2 + 3 = " + sum + "<br / >");
%>
<p><%=sum %></p>

 출력결과


선언부 예제

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scripting Tag</title>
</head>
<body>
<h2>선언문 태그 연습</h2>
<%!
	// 전역 메소드
	int sum(int a, int b){
	return a + b; 
}
%>
<%
	// sum이라는 전역 메소드를 호출(두 개의 파라미터를 전달)
	// out : JSP에서 제공해주는 기본 객체
	out.print("2 + 3 = " + sum(2,3));
	sum(3,3);
%>
<br>
<b>
<%= sum(2,3) %>
</b>
</body>
</html>

 출력결과

선언부에 선언된 변수와 메소드는 전역변수, 전역메소드

 

스크립트릿 태그 예제 - 01

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scripting Tag</title>
</head>
<body>
	<h2>Scripting Tag</h2>
<%! // 선언문 태그 -> 전연변수, 전역 메소드 선언
	int count = 3;

	// 전역 메소드 선언
	// String : 리턴 타입(반환 타입) 메소드명(자료형 매개변수)
	// String data : 파라미터(인수)를 받아들이는 매개변수
	String makeItLower(String data){
		// 영문 소문자로 변환하여 리턴
		return data.toLowerCase();
	}
%>

<%	// 스클립틀릿 태그 (자바 로직 코드 작성)
	// 지역변수 i를 사용하고 1부터 3까지 1씩 증가
	for(int i = 1; i <= count; i++){
		// out : JSP의 기본 객체 (화면에 출력 대상 문자열을 출력)
		out.println("Java Server Pages " + i + "<br/>담다디<br />"); // 단일 태그이므로 뒤에 /를 붙임 (웹표준)0
	}
%>
	<!-- 표현문 태그 (선언문의 메소드를 호출 -> 소문자로 변환하여 리턴받음) -->
	<%=makeItLower("Hello World") %>

</body>
</html>

▶ 출력결과

스크립트릿 태그 예제 - 02

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scripting Tag</title>
</head>
<body>
<% // 스크립틀릿 태그
	for(int i = 0; i <= 10; i++){ // 0 ~ 10
		// 짝수인 경우만 출력
		if(i % 2 == 0 && i != 0){
		out.print("<p>" + i + "</p>");		
		}
	}
%>
</body>
</html>

 

표현부 예제 - 01

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="java.util.Date"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scripting Tag</title>
</head>
<body>
<p>
	Todat's date : 
	<% // 스크립틀릿
		out.print("<p>" + new java.util.Date() + "</p>");
	%>
	<!-- 표현문 -->
	<%=new Date() %>
</p>
</body>
</html>

▶ 출력결과

 

표현부 예제 - 02

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Scripting Tag</title>
</head>
<body>
<% // 스크립틀릿
	// 지역변수
	int a = 10;
	int b = 20;
	int c = 30;
	
	int d = a+b+c;
%>
<!-- 다음과 같이 출력해보자
a + b + c = 30-->

a + b + c = <%=a+b+c %> <br><br>
<%
out.print(a + " + " + b + " + " + c + " = " + d);
%>
</body>
</html>

 출력결과