1. jsp include指令
<%@include%> 静态包含,将被包含资源的所有内容复制过来,一起编译运行。所以只生产一个class文件。
//用法
...
<body>
<h2>上面的include1</h2>
<%@include file="/include/include1.jsp" %> //通过include指令导入网页上面部分
<h2>中间的include</h2>
我是中间的 //网页中间部分,变动内容
<h2>下面的include2</h2>
<%@include file="/include/include2.jsp" %> //通过include指令导入 网页下面部分
</body>
...
2.include动态标签
<jsp:include>动态包含,将被包含资源的运行结果包含进来。所以会生产三个class文件
//用法
...
<body>
<h2>上面的include1</h2>
<jsp:include page="/actionInclude/include1.jsp"></jsp:include>
<h2>中间的include</h2>
中间的jsp内容(可以作为动态内容部分)
<h2>下面的include2</h2>
<jsp:include page="/actionInclude/include2.jsp"></jsp:include>
</body>
...
Summary:
对于静态包含,<%@include%>,中包含的文件,只是简单的嵌入到主文件中,就是在jsp页面转化成Servlet时才嵌入到主文件中,因为运行的结果是只生成了一个Servlet。
而对于动态包含,<jsp:incude>,如果被包含文件是动态的,那么就会生成三个Servlet,也就是被包含文件也要经过jsp引擎编译执行生成一个Servlet,三个Servlet通过request和reponse进行通信。如果被包含的文件是静态的,那么这种情况和<%@include>就很相似,只生成了一个Servlet,但是他们之间没有进行简单的嵌入,而依然是通过request和reponse进行的通信。