티스토리 뷰

 

CHAPTER 02. 스크립트 태그

 

 

 

1. 스크립트 태그의 개요

 

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

스크립트 태그는 HTML 코드에 자바 코드를 넣어 프로그램이 수행하는 기능을 구현한다.

디렉티브 태그(페이지 속성)는 JSP 페이지를 어떻게 처리할 것인지 설정하고 JSP 페이지에 대한 정보를 JSP 컨테이너에 보낸다.

액션 태그는 클라이언트/서버에 어떤 작동을 행하도록 명령을 지시하는 XML 형태의 태그로 JSP 페이지 사이에서 제어를 이동할 수 있다.

 

스크립트 태그는 세가지 종류가 있고 모두 공통적으로 <%...%>를 사용한다.

 

 

스크립트 태그의 종류

스크립트 태그 형식 설명
선언문(declaration) <%!...%> 자바 변수나 메소드를 정의하는데 사용한다. 
(클래스 안에 위치 / 함수선언, 변수선언 / 전역변수이다.)
스크립틀릿(scriptlet) <%...%> 자바 로직 코드를 작성하는데 사용한다.
(함수 안에 위치)
표현문(expression) <%=...%> 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력하는데 사용한다.

 

* 선언문은 전역변수와 같다.

* 스크립틀릿은 특정함수 안에 위치한다.

* 표현문은 출력문으로 println()과 같다. 그리고 html에 출력한다(console아님!)

* 표현문은 출력문으로 out.print()로 대체할 수 있다.

* JSP 표현문 태그의 구문 전체는 서블릿 프로그램에서 out.print() 메소드의 매개변수가 되기 때문에 세미콜론은 사용할 수 없다.

 

 

 

 

 

 

 

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

 

선언문 태그(<%!...%>)는변수나 메소드 등을 선언하는 태그이다.

선언문 태그에 선언된 변수와 메소드는 서블릿 프로그램으로 번역될 때 전역변수의 위치에 배치되기 때문에 어떤 위치에 선언해도 상관 없이 같은 위치(_jspService())에 선언된다.

 

<%! 자바 코드; %> 

각 행이 세미콜론으로 끝나야 한다.

 

 

 

 

ex) 선언문 태그에 전역변수 사용하는 예시

 

2-1

<%@ 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>
	<%! int data=50; %>
	<%
		out.println("value of the variable is: " +data);
	%>
</body>
</html>

 

 

 

 

ex) 선언문 태그에 전역 메소드 사용하는 예제

 

2-2

<%@ 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>
	<%! int sum(int a, int b){
		return a+b;
	}	%>
	<%
		out.println("2 + 3 = "+sum(2,3));
	%>
</body>
</html>

 

 

 

 

ex) 선언문 태그에 전역 메소드 사용하는 예제

 

2-3

<%@ 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 makeItLower(String data){
		return data.toLowerCase();	
	}%>
	<% 
		out.println(makeItLower("Hello World"));
	%>
</body>
</html>

 

 

 

 

 

 

 

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

 

스크립틀릿 태그는 자바 코드로 이루어진 로직을 표현한다.

가장 많이 사용되고 변수 또는 out객체의 메소드 선언 등을 실행한다.

모든 텍스트, HTML 태그, 또는 JSP 요소는 스크립틀릿 태그 외부에 있어야한다.

위치는 함수 안에 위치한다.

 

<% 자바 코드; %> 

각 행이 세미콜론으로 끝나야한다.

 

 

스클립틀릿 태그는 앞의 선언문 태그와 다르게 메소드 내부에 복사된다.

지역변수의 역할을해 스크립틀릿 태그 내에서만 사용할 수 있다.

 

 

 

 

선언문 태그와 스크립틀릿 태그 비교

선언문 태그 스크립틀릿 태그
변수뿐만 아니라 메소드를 선언할 수 있다. 스크립틀릿 태그는 메소드 없이 변수만을 선언할 수 있다.
서블릿 프로그램으로 변환될 때 _jspService() 메소드 외부에 배치된다. (전역변수) 서블릿 프로그램으로 변환될 때 _jspService() 메소드 내부에 배치된다. (지역변수)

 

 

 

 

ex) 스크립틀릿 태크에 지역변수 사용하기

 

2-4

<%@ 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>
	<%
		int a=2;
		int b=3;
		int sum = a+b;
		out.println("2 + 3 = "+sum);
	%>
</body>
</html>

 

 

 

 

 

ex) 스클립틀릿 태그에 0부터 10까지의 짝수 출력하기

 

2-5

<%@ 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>
	<%
		for(int i=0; i<=10; i++){
			if(i%2==0)
				out.println(i+"<br>");
		}
	%>
</body>
</html>

 

 

 

 

 

 

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

 

표현문 태그는 <%=..%> 를 사용한다.

표현문 태그를 사용하면 웹 브라우저에 출력할 부분을 표현한다.

선언문 태그 또는 스크립틀릿 태그에서 선언된 변수나 메소드의 반환 값을 외부로 출력할 수 있다.

표현문 태그는 스클립틀릿 태그에서 사용할 수 없으므로 out.print() 메소드를 사용한다.

 

 

<%= 자바 코드 %>  

각 행을 세미콜론으로 종료할 수 없다.

자바 코드는 파라미터만 넣어줘야한다.

 

 

 

 

 

 

 

ex) 표현문 태그로 현재 날짜 출력하는 예제

 

2-6

 

<%@ 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>
	<p>Today's date : <%= new java.util.Date() %></p>
</body>
</html>

 

 

 

ex) 표현문 태그로 연산 결과 출력하는 예제

 

2-7

<%@ 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>
	<%
		int a =10;
		int b =20;
		int c= 30;
	%>
	<%= a+b+c %>
</body>
</html>

 

 

 

 

 

 

 

 

 

 

5. 웹 쇼핑몰 시작 페이지 만들기

 

 

 

ex) 웹 쇼핑몰 시작 페이지 만들기 예제

 

2-8

<%@ 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 greeting = "Welcome to Web Shopping Mall"; 
		String tagline = "Welcome to Web Market!";%>
		<h1><%=greeting %></h1>
		<h3><%= tagline %></h3>
</body>
</html>

 

 

 

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<nav class="navbar navbar-expand navbar-dark bg-dark">
		<div class = "container">
			<div class="navbar-header">
				<a class="navbar-band" href="./welcome.jsp">Home</a>
			</div>
		</div>
	</nav>
	<%! String greeting = "Welcome to Web Shopping Mall"; 
		String tagline = "Welcome to Web Market!";%>
		
	<div class="jumbotron">
		<div class="container">
			<h1 class="display-3">
			<%=greeting %>
			</h1>
		</div>
	</div>	
	
	<div class="container">
		<div class="text-center">
			<h3>
				<%= tagline %>
			</h3>
		</div>
		<hr>
	</div>
	
	<footer class="container">
		<p>&copy; WebMarket</p>
	</footer>

</body>
</html>

 

 

 

 

 

 

 

 

 

 

 

'코딩 > JSP' 카테고리의 다른 글

웹쇼핑몰  (0) 2023.12.01
[8주 5일차] 액션 태그  (1) 2023.12.01
[8주 4일차] 액션 태그  (1) 2023.11.30
[8주 3일차] 디렉티브 태그  (0) 2023.11.29
[8주 2일차] JSP (운영체제 /웹 / JSP 환경 설정)  (0) 2023.11.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday