静态包含的格式:
<%@include file = “ 要包含的文件路径 ”%>
动态包含的格式:
传参数:
<jsp:include page=” {要包含文件路径 | <%=表达式%>}” flush = “true | false”>
<jsp:param name =” 参数名” value=”参数内容” />
</jsp:include>
不传参数:
<jsp:include page=”{要包含文件路径 | <%=表达式%>}” flush = “true | false”/>
静态的包含与动态的包含不同,动态包含可以自动的区分被包含的页面是静态的还是动态的。
为体现动态包含能区分页面是静态的还是动态的,做如下测试:
1.创建a.jsp文件并编写代码如下:
<%
int x = 10;
%>
<h1>in.jsp----<%=x%><h1>
2. 创建一个b.jsp文件并编写代码如下(此为动态包含):
<%@page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>Test</title>
</head>
<body>
<%
int x = 100;
%>
<h1>include4.jsp-----<%=x%></h1>
<jsp:include page= "in.jsp"/>
</body>
</html>
3.
创建c.jsp文件并编写代码如下(此为静态包含):
<%@page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
title>Test</title>
</head>
<body>
<%
int x = 100;
%>
<h1>include4.jsp-----<%=x%></h1>
<%@include file= "in.jsp"%>
</body>
</html>
4.启动Tomcat,在浏览器中输入(我的jsp建立在D:\apache-tomcat-6.0.37\Webapps\my):
http://localhost:8080/my/c.jsp
效果如图所示:
意思是: 重复定义了变量(500的HTTP状态码,是属于服务器的错误)。
原因如下:
<%@page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>Test</title>
</head>
<body>
<%
int x = 100;
%>
<h1>include4.jsp-----<%=x%></h1>
<% // 注意
int x = 10;
%>
<h1>in.jsp----<%=x%><h1>
</body>
</html>
从上面的代码来看: 就很明了了,有两个x .
5.在浏览器中输入(我的jsp建立在D:\apache-tomcat-6.0.37\Webapps\my):
http://localhost:8080/my/b.jsp
效果如图所示:
成功的运行了。
其实,动态 、静态包含都是将<%@include file= "in.jsp"%>的代码替换了一下。
那为什么动态的能运行,而静态的却不能运行呢?
原因是: 静态包含是“先包含,后处理”
而动态是“先处理,后包含”
提倡使用动态包含, 在开发中不可避免会使用到重复的变量, 静态包含知道什么意思就可以了 。
* 此上内容为个人学习总结,如有雷同,不胜荣幸。(我只不过是将视频内容转换成为图文)*