자바(Java)/JAVA 2EE

인크루드 액션태그와 인크루드 디렉티브의 차이점

본클라쓰 2009. 6. 15. 17:46

인크루드 액션태그와 인크루드 디렉티브의 차이점

 

인크루드 액션태그와 인크루드 디렉티브는 페이지 안에 다른 페이지를 삽입할 때 사용하는 방법입니다. 하지만 액션 태그와 디렉티브는 페이지를 삽입하는 방법에서 차이가 납니다. 인크루드 액션태그를 사용한 경우에는 포함하는 페이지의 처리 결과(로직이 수행된 결과)가 페이지에 포함되며 인크루드 디렉티브는 페이지의 코드 자체가 포함됩니다.

 

  


A 페이지   ※ 표현의 단순함을 위해 <body> 태그 안에 코드만 나타내겠습니다.

<body>

 <form method="post" action="c.jsp"><!-- 폼을 하나 작성합니다. 폼의 내용은 C페이지로 전송됩니다. -->

  a : <input type="text" name="a"><br>  <!-- text 타입의 자료를 하나 받습니다. -->

  <!-- B 페이지의 내용을 포함합니다. 아래와 같이 표현하면 B페이지의 처리 결과도 포함함--> 

  <jsp:include page="b.jsp" flush="false"></jsp:include><br />  
  <input type="submit" value="전송">
 </form>


</body>

A페이지는 폼태그를 사용하여 text문장을 받아 C페이지로 전송합니다. B페이지에서는 폼태그를 사용하지 않고 input 태그를 사용하여 text문장만 받는 페이지를 작성합니다.  

  

 

B 페이지

<body>
 b : <input type="text" name="b">
</body>

이때, A페이지에 B페이지를 포함시키는 방법에 차이를 줘서 액션태그와 디렉티브의 차이점을 알아냅니다. 즉, 각각의 방법으로 B페이지를 포함시킨 후 C페이지로 전송하여 결과를 확인해 봅니다.

 

  

C 페이지  : 폼으로 받은 인자를 출력하는 페이지 입니다.

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

<% request.setCharacterEncoding("euc-kr"); %>

<%
 String a = request.getParameter("a");
 String b = request.getParameter("b");
%>

 

<body>
 a : <%=a %><br>
 b : <%=b %>
</body>
</html>

  

 


* 결론

 

액션태그와 디렉티브 모두 A 와 B 페이지의 입력폼이 합쳐져서 C페이지로 데이터를 전송한 후 C페이지에서 전송된 값이 출력됩니다. 즉, 액션태그와 디렉티브는 페이지를 포함하는 방법이 다르지만 같은 결과를 가져오는 것을 보면 액션태그가 더욱 활용성이 좋다는 것을 알 수 있습니다.

 

액션태그의 경우 처리결과를 페이지에 포함시키기 때문에 변화하지 않는 페이지도 불러올 수 있고 변화하는 페이지도 불러올 수 있는 장점이 있습니다. 하지만 액션태그는 본래 목적이 내용이 변화는 페이지를 불러올 때 사용하기 위한 태그이므로 목적에 맞게 사용하는 것이 옳습니다.