인크루드 액션태그와 인크루드 디렉티브의 차이점
인크루드 액션태그와 인크루드 디렉티브는 페이지 안에 다른 페이지를 삽입할 때 사용하는 방법입니다. 하지만 액션 태그와 디렉티브는 페이지를 삽입하는 방법에서 차이가 납니다. 인크루드 액션태그를 사용한 경우에는 포함하는 페이지의 처리 결과(로직이 수행된 결과)가 페이지에 포함되며 인크루드 디렉티브는 페이지의 코드 자체가 포함됩니다.
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 페이지 : 폼으로 받은 인자를 출력하는 페이지 입니다.
<% 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페이지에서 전송된 값이 출력됩니다. 즉, 액션태그와 디렉티브는 페이지를 포함하는 방법이 다르지만 같은 결과를 가져오는 것을 보면 액션태그가 더욱 활용성이 좋다는 것을 알 수 있습니다.
액션태그의 경우 처리결과를 페이지에 포함시키기 때문에 변화하지 않는 페이지도 불러올 수 있고 변화하는 페이지도 불러올 수 있는 장점이 있습니다. 하지만 액션태그는 본래 목적이 내용이 변화는 페이지를 불러올 때 사용하기 위한 태그이므로 목적에 맞게 사용하는 것이 옳습니다.
'자바(Java) > JAVA 2EE' 카테고리의 다른 글
표현언어(Expression Language) (0) | 2009.08.07 |
---|---|
페이지 파라미터 확인 후 null 일때 기본값 지정하기 (0) | 2009.08.05 |
로그인 페이지 (0) | 2009.01.15 |
JSP 페이지 제어방법 (0) | 2009.01.11 |
JDBC를 사용한 데이터베이스 연결 (0) | 2009.01.08 |