分别应用include指令和include动作标识在一个JSP页面中包含一个文件 JSP中include指令和include动作的区别

作者&投稿:衅阳 (若有异议请与网页底部的电邮联系)
1.include指令
include可以在JSP页面转换成Servlet之前,将JSP代码插入其中。它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改。
include指令的语法格式如下

2.include动作
jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。尽管被包含的页面的输出中不能含有JSP,但这些页面可以是其他资源所产生的结果。服务器按照正常的方式对指向被包含资源的URL进行解释,因而这个URL可以是Servlet或JSP页面。服务器以通常的方式运行被包含的页面,将产生的输出放到主页面中,这种方式与RequestDispatcher类的include方法一致。它的优点是在被包含的页面发生更改时,无须对主页面做出修改。它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。
jsp:include动作的完整语法如下

其中jsp:include之间不能有空格,page属性指定被包含的页面,这个属性是必需的,是指向某种资源的相对URL。如果这个相对URL不是以/开头,则将其解释为相对于主页面的路径;如果是以/开头,是这个URL被解释为相对于当前WEB应用的根目录,而不是服务器的根目录,这是因为该URL是由服务器来解释的,不是由用户的浏览器来解释的。像下面这行代码,是由用户的浏览器进行解释的,因此会按照相对于服务器的根目录进行解释。

分别应用include指令和include动作标识在一个jsp页面中包含一个文件。
hello.jsp
复制代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'hello.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<hr>
这是被包含的文件2,应用include动作。 <br>
<hr>
</body>
<ml>
复制代码
MyJsp.jsp:
复制代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<body>
<hr>
这是被包含的文件1,应用include指令。 <br>
<hr>
</body>
<ml>
复制代码
index.jsp:
复制代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
使用include指令 <br>
<%@ include file="MyJsp.jsp" %>
使用include动作指令<br>
<jsp:include page="hello.jsp" flush="true|false"/>
</body>
<ml>

一个JSP文件中使用include指令来包含一个文本文件~

在jsp中include指令有2种方式来引入一个文件
1、说明标签
2、动作标签
3、元素允许你包含动态文件和静态,而include说明标签仅仅是把一个文件内容当成静态追加到主文件中去。
4、如果文件仅是静态文件,可以直接利用包含进去,如果是txt文件,最好把文件格式改成jsp文件然后包含进去就可以。

两者的作用都是处理所需要的文件,但处理方式和处理时间不同。
include指令标记是在编译阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖于当前的jsp页面,优点是执行速度快。
include动作标记在jsp页面运行时才被处理的文件,被处理的文件在逻辑和语法上独立与当前的JSP页面,其优点是可以使用param子标记更灵活的处理所需要的文件,缺点是执行要慢一点

jspinclude 和 include的区别
答:有以下主要区别和一些细微差别:(一)指令include的写法如下:1 < include file="xxxxx"> 它就是一种简单的包含以实现代码重用,JSP编译时就会包含进来,不会产生请求。其他特点:1)其URL不支持带参数,比如< include file="xxxxx?var=123">就是错误的。2)写include指令的页面和被包含的页面中,...

#include 有什么用
答:include <filename> 预处理器首先会在系统所定义的其他目录中寻找,而不是在当前目录中寻找。在unix系统中,比如stdio.h和stdlib.h这样的标准头文件一般位于/usr/include目录。一般而言,标准头文件的存储位置是因系统而定的。include指令可以包含的内容并没有限制。特别需要注意的是,#include指令可以包含...

“include”是C语言关键字吗
答:“include”不是C语言关键字,是预处理命令。include是一个计算机专业术语,表示包含C/C++标准输入输出头文件的预处理命令,用于将指定头文件嵌入源文件中。不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c、.hpp、.cpp、.hxx、.cxx等,甚至.txt、.abc等等都可以。

#include 是什么意思?
答:通俗的说:在C系统的编程语言中,#include是为了声明在这个地方插入别的文件中的代码。include是一个计算机专业术语,一指C/C++中包含头文件命令,用于将指定头文件嵌入源文件中。#include一般用在C、C++等语系的编译环境(就是用在编程软件的编程代码里)中,直白的说,它就是告诉你,在这个地方,你要...

JSP中动态INCLUDE与静态INCLUDE的区别
答:动态INCLUDE在使用的时候,会先解析所要包含的页面(你例子中的included.jsp),解析后在和主页面放到一起显示;静态INCLUDE在使用的时候,不会解析所要包含的页面(你例子中的included.htm),也就是说,不管你的included.htm中有什么,我的任务就是把你包含并显示,其他的一概不管 jsp:include是先编译...

#include“头文件“的相对路径是相对谁的路径???
答:...\SRC\这样写表示,当前目录下 ..\SRC\\路径,当然这种写法已经和第一种重叠了。这种相对路径的写法,vc会自动帮我们转化为绝对路径。在添加附加路径时,其相对路径的写法和系统路径是一致的。在vc中使用#include命令,有三种形式:1#include<file.h> vc执行这条指令时,它会在系统目录中去查找...

c语言开头为什么用include 而不是别的词?
答:C语言中#开头的是预处理指令,不是C语句的一部分#开头的语句,在预处理阶段,由预处理器处理,例如:#include <stdio.h>预处理器会将stdio.h文件的内容加入到当前文件的头部,而#define CONST 10则会将文件中的CONST,用10代替(是直接代替)预处理完毕后,才对文件进行编译。当然你是可以用别的次...

include的命令
答:被包含文件中的文本将替换源代码文件中的#include 指令, 就像你把被包含文件中的全部内容键入到源文件中的这个位置一样。 preprocess预处理:为方便编译器处理而设置的一种机制,包括一些常用预处理指令和语句,我们统称为预处理系统。如#include #define #if...#else...#endif #pragma等这些指令的...

# include什么意思?
答:include<math.h> 意思是包含math库,实际上就是一个头文件,里面是一些已经写好的代码,形式上是一个个的函数,包含进来以后就可以使用里面的各种数学函数,如幂函数、三角函数、指数函数等。

#include <iostream>和#include<stdio.h>有什么区别
答:二、命名空间不同 1、include<stdio.h> :引用include<stdio.h>的类需要手动添加命名空间。2、include<iostream.h>:引用include<iostream.h>的类默认自动添加命名空间。三、移植不同 1、include<stdio.h> :include<stdio.h> 不可用于移植和混合嵌入。2、include<iostream.h>:include<iostream.h>...