<%@ include file=""%>与<jsp:include page=""/>区别

本文详细解释了JSP中静态include(<%@includefile=”relativeURI”%>)与动态include(<jsp:includepage=”relativeURI”flush=”true”/>)的执行时间、引入内容的不同及注意事项。

两者是什么:

<%@ include file=”relativeURI”%> 可以叫作静态include(静态包含),是jsp指令中的一种,(JSP指令控制JSP编译器如何去生成servlet(servlet是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类别,一般情况下,人们将Servlet理解为后者。-维基百科)

<jsp:include page=”relativeURI” flush=”true” />叫作动态include(动态包含),是jsp动作的一种,(JSP动作是一系列可以调用内建于网络服务器中的功能的XML标签)

两者的区别:

执行时间上:
<%@ include file=”relativeURI”%> 是在翻译阶段执行

<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行.

引入内容的不同:
<%@ include file=”relativeURI”%>引入静态文本,在JSP页面被转化成servlet之前和它融和到一 起,.先包含,后编译,不会检查所含文件的变化,适用于包含静态页面,可以理解为纯粹是把代码写在外面的一种共享方法,所有的变量都是可以和include它的主文件共享, 两者高度紧密结合,不能有变量同名的冲突.而页面设置也可以借用主文件的.

<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的应答文本. 被包含的文件先编译,后包含进来,然后显示

注意:

<%@ include file=""%>指令在编写代码的时候一般放在最顶部,主要附加的是被重用的代码,这里所说的附加是指把源代码原封不动的附加过来,例如在jsp程序中使用这个指令的时候file里面的值(即要导入的文件)不能带多余的标签或是与当前jsp文件重复的东西。例如里面不要包含<html><body>这样的标签,因为是把源代码原封不动的附加过来,所以会与当前的jsp中的这样的标签重复导致出错。 

而应用<jsp:include page="" flush="" />标签导入一个重用文件的时候,这个文件是经过编译的,通俗点说就是附加这个要导入文件经过编译后的效果,所以可以含有与当前jsp程序中重复的内容,因为在附加过来之前就会被解析掉。

另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释。检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

转自:http://www.cnblogs.com/lazycoding/archive/2011/04/04/two_include.html

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <div style="background-color: #5b9bd5; color: white; padding: 10px;"> <span style="font-size: 20px; font-weight: bold;">我的网站</span> <a href="#" style="color: white; margin-left: 10px;">首页</a> <a href="#" style="color: white; margin-left: 10px;">产品</a> <a href="#" style="color: white; margin-left: 10px;">服务</a> <a href="#" style="color: white; margin-left: 10px;">关于我们</a> <a href="#" style="color: white; margin-left: 10px;">联系我们</a> </div> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="java.util.Date" %> <div style="background-color: #f5f5f5; padding: 20px;"> <h3>欢迎来到我们的网站</h3> <p>这是一个使用JSP include构建的网页示例。</p> <p>include指令允许我们将公共部分(如页眉、页脚)分离到单独的文件中,然后在多个页面中重用它们。<strong>注意辨析其include动作元素的区别!</strong></p> <p>当前时间: <%= new Date() %></p> </div> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <div style="background-color: #5b9bd5; color: white; padding: 10px; text-align: center;"> <p>© 2025 我的网站 版权所有</p> <p>联系方式: info@mywebsite.com | 电话: 123-456-7890</p> </div> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>JSP页面包含示例</title> </head> <body> <%@ include file="header.jsp" %> <%@ include file="content.jsp" %> <%@ include file="footer.jsp" %> </body> </html>要运行图片
10-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值