JSP include指令(静态包含和动态包含)

文章目录

  • 前言
  • 一、include指令是什么?
  • 二、静态包含和动态包含
    • 2.1 语法格式
    • 2.2 过程
      • 2.2.1静态包含过程
      • 2.2.1动态包含过程
  • 三、两者的主要区别


前言

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。


一、include指令是什么?

JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。

根据指令的不同分为两种:

  • 1 静态包含
  • 2 动态包含

二、静态包含和动态包含

2.1 语法格式

1.静态包含

<%@ include file="文件相对 url 地址" %> 

2.动态包含

1 
2 

2.2 过程

2.2.1静态包含过程

JSP include指令(静态包含和动态包含)_第1张图片
分为以下三步:

  1. 将被包含的 jsp文件1 放入 jsp文件2 中
  2. 将文件2 放入服务器解析
  3. 生成一个.java 文件

如下图所示:
文件1 为content.jsp
JSP include指令(静态包含和动态包含)_第2张图片

文件2 为static.jsp
JSP include指令(静态包含和动态包含)_第3张图片
可见文件2中有文件1 ,文件1是被包含的文件。

通过apache-tomcat-9.0.22\work\Catalina\localhost\Jsp_02\org\apache\jsp路径可以找到static文件,只有一个.java文件
JSP include指令(静态包含和动态包含)_第4张图片
查看static_jsp.java源代码。下图可见 确实将 文件1的内容复制到文件2
JSP include指令(静态包含和动态包含)_第5张图片

2.2.1动态包含过程

JSP include指令(静态包含和动态包含)_第6张图片
分为以下五步:

  1. 将被包含的 jsp文件1 直接放入服务器解析
  2. 生成文件1.java文件
  3. 将文件1的结果放入文件2中
  4. 再将文件2 放入服务器解析
  5. 生成一个文件2.java 文件

如下图所示:
文件1 还是content
文件2:
JSP include指令(静态包含和动态包含)_第7张图片
根据时间,可以看出content.java先生成。
JSP include指令(静态包含和动态包含)_第8张图片
查看dynamic_jsp.java源代码。通过下图可以看到,是直接用了include()方法

	org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, url , out, false);

将content.jsp文件执行的返回结果包含进来。
且将request和response传递给了content.jsp,由此可见动态包含的一个关键特点:可以用来传递参数。
JSP include指令(静态包含和动态包含)_第9张图片

三、两者的主要区别

过程是最主要的区别,除了以上之外,还有一下的区别(主要是2 3 传递参数和url地址的区别)。

1 	是动态包含
	而<%@ include%>是静态包含。		
2	动态包含可以给被包含的页面传递参数。	
	静态包含不能给被包含的页面传递参数。
3	动态包含的地址可以是变量。
	静态包含的地址是常量。
4	它总是会检查所含文件中的变化。
	而<%@include file=“file”%>不会检查所含文件的变化,适用于包含静态页面。

你可能感兴趣的:(java,jsp,html)