jsp两种包含方式

jsp中存在两种文件的包含指令
1、<%@include file="xxx.jsp" %>
2、<jsp:include page="xxx.jsp"></jsp:include>
第一种是先包含再处理 它是一种静态的包含指令,不管其文件内容如何
只是将其所包含的页面内容包含进来。
第二种是先处理再包含 它是动态的包含指令,能自动区分所包含的是静态页面还是动态页面
执行时,如果被包含文件(资源文件)为静态文件,则与<%@include file="xxx.jsp" %>执行效果一样,如果资源文件为动态文件,则先让资源文件处理自身所包含内容,
再把处理结果包含进来。

举例说明:
被包含的文件 include.jsp
里面有
<% 
   String str = "被包含页面"; 
%>
使用第一种包含<%@include file="include.jsp" %>
然后本页面再写一次
<% 
   String str = "包含页面"; 
%>
然后输出
<input type="text" value="<%=str %>">
执行结果为:编译错误,str已定义

使用第二种包含<jsp:include page="include.jsp"></jsp:include>
和上面一样页面输出结果为:"包含页面"

如果去掉本页面String str = "包含页面"; 则报错
在本页面如果想输出被包含页面定义的内容,是不行的。
原文地址:https://www.cnblogs.com/riskyer/p/3370813.html