JSP中的包含分为静态包含和动态包含。静态包含主要是包含html,txt等等诸如这样的文件,而动态包含主要包含诸如jsp,servlet等等文件。
对于静态包含就相当于文件的替换,下面通过例子说明。可以看到文件源码中被包含的部分已经被直接完全替换。
文件名为test.jsp的文件中包含test1.html和test2.html中的内容。对于被包含的文件名后缀可以任意,可以用没有这种后缀的后缀名。
test1.html文件:
<strong><font color="red">HelloWorld!</font></strong>
test2.info文件:
<strong><font color="red">HelloWorld again!</font></strong>
test.jsp文件:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>我的JSP</title></head>
<body>
<%@ include file="test1.html"%><br>
<%@ include file="test2.info"%>
</body>
</html>
动态包含与静态包含有很大不同,静态包含的语法是:<%@ include file="url">,而动态包含的语法是:<jsp:include page="url">。
对于静态包含来说,如果包含的多个文件有相同的变量,那么运行就会出现错误,因为静态包含是先包含后处理,而对于动态包含就不同,它是先处理
后包含,可以出现多个文件含有相同变量的情况。
例如:
文件名:test.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>我的JSP</title></head>
<body>
<jsp:include page="test1.jsp"/><br>
<jsp:include page="test2.jsp"/>
</body>
</html>
文件名:test1.jsp
<strong><font color="red">HelloWorld!</font></strong>
<%!
int x=1;
%>
<%=x%>
文件名:test2.jsp
<strong><font color="red">HelloWorld again!</font></strong>
<%!
int x=100;
%>
<%=x%>