include指令与jsp:include动作标识的区别
2024-09-07 16:02:27
include指令:
文件包含指令include是jsp的另一条指令标识。通过该指令可以在一个jsp页面中包含另一个jsp页面。不过该指令是静态包含,也就是说被包含文件中所有内容会被原样包含到jsp页面中,即使被包含文件中有jsp代码,在包含时也不会被编译执行。使用include指令,最终生成一个文件,所以在被包含和包含的文件中,不能有相同名称的变量。
图1 include指令包含文件的过程
include指令的语法格式:
<%@ include file = "path"%>
该指令只有一个file属性,用于指定要包含文件的路径。该路径可以是相对路径,也可以是绝对路径。但是不可以通过<%=%>表达式所代表的文件。
例:
<%@ page language= "java" contentType="text/html;charset=UTF-8" %>
<html>
<head>
<meta charset="utf-8">
<title>JSPinclude动作实例</title>
</head>
<body>
<%@ include file = "top.jsp" %>
</body>
</html>
jsp:include动作标识:
jsp的动作标识<jsp:include>用于向当前页面中包含其他的文件。被包含的文件可以是动态文件,也可以是静态文件。
图2 <jsp:include>动作标识包含文件的过程
<jsp:include>动作标识的语法格式:
<jsp:include page="url" flush="false|true">
<%@ page language= "java" contentType="text/html;charset=UTF-8" %>
<html>
<head>
<meta charset="utf-8">
<title>JSPinclude动作实例</title>
</head>
<body>
<jsp:include page="top.jsp" flush="true"></jsp:include>
</body>
</html>
两者的区别:
- include指令通过file属性来指定被包含的文件,并且file属性不支持任何表达式;<jsp:include>动作标识通过page属性来指定被包含的文件,而且page属性支持jsp表达式。
- 使用include指令时,被包含的文件内容会原封不动的插入到包含页面中,然后JSP编译器再对这个合成的文件最终编译成一个java文件,所以在一个JSP页面中使用include指令来包含另一个JSP页面,最终编译后的文件只有一个(静态包含);使用<jsp:include>动作包含文件时,当该动作标识执行后,JSP程序会将请求转发到(注意是转发,不是重定向)被包含页面,并将执行结果输出到浏览器中,然后返回页面继续执行后面的代码。因为服务器执行的是多个文件,所以jsp编译器会分别对这些文件进行编译。
- 在应用include指令包含文件时,由于被包含的文件最终会生成一个文件,所以在被包含文件,包含文件中不能有重名的变量或方法;而在应用<jsp:include>动作标识包含文件时,由于每个文件时单独编译的,所以在被包含文件和包含文件中重名的变量或方法时不想冲突的。
最新文章
- Java 事件机制
- oracle xmltype导入并解析Excel数据 (四)特别说明
- lua的corroutine学习
- 多重背包 (poj 1014)
- .NET 知识
- Jquery花园
- global, $GLOBALS[]
- 【Django】基于Django架构网站代码的目录结构
- 惠普 Compaq 6520s 无线开关打不开
- RMSE、RMS、标准差
- C++ 中 const和define的区别
- SqlServer 数据库附加问题:不是主数据库文件
- Firefox书签同步工具Xmarks
- 网页设计(CSS&;JS)
- 机器学习笔记(三)Logistic回归模型
- 2018.9.12 B树总结
- hbase-hive整合及sqoop的安装配置使用
- python使用多进程
- HDU5037(SummerTrainingDay01-C)
- pyqt5 添加属性-类方法用属性形式访问