Language/└JSP | Servlet

[JSP] JSP 기초문법 선언문(Declaration), 스크립트릿(Scriptlet), 표현식(Expression) | Yoon's Dev

Yooniron 2021. 4. 22. 21:45

JSP 기초문법 선언문(Declaration), 스크립트릿(Scriptlet), 표현식(Expression)

 

 


학습 목표

 

JSP의 기본 문법인 선언문, 스크립트릿, 표현식과 주석

JSP의 기본 제어문


 


태그

 

■ 스크립트 태그

✓ <% ... %>를 사용

✓ <과 % 그리고 % 와 > 사이에 빈 공간 문자가 있으면 안 된다.

 

- 종류

종류 태그 형식 사용 용도
지시어(directives) <%@      %> JSP 페이지의 속성을 지정
선언(declaration) <%!        %> 소속변수 선언과 메서드 정의
표현식(expression) <%=       %> 변수, 계산식, 함수 호출 결과를 문자열 형태로 출력
스크립트릿(scriptlet) <%         %> 자바 코드를 기술
주석(comments) <%--     --%> JSP 페이지의 설명 추가

 

■ 액션 태그와 커스텀 태그

✓ 액션 태그

  - XML 스타일의 태그로 기술한 동작 기능을 수행하는 방식

✓ 커스텀 태그

  - 새로운 태그를 정의하여 이용하는 방법으로 JSP 만의 고유한 방식

 

종류 태그 형식 사용 용도
액션 태그
(action Tag)
<jsp:include page="test.jsp /> 현재 JPS 페이지에서 다른 페이지를 포함
<jsp:foward page="test.jsp /> 현재 JSP 페이지의 제어를 다른 페이지에 전달
<jsp:plugin type="applet" code="test" /> 자바 애플릿을 플러그인
<jsp:useBean id="login" class="LoginBean" /> 자바 빈을 사용
<jsp:setProperty name="login" property="pass" /> 자바빈의 속성을 지정하는 메서드를 호출
<jsp:getProperty name="login" property="pass" /> 자바빈의 속성을 변환하는 메서드를 호출
커스텀 태그(Custom Tag) <tag:printData dbname="mydb" table="memb" /> 사용자가 직접 정의한 태그를 이용

 

 


 

스크립트 요소

 

■ 스크립트 요소란?

✓ JSP 프로그래밍에서 사용되는 문법의 표현 형태!

 

■ 스크립트릿

✓ JSP에 자바 코드를 삽입할 때 사용

✓ JSP 페이지가 서블릿으로 변환되고 요청될 때 _jspService() 메서드 안에 선언되는 요소

스크립트릿은 선언문과 달리 선언된 변수는 지역 변수로 선언이 되고 메서드 선언은 할 수 없음

------> 만약 메서드를 선언하게 되면 메서드 안에 메서드를 선언한 것!! XXXX

 

✓ 스크립트릿 문법

<%

    이곳에 필요한 자바 코드를 삽입(지역 변수 선언, forwhileif 등등..)

%>

 

스크립트릿 예제)

1
2
3
4
<%
    String str = "스크립트 태그";
    out.print(str);
%>
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ 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 i=24%>
    <%
        out.println("하루는 " + i + "시간이며, <br>");
        out.println("하루는 " + i*60 + "분 입니다.");
    %>
</body>
</html>
cs

 

실행 결과

 


■ 표현식(expression)

✓ 동적인 JSP 페이지를 브라우저로 표현을 하기 위한 요소

변수를 출력하거나, 계산식 또는 메서드의 결괏값을 브라우저에 출력

스크립트릿 코드 내에서 out 이라는 내장 객체를 통해 브라우저에 출력하는 것과 결과가 같음

스크립트릿과 달리 변수나 메서드를 출력하고자 할 때 세미콜론(;)을 표기하지 않음

 

표현식 문법

<%= 변수 혹은 메서드 %> // <% 와 = 사이에 공백이 있으면 안 됨

 

 

표현식 예제)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ 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 year=365%>
    <% out.println("1년은 약 몇 주일까요??"); %>
    <%= year/7 %>
    <%= " 주 입니다." %>
</body>
</html>
cs

실행 결과

 


■ 선언문(Declaration)

✓ JSP에서 사용될 변수나 메서드를 선언할 수 있는 요소

✓ JSP페이지 내에서 변수 및 메서드를 선언 후, 변수나 메서드를 이용하여 동적으로 HTML 코드를 생성하는 데 사용

선언문에 선언된 변수를 멤버 변수라 한다.

 

선언문 문법

<%!

      멤버 변수 및 메서드를 선언하는 영역

 %>

 

 

선언문 예제)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ 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>
    <h1>Declaration Example</h1>
    <%!
        int one;
        int two = 1;
        String msg;
        int three;
        
        public int plusMethod(){
            return one + two;
        }
        
    %>
    one + two?: <%=plusMethod() %> <p>
    String msg의 값??: <%=msg %> <p>
    int three의 값??: <%=three %> 
</body>
</html>
cs

 

실행 결과


■ 주석

✓ 프로그램에 직접적인 영향을 미치지는 않지만 개발자들의 소스 분석 내용 및 파일 설명 처리를 위해서 없어서는 안 될 꼭 필요한 요소

 

✓ HTML 형식의 주석

<!-- HTML 형식의 주석 -->

 

✓ JSP 형식의 주석

<%-- JSP 형식의 주석 --%>

 

✓ 스크립트 요소의 주석

<% /* 여러 줄 주석 및 부분 주석 */ %>

<% // 한 줄 주석 %>