본문 바로가기
JSP

1. JSP지시어

by 김마리님 2020. 5. 27.

JSP 지시어는 크게 네 가지가 있다.

<%@ %>  : 페이지 지시자
<% %>: 스크립트 릿(자바 코드 적는 곳, 스택)
<%= %> 표현식 (자바 코드 화면에 출력)
<%!  %>: 함수 적는 곳(전역공간)

 

간단한 예시를 보자.

<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
Calendar c=Calendar.getInstance();
Integer hour =c.get(Calendar.HOUR_OF_DAY);
Integer minute=c.get(Calendar.MINUTE);
Integer second=c.get(Calendar.SECOND);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>현재 시각은 <%=hour %>시 <%=minute %>분 <%=second %>초 입니다.</h1>
</body>
</html>

다음과 같이 JSP 파일 맨 위에는 페이지의 속성을 지정하는 코드가 있다.

<% %>는 자바 코드 로직을 적어서 HTML 코드와 구분한다. 스크립틀릿은 외부에 출력되지 않기 때문에 표현식을 이용해 외부에 출력한다. (body 부분)

 

전역공간에 함수를 적는 것도 확인해보자.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%!
	public int sum(){
	int total=0;
	for(int i=0;i<=100;i++){
		total+=i;
	}
	return total;
}
%>
<%
	String str="1부터 100까지의 합";
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2><%=str %>은 <b><%=sum() %></b>입니다.</h2>
<br/>
<h2><%=str %>에 3을 곱하면 <b><%=sum()*3 %></b>입니다.</h2>
<br/>
<h2><%=str %>에 1000을 나누면 <b><%=sum()/1000. %></b>입니다.</h2>
</body>
</html>

다음과 같이 for문을 이용한 함수를 전역공간에 선언할 수 있다.

(스크립틀릿으로 만든 공간은 전역공간이 아닌 지역공간이다.)

 

표현식에 들어가는 변수의 값은 비단 변수뿐만 아니라 리턴값이 있는 메소드나 결과값이 있는 수식이면 뭐든 가능하다(출력할 수 있는 값이면 다 가능한 것 같다.)

 

JSP를 할 때 주의할 점은 다음과 같다.

<body>
	<h1>현재 시각은 <%=hour %>시 <%=minute %>분 <%=second %>초 입니다.</h1>
	<% if(hour>=12){ %>
		<h2>오후입니다.</h2>	
	<%}else{ %>
		<h2>오전입니다.</h2>
	<%} %>	
</body>
</html>

다음과 같이 스크립틀릿을 많이 사용해야 하는 if문이나 for문의 경우 스크립틀릿을 열고 닫는 일, 괄호를 열고 닫는 일이 많이 있기 때문에 괄호가 잘 닫히는지 확인해야만 한다..!

반응형