El elemento taglib
en web.xml tiene un propósito diferente al de la directiva taglib
que tiene arriba.
Como dijo David, se requiere la directiva taglib
en cada página.
Si tiene muchas páginas que usan taglibs comunes, puede atajar esto colocando las directivas taglib en un archivo de inclusión e incluyendo este archivo en cada página. Pero no importa cómo lo haga, la directiva taglib tiene que estar en la página de alguna manera.
esa etiqueta que es necesario incluir en cada página tiene el siguiente aspecto:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Si usted tiene un taglib personalizado en una ubicación personalizada, también puede especificar una ubicación relativa a la raíz webapp:
<%@ taglib prefix="ex" uri="/taglib.tld" %>
Further reading on the taglib directive
el taglib
Directiva de la etiqueta de mapas web.xml URIs a la ubicación física de su taglib. Es opcional ya que JSP 2.0, como contenedores compatibles se verá en un conjunto de ubicaciones estándar para tratar de auto descubrir el taglib:/WEB-INF y sus subdirectorios,/META-INF y también para archivos JAR.
Parece que este, en web.xml:
<taglib>
<taglib-uri>
http://www.example.com/taglib
</taglib-uri>
<taglib-location>
/taglib.tld
</taglib-location>
</taglib>
Y el taglib se hace referencia en la página JSP como esto (la directiva taglib en cada página es inevitable!):
<%@ taglib prefix="ex" uri="http://www.example.com/taglib" %>
Esto es equivalente al segundo ejemplo que di para la directiva taglib anterior. La mayor diferencia radica en cómo señala la ubicación de taglib.
This page contiene un poco más de información.
Lástima, porque hay una solución para esto: preludios. Usando el elemento jsp-property-group de la sección jsp-config y su hijo include-prelude, puede designar un fragmento para ser incluido en cualquier JSP de acuerdo con su propia expresión regular. Puedes poner todas las directivas taglib que quieras allí. – nitind
Esta pregunta definitivamente no debe cerrarse como fuera de tema. –