В 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");