1.第一种:jstl import
<c:import url="inlayingJsp.jsp"></c:import>
使用jstl标签时,一定要在jsp文件头加入以下代码:<%@taglib prefix="c" uri="http://Java.sun.com/jsp/jstl/core"%>
2. 第二种:jsp include指令(静态包含)
<%@ include file="inlayingJsp.jsp" %>
include指令告诉容器:复制被包含文件汇总的所有内容,再把它粘贴到这个文件中。
3. 第三种:jsp include动作(动态包含)
<jsp:include page="inlayingJsp.jsp" flush="true"/>
注意:(1)include指令在转换时插入“Header.jsp”的源代码,而<jsp:include>动作在运行时插入“Header.jsp"的响应。
<%@include为静态包含,<%@include不论包含的是txt文本还是jsp文件,被包含的页面都不会从新编译。
<%@include为静态包含,包含了几个JSP转译成servlet时就会有 几 个 class文件,如果在jsp1定义了变量i同时在jsp2也定义了变量i那么你编译都会通不过的,jsp容器会告诉你i重复定义了.
<jsp:include 为动态包含,<jsp:include 如包含jsp文件,这每次加载主页面的时候,被包含的页面都要重新编译。
就是说不管你包含了几个jsp页面转译成servlet时中有一个class文件
静态导入和动态导入有如下三点区别:
1、静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体Servlet;而动态导入则在Servlet中使用include方法来引入被导入页面的内容。
2、静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。
3、动态导入还可以增加额外的参数。