JSP中编译指令include和动作指令jsp:include的区别

编译指令include只能包含静态页面,而且是在编译过程前包含,如在a.jsp中include b.jsp,其实就是把b.jsp的源文件复制到a.jsp对应的位置,然后再编译生成一个Servlet,注意,这里只生成一个Servlet。
而jsp:include是在编译后,运行时包含,在上面的例子中,编译时会生成两个servlet,运行时,a.jsp生成的servlet再包含b.jsp生成的servlet,所以jsp:include可以包含动态页面,传递参数。

举个最简单的例子,a.jsp中包含b.jsp,在b.jsp中声明一个变量,如果是用编译指令include,在a.jsp中,include b.jsp代码后面,就可以直接引用这个变量,而如果用jsp:include,MyEclipse会直接报错,提示变量未声明。

© 2012, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记