一个jsp页面引入另一个jsp页面的三种方式及静态引入和动态引入的区别详解
1.第一种:jstl import
<c:import url="inlayingjsp."></c:import>
2. 第二种:jsp include指令
include指令告诉容器:复制被包含文件汇总的所有内容,再把它粘贴到这个文件中。
<%@ include file="inlayingjsp.jsp" %>
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文件
所以说对于<%@include要慎用!
(2)使用jstl标签时,一定要在jsp文件头加入以下代码:<%@taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core"%>