JSP页面两种include用法的区别:
关键区别在于@include是编译指令,是JSP执行器在将JSP翻译为Java代码的时候进行处理的指令,因此会自动找到目标文件并将它插入到当前jsp文件中,就好像你通过文本编辑器的copy/paste操作一样;
相反jsp:include是运行时代码(本质为Tag标签),要在主jsp页面被请求的时候才会去定位被包含的jsp文件1)
【假设a.jsp包含b.jsp】
1)JSP页面发生修改时
@include:如果b被修改了,a不会发现b的改变,除非a也被修改
jsp:include:执行时马上察觉到变化
2)允许包含的内容
@include:b必须是基本的文本或jsp片段,不能是一个Java servlet
jsp:include:允许包括servlet
3)变量作用域区别
@include:a、b是整合在一起的文件,所以变量是共享的(换句话说变量名会产生冲突问题),它们必须保持一致!
jsp:include:可以对不同的变量使用相同名字,对同一个标签库使用不同前缀,a、b是相互独立的文件。
参考网址:http://www.hongyanliren.com/2014m01/3187.html