ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP | include 액션 태그
    JAVA/JSP 2020. 2. 19. 17:27

    include 액션 태그

    JSP 페이지의 모듈화에 사용되는 액션 태그

    • 다른 페이지의 처리 결과만을 현재 페이지에 포함
    • HTML, JSP, Servlet 페이지 모두 포함 가능
    • 템플릿 페이지 작성시 사용(디자인과 관련)
      ↔ include 디렉티브는 조각 코드 삽입 시 사용(변수, 메소드 선언)
    • 동적으로 변경된 내용을 특정한 위치에 삽입
    • 전송 데이터에 따라 출력 결과가 달라지는 동적 디자인을 하는 경우 사용

    include 기본 형식

    <jsp:include page="포함 페이지" flush="boolean"/>

    page 속성

    • 속성 값은 현재 페이지에 결과가 포함될 페이지명
    • 생략 불가능한 필수 속성
    • 페이지명은 상대 경로 또는 절대 경로 사용
    • 표현식 사용 가능
      ↔ include 디렉티브는 표현식 사용 불가

    flush 속성

    • JSP 페이지는 출력할 내용을 버퍼(8kb)에 저장하는데
      포함될 페이지로 제어가 이동할 때 버퍼의 처리 방식을 속성 값으로 지정
    • true: 현재 페이지가 버퍼에 저장한 내용을 웹 브라우저에 출력하고 버퍼를 비움
    • false: 결과를 합쳐서 출력하기 전까지 버퍼에 출력 내용을 저장

    include 액션 태그 처리 과정

    1. 웹 브라우저가 a.jsp 페이지를 서버에 요청
    2. 서버가 a.jsp 처리, 페이지 내부의 출력 내용을 버퍼에 저장하는 등의 작업을 함
    3. <jsp:include page="b.jsp" flush="false"/>
      액션 태그를 만나면 작업을 멈추고 b.jsp로 프로그램 제어를 이동시킴
    4. b.jsp 페이지 처리, 해당 페이지 내의 출력 내용을 출력 버퍼에 저장
    5. b.jsp 페이지의 처리가 끝나면 다시 a.jsp 페이지로 프로그램 제어가 이동
      이동 위치는 include 액션 태그의 다음 행
    6. a.jsp 페이지의 나머지 부분을 처리, 출력 내용을 버퍼에 저장
    7. 출력 버퍼의 내용을 웹 브라우저로 응답

    ※ include 액션 태그는 request 내장 객체를 공유하기 때문에
    a.jsp와 b.jsp는 동일한 request 객체를 사용하게 됨


    param 액션 태그

    include 액션 태그의 바디에 사용하는 액션 태그
    포함되는 JSP 페이지에 값을 전달할 때 사용


    기본 형식

    1
    2
    3
    4
    <jsp:include ~>
        <jsp:param name="파라미터 이름" value="파라미터 값"/>
        <jsp:param name="파라미터 이름" value="<%=val%>"/>
    </jsp:include>http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
    • name 속성: 포함되는 JSP 페이지에 전달할 파라미터 이름 표시
    • value 속성: 전달할 파라미터 값 지정, value 값으로 표현식 사용 가능
    • 데이터를 전달 받을 때는 request.getParameter("PARAM_NAME") 를 사용

    예제

    form.jsp에 입력한 데이터를 include.jsp에서 전달 받아서
    sub.jsp에서 처리한 후 결과를 include.jsp에 포함해서 출력하는 예제


    form.jsp

    입력을 받는 페이지

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action="include.jsp" method="post">
        이름: <input type="text" name="name" /> 
        <input type="submit" value="전송" />
    </form>
     
    </body>
    </html>
    http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

    include.jsp

    include 액션 태그를 사용한 페이지

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
        
    <!-- 한글이 깨지지 않도록 처리 -->
    <%
        request.setCharacterEncoding("utf-8");
    %>
        
    </head>
    <body>
        <h2>포함을 하는 페이지</h2>
     
        <!-- include 액션 태그, sub.jsp에서 실행한 결과 삽입 -->
        <jsp:include page="sub.jsp" flush="false" /><br/>
     
    </body>
    </html>
    http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

    sub.jsp

    include 액션 태그에 의해 include.jsp에 포함될 페이지

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <!-- 전송된 데이터를 변수에 저장 -->
        <%
            String name = request.getParameter("name");
        %>
     
        <!-- 출력 -->
        <b><%=name%>님 잘 오셨습니다.</b>
    </body>
    </html>
    http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

    결과

    ※ URL에 include.jsp의 주소가 출력됨


    다른 페이지에서의 실행 결과를 현재 페이지에 포함하는 include 액션 태그에 대해 알아보았습니다.

    include 액션 태그의 경우 사용자로부터 입력 받은 값을 다른 페이지에서 처리한 후

    그 결과만 현재 페이지에 출력하기 때문에 데이터에 따라 결과가 달라지는 동적 디자인에 사용된다고 합니다.

    또한 include 액션 태그의 URL만 표시되면서 다른 페이지를 처리하기 때문에
    하나의 출력 페이지에서 여러가지 작업을 처리할 수 있겠습니다.

    'JAVA > JSP' 카테고리의 다른 글

    JSP | Template Page  (0) 2020.02.20
    JSP | forward 액션 태그  (1) 2020.02.19
    JSP | Action Tag 액션 태그 개요  (0) 2020.02.19
    JSP | Out 내장 객체  (0) 2020.02.19
    JSP | Response 내장 객체  (0) 2020.02.19

    댓글

Designed by Tistory.