Это потому, что он находится в каталоге WEB-INF.
Все, что находится в WEB-INF, недоступно для HTTP-сервера. jsp:include
вызывается через HTTP-запрос к серверу, но целевой файл не может обслуживаться, поэтому вы ничего не получаете.
Если вы действительно хотите использовать этот файл как есть, вы можете использовать это:
<%@ include file="/WEB-INF/includes/header.jsp" %>
, так как это будет оценено во время компиляции, и компилятор сможет получить доступ к этому файлу.
Или вы можете переместить jsp в файл, который доступен для веб-сервера, например /includes/
, который является родственным WEB-INF.
<jsp:include page="/includes/header.jsp"/>
Кроме того, убедитесь, что файл имеет соответствующие разрешения, чтобы сервер мог получить к нему доступ.