JSP中两个include的区别

      我们知道,在JSP中包含一个文件可以有两种做法,分别为:<%@ include file=""%>和<jsp:include page=""/>

既然这两者都是包含,那么到底有什么区别呢?

      其一:<%@ include file=""%>是包含静态文件,而<jsp:include page=""/>是包含动态文件。

      其二:<%@ include file=""%>可以包含任何类型的文件,所以叫file,而<jsp:include page=""/>只是包含jsp文件。所以叫page。

      其三:<%@ include file=""%>是在编译时将目标文件简单的和源文件进行合并编译,而<jsp:include page=""/>则是在运行时调用目标文件,也就是说把目标文件的运行结果包含进来。

 

      最简单的例子,如果在目标文件中定义了一个变量int i=0;而在源文件中也定义了一个int i=1;那么使用<%@ include file=""%>就会报错,提示变量重复定义。这是因为<%@ include file=""%>会把目标文件包含进来一起进行编译,这时就会有两个i的定义,当然通不过编译。而如果使用<jsp:include page=""/>就没事。因为<jsp:include page=""/>是把目标文件和源文件分别进行编译,然后将结果进行包含。

      如果编译后查看tomcat的work目录下的编译文件就会发现<jsp:include page=""/>有两个编译文件,分别是源文件的和目标文件的,说明他俩是分别编译和执行的,是独立的。而<%@ include file=""%>就只有一个编译结果,说明他们是整合之后一起编译的。这就是两者最大的区别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值