JSP包含其他页面的三种方式

本文深入探讨了JSP页面中的include和import指令的使用场景、执行时机以及注意事项,详细解释了两者在页面融合、作用域共享、资源引入等方面的功能差异,并提供了在实际开发中合理运用这些指令的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/cdh1213/article/details/44920559

<%@ include file="header.inc"%>

该指令在编译之前先读入指定的页面中的内容(并不对动态内容求值),融合后的完整页面再被整体的转换为一个servlet。

这意味着主页和被引入的页面共享所有的页面作用域数据。
因此,如果主页面中声明了一个变量,而在某个被引入的页面中也声明了一个同名的变量,那么在翻译阶段将会造成一个错误,因为组合后的页面无法进行编译。

被引用页面改变后,容器可能不会马上产生反应。
JSP规范建议在使用include指令引入JSP页面时,最好使用不同的文件扩展名,因为它们一般都不是完整而合法的页面,如:可以使用这些替代的文件扩展名:.jspf或 .jsf。
执行时机:在翻译阶段(将JSP页面转换成servlet的阶段)

<jsp:include page="header.jsp"/>

该行为并不是要引入指定页面的实际内容,它将引入执行该引入页面后所产生的应答

这意味着你可以指定任何能够产生文本应答的web资源。JSP容器将通过一个内部的函数调用来调用指定的资源。因此,这些被引入的资源可以帮助处理原来的请求,所以这些资源可以访问请求作用域内的所有对象,以及所有的请求参数。

注意,它不能访问任何页面作用域属性,或是在主页面中声明的脚本变量。

执行时机:在请求处理阶段。

<c:import url="header.jsp"/>

<c:import>行为和<jsp:include>相同;
另外它还可以从外部资源引入数据,比如不同的web应用程序;
另外它还可以在被引用页面改变后,容器立刻能产生反应;
所以应该使用<c:import>来代替<jsp:include>的使用。

执行时机:在请求处理阶段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值