Qual é a diferença entre incluir arquivos com JSP incluem diretiva, JSP inclui ação e usando JSP Tag Files?
Parece que há dois métodos para modelar com JSP. Incluindo arquivos com uma dessas instruções
<%@ include file="foo.html" %>
<jsp:include page="foo.html" />
ou usando arquivos de tag JSP
// Save this as mytag.tag
<%@ tag description="Description" pageEncoding="UTF-8"%>
<html>
<head>
</head>
<body>
<jsp:doBody/>
</body>
</html>
E em outra página JSP, chame-a com
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:mytag>
<h1>Hello World</h1>
</t:mytag>
Então, qual método devo usar? Um agora é considerado obsoleto ou ambos são válidos e abrangem diferentes casos de uso?
Editar
O uso desse arquivo de tag não é o mesmo que usar um include?
// Save this as product.tag
<%@ tag description="Product templage" pageEncoding="UTF-8"%>
<%@ tag import="com.myapp.Product" %>
<%@ attribute name="product" required="true" type="com.myapp.Product"%>
Product name: ${product.name} <br/>
Quantity: ${product.quantity} <br/>
E ligue para outro JSP com
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:product>
<c:forEach items="${cart.products}" var="product">
<t:product product="${product}"/>
</c:forEach>
</t:product>
Isso me parece ser o mesmo que usar um include e passar parâmetros para ele. Então, são Tag Files o mesmo que inclui?