<%@include file="a.jsp"%>是在编译时加入,所谓静态,就是在编译的时候将jsp的代码加入进来再编译,之后运行.
<jsp:include page="a.jsp"/>是在运行时加入,所谓动态,就是单独编译,在运行时候加入进来,之后显示,这种include,可以传递参数.
区别:
1.使用include指令时,这种包含是发生在页面转换的时候,例如JSP容器将页面转换成Servlet的时候;使用include动作时,这种包含则是发生在请求的时候.因此,可以利用include动作传递参数,而不是利用include指令.
2.使用include指令时,被包含的资源的文件扩展名并不重要.使用include动作时,文件扩展名则必须为jsp,以便它能够作为一个jsp页面进行处理.例如在include动作中用jspf作为扩展名时,将会使得这个JSP segment被当做静态文件进行处理.