본문 바로가기
수업(국비지원)/JSP

[JSP] JSP 구성 요소 - include 지시어, 스크립트 예제(스크립트릿<%%>, 표현식<%=%>)

by byeolsub 2023. 4. 18.
  • include 지시어
include Directive(지시어)를 이용하여 다른 페이지를 포함 할 수 있음.
두개의 jsp 페이지는 하나의 서블릿으로 변환 되므로 변수의 공유 가능.

 

📌

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- /jsp1/src/main/webapp/chap3/include1.jsp --%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>include 지시어 예제</title>
</head>
<body>
<%
  String msg = "include1.jsp 페이지의 msg 변수";
%>
<h1>include1.jsp 페이지 입니다.</h1>
<%@include file="include2.jsp" %>
<h2>include 지시어를 이용하여 다른 패이지의 내용을 가져 올 수 있습니다. 
두개의 jsp 페이지는 하나의 서블릿으로 변환 되므로 변수의 공유가 가능합니다.</h2>
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- /jsp1/src/main/webapp/chap3/include2.jsp --%>       
<hr>
<h3>include2.jsp 페이지</h3>
<h3>include1.jsp 페이지에 포함되는 페이지 입니다.
두개의 페이지가 같은 서블릿으로 변경 되므로 변수의 공유가 가능합니다.</h3>
msg : <%=msg %>
<hr>

 


  • 스크립트 요소
- 요청을 처리하는데 필요한 코드를 실행
- 동적으로 응답 결과를 생성하기 위해 사용
- 스크립트 요소 세가지
    : 스크립트릿(Scriptlet)
      표현식(Expression)
      선언부(Declaration)

 

스크립트릿(Scriptlet): 자바 알고리즘 부분.(자바 코드를 실행할 때 사용되는 코드의 블록)
                      _jspService(...)메서드 내에 설정되는 영역.
                      메서드 구현 불가.
스크립트릿의 구조
 : <% 자바코드1; 자바코드2; .... %>

<%= %>: 표현식
  - 화면(브라우저)에 값을 출력.
  1. 값이 존재해야함: 변수, 수식, 리턴값이 있는 함수.
  2. ; 종료안함.
  3. 주석처리시 여려줄 주석(/**/)만 가능. 한줄 주석(//) 사용 불가. 

<%! %>: 선언부
 - 스크입트릿이나 표현식에서 사용할 수 있는 함수를 작성할 때 사용.
 - 선언부 형식
예) <%! public 리턴타입 메서드이름(파라미터 목록) {
        자바코드1;
        자바코드2;
        ....
        자바코드n;
        return 값;
      }
     %>

 

📌

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- /jsp1/src/main/webapp/chap3/script1.jsp --%>       
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>스크립트 예제</title>
</head>
<body>
<% //스트립트릿 :  자바 알고리즘 부분
    System.out.println("스트립트 예제");
    String msg = "스트립트 예제";
    for(int i=0;i<=10;i++) {
%>
<%-- 
   표현식 : 화면에 값을 출력. ;(세미콜론), //(한줄주석) 사용 불가.
          반드시 값이 있어야 한다. : 변수, 지역변수(초기화 필수!),리터널, 수식, 상수, 리턴타입이 void가 아닌 메서드 
      서블릿 : out.println(i+":"+msg); 변경됨
--%>
<input type="text" value='<%=i + ":" + msg /* 여러줄 주석만 가능하다.*/%>'><br>
<%= getMsg() %><br>
  <% } //for 구문 끝 %>
</body>
</html>
<%! //선언문
   String msg = "script1.jsp 페이지의 멤버 변수";
   String getMsg() {
	   return msg;
   } 
%>