java中include的用法(一个JSP文件中使用include指令来包含一个文本文件)

2026-08-18 01:00:01 0

java中include的用法(一个JSP文件中使用include指令来包含一个文本文件)

本篇文章给大家谈谈java中include的用法,以及一个JSP文件中使用include指令来包含一个文本文件对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

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

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

为什么include传中文不行

我们都知道在jsp中include有两种形式,分别是
《%@ include file=” ”%》
《jsp:include page=” ” flush=”true”/》
前者是指令元素、后者是行为元素。具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题。下面一起来看看吧。
通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,我们就可以考虑用include。具体在哪些时候用《%@ include file=” ”%》,哪些时候用《jsp:include page=” ” flush=”true”/》.这种形式。首先要明白的是它们之间的区别。只有了解了它们用法的不同才理解该在何时去用以及如何选择。
《%@ include file=” ”%》,jsp的include指令元素读入指定页面的内容。并把这些内容和原来的页面融合到一起。(这个过程是在翻译阶段:也就是jsp被转化成servlet的阶段进行的。
这里对翻译阶段进行一下说明:我们知道,jsp页面不能原封不动地被传送给浏览器,所有的jsp元素都必须首先由服务器进行处理。这是通过将jsp页面转达化成servlet,然后执行这个servlet来完成的。服务器需要一个jsp容器来处理jsp页面。jsp容器通常以servlet的形式来实现,这个servlet经过配置,可以处理对jsp页面的所有请求。
Jsp容器负责将jsp页面转化成servlet(称为jsp页面实现类?JSP Page implementation class),并编译这个servlet。这两步就构成了翻译阶段.
由此我们就会知道:jsp页面是把include指令元素所指定的页面的实际内容(也就是代码段)加入到引入它的jsp页面中,合成一个文件后被jsp容器将它转化成servlet。可以看到这时会产生一个临时class文件和一个java文件。下面举个例子。
服务器用tomcat,引入页面的jsp文件叫test.jsp。被引入的页面叫date.jsp.这个jsp文件里存放的是一个有关时间的jsp代码,当前的上下文根设为test
//======date.jsp的源文件=====//
《%@ page language=”java” contentType="text/html;charset=gb2312"%》
《%
java.util.Date date=new java.util.Date();
String date_cn ="";
String dateStr = "";
switch(date.getDay())
{
case 0:date_cn ="日"; break;
case 1:date_cn ="一"; break;
case 2:date_cn ="二"; break;
case 3:date_cn ="三"; break;
case 4:date_cn ="四"; break;
case 5:date_cn ="五"; break;
case 6:date_cn ="六"; break;
}
dateStr = (1900+date.getYear()) + "年" + (date.getMonth()+1) + "月" + date.getDate() + "日(星期" + date_cn + ")";
%》
document.write("《%=dateStr%》");
//======以下是test.jsp的源文件=============//
《%@ page language=”java” contentType=”text/html;charset=gb2312”%》
《html》
《head》
《title》include的两种用法《/title》
《jsp:include page=”date.jsp” flush=”true”/》
《%--@ include file=”date.jsp” %--》
//我们在这里用include的两种不同形式来引入date.jsp这个文件.
《head》
《body》
《table》《tr》《td》
有关jsp中include的两种用法.敬请关注。
《/td》《/tr》《/table》
《/body》
《/html》
在test.jsp 文件中,我们只输出了一行文本“ 有关jsp中include的两种用法.敬请关注。”,现在让我们先用《%@ include file=”date.jsp” %》这种形式引入date.jsp这个文件。你想会出现什么问题了吗?此时出现了错误提示:
HTTP Status 500 ?
org.apache.jasper.JasperException: /date.jsp(0,0) Page directive: can’t have multiple occurrences of contentType
***隐藏网址***
原因就在这里了。是因为在翻译阶段,date.jsp文件的代码被原封不动地加入到了test.jsp页面从而合成一个文件。合成后的文件中就会相同的:
《%@ page language=”java” contentType=”text/html;charset=gb2312”%》
这句代码。解决的办法是把date.jsp文件中的这句删掉。刷新后再请求test.jsp页面请求test.jsp在页面显示如下
2003年12月10日 13:12:40
有关jsp中include的两种用法.敬请关注。
这时我们还不能发现什么。还是去查看tomcat下的临时文件吧。到那里去看看date.jsp文件的内容是否已被加入到了test.jsp文件中。
《注.此处的tomcat装在E盘根目录下》
目录
E:\tomcat\work\Standalone\localhost\test.
在这个目录下会看到
test_jsp.java和test_jsp.class两个文件。
这里的java文件就是jsp容器将jsp转化成了servlet而得到的test_jsp.java这个文件。
相对应的test_jsp.class这个文件就是编译test_jsp.java这个servlet文件产生的类文件了。打开所产生的servlet文件(test_jsp.java)。此时我们会发现,在test.jsp 文件被转化成servlet文件时,在输出的《haed》之间加入了一些不是test.jsp页面里面的代码,新加入的内容就是 date.jsp里面的代码: 新加入了哪些内容或是否真的加入了新的内容请自己测试去看一下就会一目了然了.在这里不再详述.
以上就是我们用《%@ include file=”date.jsp”%》这种形式得到的结果.
下面我们换用《jsp:include page=”dae.jsp” flush=”true”/》也就是将
《%@ include file=”date.jsp”%》换成《jsp:include page=”dae.jsp” flush=”true”/》,然后请求test.jsp.
2003? ê 12??10?? 13:30:13
有关jsp中include的两种用法.敬请关注。
此时会在页面上看见.我们所引入date.jsp输出的日期中中文出现了乱码.什么原因?是因为include行为元素是在请求处理阶段执行的(此处要对请求处理阶段进行说明一下.Jsp容器除了上面提到的负责将jsp页面转化成servlet外,还负责调用jsp页面实现类以处理每个请求并产生应答.这个阶段我们就称为请求处理阶段.请求处理阶段仅执行类文件)。
所以在我们作include行为元素引入页面时,实际只是引用了date.jsp这个文件被转化并被编译后产生的servlet类文件.既如此, date.jsp就是作为一个单独的文件在执行后才被test.jsp文件运行时调用.由于date.jsp文件中没有指定字符编码.所以出现了乱码.解决办法是在date.jsp文件中重新把刚才去掉的
《%@ page language=”java” contentType=”text/html;charset=gb2312”%》
这行语句加入后刷新重新运行.此时页面显示正确,并跟用include指令正常运行时一样.再查看tomcat下的临时文件会发现.此时多出了一个 date_jsp.java文件和一个date_jsp.class文件.这两个文件得来的方式跟test_jsp.java和 test_jsp.class文件得来的方式一样.再查看一下此时test_jsp.java文件的代码会发现.此时只新增加了一句代码:
JspRuntimeLibrary.include(request, response, "date.jsp", out, true);
它并没有把date.jsp文件的代码加入到test.jsp.
只是在运行时引入了date.jsp页面执行后所产生的应答.这意味着我们可以指定任何能够产生应答的Web资源,(例如一个servlet或一个jsp页面),只要这些资源所产生的类型和jsp页面产生的内容类型相同.JSP容器将通过一个内部的函数调用来执行指定的资源.因此,这些被引入的资源可以帮助处理原来的请求,所以这些资源可以访问请求作用域内的所有对象.以及所有原来的请求参数.
由于在主页面被请求时,这些页面还没有被引入到主页面中,所以你可以对page属性使用一个请求时属性值,以便根据运行时的情况来决定要引入哪一个页面.还可以添加一些将被引入的页面读取的请求参数.
《jsp:include page=”《%=pageSelectedAtRuntime%》” flush=”true” 》
《jsp:param name=”fitstParamer” value=”firstValue”》
《jsp:param name=”lastParamer” value=”lastValue”》
《/jsp:include》
如果修改了被引入的jsp页面,那么可以立刻使用该页面的最新版本,这是因为对待被引入的页面的方式与对待由浏览器直接调用的jsp页面的方式完全相同.即容器检测页面的变化,并自动进入翻译阶段,以得到页面的最新版本.
(注意,include行为元素同jsp其它元素一样,没有行为体时要以”/”结束.就像下面这样.
《jsp:include page=”《%=pageSelectedAtRuntime%》” flush=”true” /》)
以下是对include 两种用法的区别
主要有两个方面的不同;
一:执行时间上:
《%@ include file=”relativeURI”%》 是在翻译阶段执行
《jsp:include page=”relativeURI” flush=”true” /》 在请求处理阶段执行.
二:引入内容的不同:
《%@ include file=”relativeURI”%》
引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.
《jsp:include page=”relativeURI” flush=”true” /》引入执行页面或servlet所生成的应答文本.
另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释.更多有关URL是如何解释的请参考相关资料或书籍.

XML Schema 中 import 和 include 的区别

导入、包含和 可变式效果
许多 Java 项目都涉及多个不同的类和程序包,而不只是一个大的 Java 文件,这是因为模块化可以方便代码的重用、读取和维护。随后,必须将必需的导入语句加入到类中,然后才能使用它们。同样,在 XML 模式中,您必须在各种不同命名空间中管理不同的模式,并需要将必需的导入语句加入到模式中,然后才能使用它们。
可以使用 《import/》 和 《include/》 模式结构组装 XML 模式,当然,以下应是该模式中位于其他任何声明之前的第一个语句:
《schema》
《import namespace="foo" schemaLocation="bar.xsd" /》
《include schemaLocation="baz.xsd" /》
...
《/schema》
当导入的模式具有 targetNamespace 时,将使用 《import /》,而当包含的模式未声明 targetNamespace 时,将使用 《include /》。
下面,我们将介绍一个示例,该示例涉及两个模式 A 和 B,且 A 引用 B 中声明的项目。
情况 I
如果两个模式都有 targetNamespace,且模式 A 的 targetNamespace (tnsA) 不同于模式 B 的 targetNamespace (tnsB),则 A 必须导入 B。
《import namespace="tnsB" schemaLocation="B.xsd"》
但 A 导入 B 时和 A 包含 B 时不指定命名空间是一个错误。
情况 II
如果两个模式都包含 targetNamespace,且模式 A 的 targetNamespace (tnsAB) 与模式 B 的 targetNamespace (tnsAB) 相同,则 A 必须包含 B。
《include schemaLocation="B.xsd"》
A 导入 B 是错误的。
情况 III
如果模式 A 和 B 都没有 targetNamespace。这种情况下,A 必须包含 B。
《include schemaLocation="B.xsd" /》

include>和<%@include%>的区别

《jsp:include》和《%@include%》的区别:
JSP中的两种包含页面的方法
第一种:include指令:当JSP转换成Servlet时引入指定文件
《%@ pagecontentType="text/html;charset=GB2312" language="java"errorPage=""%》
《%@ include file="head.jsp"%》
《%@ include file="body.jsp"%》
《%@ include file="tail.jsp"%》
第二种:《jsp:include》动作元素:当JSP页面被请求时引入指定文件
《%@ page contentType="text/html; charset=GB2312"language="java" errorPage=""%》
《jsp:include page="head.jsp"/》
《jsp:include page="body.jsp"/》
《jsp:include page="tail.jsp"/》
第二种方法可以很方便的用《jsp:param》来向所包含页传递参数,方法如下:
《%@ page contentType="text/html; charset=GB2312"language="java" errorPage=""%》
《jsp:include page="head.jsp"/》
《jsp:includepage="body.jsp"》
《jsp:param name="uid"value="username"/》
《jsp:param name="pwd"value="password"/》
《/jsp:include》
《jsp:includepage="tail.jsp"/》

JAVA中INCLUDE的区别

有一个INCLUDE指令(《%@include ...%》)是静态包含,也就是在编译期把被包含的文件COPY到目标页面的相应位置。
INCLUDE动作(《jsp:include ../》)是动态包含,是在运行期检测被包含文件的内容并显示到目标页面的相应位置。

关于本次java中include的用法和一个JSP文件中使用include指令来包含一个文本文件的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

java中include的用法(一个JSP文件中使用include指令来包含一个文本文件)

本文编辑:admin

更多文章:


指针函数的返回值(指针作为函数的返回值)

指针函数的返回值(指针作为函数的返回值)

大家好,指针函数的返回值相信很多的网友都不是很明白,包括指针作为函数的返回值也是一样,不过没有关系,接下来就来为大家分享关于指针函数的返回值和指针作为函数的返回值的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录指

2026年4月21日 05:45

myeclipse激活了还是要激活(myeclipse为什么要激活)

myeclipse激活了还是要激活(myeclipse为什么要激活)

各位老铁们好,相信很多人对myeclipse激活了还是要激活都不是特别的了解,因此呢,今天就来为大家分享下关于myeclipse激活了还是要激活以及myeclipse为什么要激活的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看

2026年7月3日 22:30

Jam在英语中到底有多少意思?Dr.jame’s work is of enormous value to the community. 先说下,to是什么意思,作用是什么,

Jam在英语中到底有多少意思?Dr.jame’s work is of enormous value to the community. 先说下,to是什么意思,作用是什么,

本篇文章给大家谈谈jam,以及Jam在英语中到底有多少意思对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录Jam在英语中到底有多少意思Dr.

2025年11月19日 01:00

phpcms 自定义字段标签模型(phpcms建议PHPCMS在评论功能上进行扩展,实现评论自定义字段)

phpcms 自定义字段标签模型(phpcms建议PHPCMS在评论功能上进行扩展,实现评论自定义字段)

“phpcms 自定义字段标签模型”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看phpcms 自定义字段标签模型(phpcms建议PHPCMS在评论功能上进行扩展,实现评论自定义字段)!本文目录phpcms建议PHPCMS

2025年10月13日 22:30

车后面有transformers(小黄蜂雪佛兰是什么车)

车后面有transformers(小黄蜂雪佛兰是什么车)

本篇文章给大家谈谈车后面有transformers,以及小黄蜂雪佛兰是什么车对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录小黄蜂雪佛兰是什

2026年3月18日 10:45

软件开发八个阶段(软件的生命周期--三个时期,八个阶段)

软件开发八个阶段(软件的生命周期--三个时期,八个阶段)

大家好,关于软件开发八个阶段很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于软件的生命周期--三个时期,八个阶段的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年3月16日 10:45

android根据源码解决问题(如何解决android ndk r8c 老是重新编译源代码的问题)

android根据源码解决问题(如何解决android ndk r8c 老是重新编译源代码的问题)

大家好,android根据源码解决问题相信很多的网友都不是很明白,包括如何解决android ndk r8c 老是重新编译源代码的问题也是一样,不过没有关系,接下来就来为大家分享关于android根据源码解决问题和如何解决android n

2026年3月30日 00:30

selectorgadget下载(bootntrselector加载不成功)

selectorgadget下载(bootntrselector加载不成功)

大家好,关于selectorgadget下载很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于bootntrselector加载不成功的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,

2025年9月21日 13:30

如何输入string类型字符串(博图画面中string类型怎么输入)

如何输入string类型字符串(博图画面中string类型怎么输入)

大家好,如果您还对如何输入string类型字符串不太了解,没有关系,今天就由本站为大家分享如何输入string类型字符串的知识,包括博图画面中string类型怎么输入的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录

2026年5月6日 23:15

设计图的网站(学设计的,找图片素材的网站有哪些)

设计图的网站(学设计的,找图片素材的网站有哪些)

今天给各位分享学设计的,找图片素材的网站有哪些的知识,其中也会对学设计的,找图片素材的网站有哪些进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录学设计的,找图片素材的网站有哪些免费出装修设计图免费装修设计的网站

2026年9月3日 06:00

sw哪个版本好用?switch怎么实现成绩的范围

sw哪个版本好用?switch怎么实现成绩的范围

今天给各位分享sw哪个版本好用的知识,其中也会对sw哪个版本好用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录sw哪个版本好用switch怎么实现成绩的范围用switch语句表示范围matlab中switch

2025年6月19日 12:15

手机网页游戏不用登录(手机上免登录国外游戏网址是什么)

手机网页游戏不用登录(手机上免登录国外游戏网址是什么)

“手机网页游戏不用登录”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看手机网页游戏不用登录(手机上免登录国外游戏网址是什么)!本文目录手机上免登录国外游戏网址是什么无需登录无需网络的游戏手机上免登录国外游戏网址是什么Craz

2026年3月11日 04:30

format函数千位分隔符(15、pandas的设置数字格式,小数位数、百分号、千位分隔符)

format函数千位分隔符(15、pandas的设置数字格式,小数位数、百分号、千位分隔符)

大家好,format函数千位分隔符相信很多的网友都不是很明白,包括15、pandas的设置数字格式,小数位数、百分号、千位分隔符也是一样,不过没有关系,接下来就来为大家分享关于format函数千位分隔符和15、pandas的设置数字格式,小

2026年4月6日 17:30

foranouting什么意思(let’s go for an outing 句中for是什么词for an outing中为什么有an修饰outing)

foranouting什么意思(let’s go for an outing 句中for是什么词for an outing中为什么有an修饰outing)

今天给各位分享let’s go for an outing 句中for是什么词for an outing中为什么有an修饰outing的知识,其中也会对let’s go for an outing 句中for是什么词for an outin

2026年3月12日 08:00

cur是哪个国家的缩写?curls是什么意思

cur是哪个国家的缩写?curls是什么意思

本篇文章给大家谈谈cur,以及cur是哪个国家的缩写对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录cur是哪个国家的缩写curls是什么意

2025年8月8日 14:45

用其他用户找不到java的变量(JAVA的环境变量)

用其他用户找不到java的变量(JAVA的环境变量)

今天给各位分享JAVA的环境变量的知识,其中也会对JAVA的环境变量进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录JAVA的环境变量Java为什么从类中没法访问主方法中定义的变量使用root用户配置的jdk,

2025年9月24日 08:00

java程序的优点有哪些(JAVA语言开发软件有什么优势)

java程序的优点有哪些(JAVA语言开发软件有什么优势)

大家好,如果您还对java程序的优点有哪些不太了解,没有关系,今天就由本站为大家分享java程序的优点有哪些的知识,包括JAVA语言开发软件有什么优势的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录JAVA语言开发

2026年7月31日 18:15

c++多线程并发(C++的多线程里的事件是怎样定义的,事件和线程有啥联系和区别)

c++多线程并发(C++的多线程里的事件是怎样定义的,事件和线程有啥联系和区别)

大家好,今天小编来为大家解答以下的问题,关于c++多线程并发,C++的多线程里的事件是怎样定义的,事件和线程有啥联系和区别这个很多人还不知道,现在让我们一起来看看吧!本文目录C++的多线程里的事件是怎样定义的,事件和线程有啥联系和区别c++

2026年9月20日 11:45

停止天然砂出口台湾(急求中国2010年10月11日起禁止出口的货物目录)

停止天然砂出口台湾(急求中国2010年10月11日起禁止出口的货物目录)

本篇文章给大家谈谈停止天然砂出口台湾,以及急求中国2010年10月11日起禁止出口的货物目录对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录

2025年6月19日 16:00

免费的翻译器(哪种翻译软件是免费的)

免费的翻译器(哪种翻译软件是免费的)

“免费的翻译器”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看免费的翻译器(哪种翻译软件是免费的)!本文目录哪种翻译软件是免费的不收费的翻译软件哪些免费翻译软件好用哪种翻译软件是免费的翻译软件是免费的有以下翻译软件目前市面上

2026年4月3日 13:00

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索