JSP页面包含其他页面的三种方式及区别
2024-09-01 15:04:33
一、 <%@ 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>的使用。
- 执行时机:在请求处理阶段。
最新文章
- 从E.E到S.E
- 设计模式_11_原型模式(prototype)深拷贝、浅拷贝
- File和URL的getPath()方法区别
- bzoj 2127: happiness
- LeetCode---- 二叉树中,找出和为某值的所有路径
- oracle的nvl函数的使用解析
- 设计模式之桥接模式(Bridge)--结构模型
- Android四种Activity的加载模式(转)
- 在 go/golang语言中使用 google Protocol Buffer
- 给定一个无序数组arr,求出需要排序的最短子数组长度。例如: arr = [1,5,3,4,2,6,7] 返回4,因为只有[5,3,4,2]需要排序。
- 李航《统计学习方法》CH01
- Java核心-多线程-并发控制器-CountDownLatch倒数闩
- 3D游戏的角色移动
- keras + tensorflow安装
- 23种设计模式之原型模式(Prototype)
- linux 修改hosts文件
- IntelliJ IDEA Ultimate 下载与安装
- GBDT:梯度提升决策树
- 3月23 格式布局及relative
- python学习day6 for循环 字符串的内置方法
热门文章
- Android 通过应用设置系统日期和时间的方法
- React曾经忽略的知识点(下)
- HDU 6625 (01字典树)
- Android NDK下载
- 事务的ACID属性
- Python 使用 PyQt5 开发的关机小工具
- 修改web项目发布路径
- pip安装报错:Fatal error in launcher: Unable to create process using &#39;";&#39;
- ps 和 pstree的用法
- 【IOS打包】ARCHIVE FAILED:Command CodeSign failed with a nonzero exit code