jsp:include tag includes the jsp during runtime, whereas the <%@ include> includes the specified jsp during compilation time.
If you modify a jsp that is included in <%@ include> tag then the change will not be reflected since
we are not compiling the jsp with < % @ include> whereas it gets reflected when using jsp:include.
< % @ include > : Used to include static resources during translation time.
JSP include: Used to include dynamic content or static content during runtime
Use the include directive (<%@ include file="relativeURL" %>):
if the file includes static text
if the file is rarely changed (the JSP engine may not recompile the JSP if this type of included file is modified)
if you have a common code snippet that you can reuse across multiple pages (e.g. headers and footers)
should use the jsp:include
for content that changes at runtime
to select which content to render at runtime (because the page and src attributes can take runtime expressions)
for files that change often
For read more information on JSP visit to :http://www.roseindia.net/jsp/jspfundamentals.shtml