본문 바로가기
기초 및 언어/▶ Java&JSP

07. JSP_ActionTag : includeActionTag & include지시어와 차이점

by 류딩이 2025. 9. 10.

 

 

 

JSP에서 다른 JSP 파일을 포함하는 방법은 크게 두 가지가 있습니다.

  1. include 지시어 (<%@ include file="..." %>)
  2. include 액션 태그 (<jsp:include page="..." />)

1. include 지시어

<%@ include file="include.jsp" %>

 

  • 정적(Static) include
  • JSP가 번역(컴파일) 될 때 원본 파일에 소스 코드가 그대로 합쳐짐
  • 즉, 하나의 JSP처럼 동작함
  • request 객체를 따로 전달받는 것이 아니라 그냥 코드가 붙여넣기 되는 효과

2. include 액션 태그

<jsp:include page="include.jsp"/>

 

 

  • 동적(Dynamic) include
  • 실행 시점(Runtime) 에 해당 JSP를 실행하고, 그 결과를 포함
  • 같은 request / response 객체를 공유
  • 필요하면 <jsp:param>을 이용해서 파라미터 전달 가능

 


🌈 includeAtionTag 예제

form.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%>
    
<form method="post" action="result.jsp">
    아이디 : <input type="text" name="id"><br><br>
    패스워드 : <input type="text" name="passwd"><br><br>
    
    <input type="submit" value="로그인"> 
</form>

 

 

✔ 사용자가 아이디, 비밀번호를 입력하고 result.jsp로 전송


include.jsp (포함될 JSP)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

include.jsp<br>

<%
    request.setCharacterEncoding("UTF-8"); // 한글 깨짐 방지
    String id = request.getParameter("id");
    String pw = request.getParameter("passwd");
%>

include 아이디 : <%= id %><br>
include 비밀번호 : <%= pw %><br>

 

✔ include.jsp는 별도 실행되는 파일이지만,
✔ <jsp:include>를 통해 호출되면 같은 request 객체를 공유합니다.


result.jsp (결과 페이지)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%
    request.setCharacterEncoding("UTF-8"); // 한글 깨짐 방지
    String id = request.getParameter("id");
    String pw = request.getParameter("passwd");
%>

아이디 : <%= id %><br>
비밀번호 : <%= pw %><br>

<!-- include 액션 태그 -->
<jsp:include page="include.jsp"/>

 

✔ result.jsp에서 먼저 아이디, 비밀번호를 출력
✔ 이어서 <jsp:include> 실행 → include.jsp 실행 결과가 이어서 출력됨


실행 결과

아이디 : test
비밀번호 : 1234

include.jsp
include 아이디 : test
include 비밀번호 : 1234

 

 

실행 순서 📌

1. form.jsp에서 입력

  • 사용자가 id, passwd를 입력하고 submit → result.jsp로 POST 요청.
  • 이때 값은 request 객체에 담겨서 넘어갑니다.

2. result.jsp 실행

  • request.getParameter("id"), request.getParameter("passwd")로 값을 꺼냄.
  • 화면에 아이디 : test / 비밀번호 : 1234 출력.

3. result.jsp 안에서 <jsp:include> 실행

  • JSP 컨테이너가 include.jsp를 실행하는데, 새로운 request를 만드는 게 아니라 기존 request를 그대로 전달합니다.

4. include.jsp 실행

  • 같은 request이므로 getParameter("id"), getParameter("passwd") 호출 시 똑같이 test, 1234가 나옴.
  • 따라서 include 아이디 : test / include 비밀번호 : 1234 출력.

✅ 핵심 포인트

  • include 지시어 (<%@ include %>)
    → 컴파일 시점에 코드가 합쳐짐 (정적 include).
  • include 액션 태그 (<jsp:include>)
    → 실행 시점에 해당 JSP가 실행되고, 실행 결과가 삽입됨.
    → 따라서 request/response 객체를 공유할 수 있음

 

📌 JSP include 지시어 vs include 액션 태그

 

1. 공통점

  • 다른 JSP 파일을 현재 JSP에 포함할 수 있음
  • 코드 재사용과 공통 영역(헤더, 푸터, 메뉴 등) 작성에 활용

 

2. 차이점

구분  지시어 include (<%@ include file="..." %>) 액션 태그 include (<jsp:include page = "..."%>) 
처리 시점 컴파일(번역) 시점 – 정적 include 실행(Runtime) 시점 – 동적 include
포함 방식 소스 코드가 그대로 합쳐짐 실행된 결과(HTML 등)가 포함됨
request/response 공유 ❌ 공유 안 함 ✅ 공유함 (같은 request 객체 사용)
파라미터 전달 불가능 가능 (<jsp:param> 사용)
파일 형태 미완성 JSP여도 가능
(코드 조각도 OK, 합쳐져서 완성됨)
완성된 JSP여야 함
(단독 실행 가능)
대표적 용도 공통 레이아웃, 메뉴, header/footer 삽입 (정적 내용) 실행 결과에 따라 달라지는 부분 동적 삽입 (예: DB 조회 결과, 로그인 상태 출력)

 

✅ 기억하기

  • 지시어 include = 정적 / 컴파일 시점 / 미완성도 OK
  • 액션 include = 동적 / 실행 시점 / 완성된 JSP 필요

'기초 및 언어 > ▶ Java&JSP' 카테고리의 다른 글

09. JSP_ActionTag : useBean  (0) 2025.09.10
08. JSP_ActionTag : fowardAction  (0) 2025.09.10
04. JSP_여러 값을 request보내기  (1) 2025.09.08
03. JSP_requset & post ,get  (0) 2025.09.08
02. JSP_ import, include  (0) 2025.09.08