В jsp есть два вида include.
Первый – <jsp:include page=”uri”/>
Второй – <%@include file=”uri”%>
В книгах и в документации много разного понаписано по этому поводу, чаще всего пишут, что тегом подключается статическая страница, а директивой – страница с jsp. Но это фигня.
Вот самое лучшее объяснение, которое я нашел:
Перед выполнением, jsp страницы компилируются контейнером. После компиляции директивы вида:
<@include file="reuse.html">
при дезассемблировании, получим:
out.write("<html>\r\n"); out.write(" <head>\r\n"); out.write(" <title>reusable</title>\r\n"); out.write(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n"); out.write(" </head>\r\n"); out.write(" <body>\r\n"); out.write(" <img src=\"candle.gif\" height=\"100\" width=\"50\"/> <br />\r\n"); out.write(" <p><b>As the candle burns,so do I</b></p>\r\n"); out.write(" </body>\r\n"); out.write("</html>\r\n");