- 浏览: 85537 次
文章分类
最新评论
第十三章 在JSP页面中包含文件和applet
本章论述jsp:include动作,include指令,jsp:plugin动作
一、在请求期间包含页面jsp:include
1.首先这个include动作,是在主页面被请求时,将include所引用的内容的输出包含进来,注意是次级页面的输出,我们可以这样理解,在访问主页面时,如果使用了jsp:include,则服务器对这个include中的URL进行解释,以通常的方式运行该页面,然后将该次级页面的输出包含进来。也就是将主次页面的输出合并在一起后输出。这种行为和RequestDispatcher类的include方法相同。
2.<重点提示>对以斜杠开头的URL,服务器和浏览器的解释是不同的,服务器总是相对于当前WEB应用对他们进行解释,浏览器总是相对于服务器的根目录对他们进行解释。我们可以这样理解,如果是用户请求的一个URL,或者说是客户(浏览器去处理的一
个URL),那么就是以服务器的根目录来解释,比如:
为:http://localhost:8080/MyTest1/test1.jsp。注意其中的page属性。
3.<核心方法>由于jsp:include所包含的页面一般不是完整的页面,所以我们可以把它放在WEB-INF目录中,这样用户就不会偶然访问到他们了。
4.flush属性,表示将页面包含进来之前是否应该清空主页面的输出流。
5.<核心方法>不要将完整的HTML文档作为被包含的页面,被包含页面中只能含有适合于出现在文件插入点处的HTML标签。 注意这里是HTML文档不需要是完整的,包括JSP文档,我们需要查看其生成的html代码,并将其交给html验证器。
6.jsp:param 增加请求参数,如果使用了jsp:param指定了参数,那么由jsp:param所指的值仅在被包含文件中优先采用。不会出现在主页面中。
二、在页面转换期间包含文件:include指令
1.include指令可以在主JSP文档转换为servlet(一般在它首次被访问时),将文件包含到文档中。
我们可以理解为,当主页面转换为servlet时,将include指令所引入的页面合成进来,然后一起转换为servlet。这就意味着include指令。
2.和include动作的主要区别就是它们的调用时间不同,include指令在页面转换为servlet时调用,而include动作则在页面请求时调用,然后服务器分别解释两个URL,将它们的输出合并在一起。
3.<核心方法>对于文件包含,应该尽可能使用include动作。仅在所包含的文件中定义了主页面要用到的字段或方法,或者所包含的文件设置了主页面的响应报头时,才使用include指令。这是因为include动作更加易于维护:主页面不需要知道次页面是否需要更改。
4.既然include指令不便于维护,为什么有时还要使用他呢,因为次页面所包含的内容可以影响到主页面,而这时include动作无法完成的内容。
5.<警告>因为并不要求检测包含的页面什么时候发生更改,所以如果我们更改了被包含的文件,必须更新所有使用它的jsp文件的修改日期。我们往往通过在顶级页面中写入一段JSP注释,当被包含文件发生改变时更新这段注释。
6.特别要注意脚本重用的问题,比如我们写了一个用于计算访问计数的脚本,如果我们在一个页面中使用include动作,那么这个计算访问计数的脚本转换的servlet就为一个单独的servlet,那么这个单独的servlet就属于整个网站,也就是说计算的是整个网的访问计数,而无论用户访问哪个页面,总访问计数都会加1,所以显示的访问计数就是整个网站的访问计数。而如果我们使用include指令,那么由于这个脚本和当前主页面一起形成一个servlet,所以这个脚本就计算的是当前页面的访问计数,虽然网站中的页面都使用该脚本,但是他们的访问计数都不经相同,它显示的就是各自页面的访问计数。
三、使用jsp:forward转发请求
1.如果使用jsp:forward 则主页面不能含有任何输出,因为我们转到了jsp:forward所指的页面,原来的页面的输出显示出来也会被覆盖,我们推荐完全避免使用jsp:forward,转而由servlet调用RequestDispacher的forward方法。
四、包含使用java插件的applet
1.<核心方法>不管您选择applet的哪种方式,applet的.class文件都必须放在浏览器能够访问的目录中,不要将它们放在WEB-INF/classes目录中,使用它们的是浏览器,不是服务器。
2.如果是小型项目,用户又是使用老的浏览器,怎可以用JDK1.1或1.2开发applet,但是我们不能使用java 2D,不能使用java 2集合包;如果我是小型项目,用户使用的是IE6以上或Netscape6或以上。我们可以让用户安装java运行环境JRE(1.4),然后使用
JDK开发;如果是大型项目,一般,我们让用户安装java2插件,使用java2 开发applet。我们可以到http://java.sun.com/products/plugin/下载这个插件。
3.但遗憾的是在某些浏览器中,常规的applet标签不能包含一些插件,这就需要我们针对不同浏览器使用<object>或是<embed>包含这些插件,但是我们还要判断浏览器类型,比较繁琐,<重点提示>所以我们使用<jsp:plugin>,这个元素不向浏览器添加 任何java能力,它只是简化了笨重的OBJECT和EMBED标签的创建工作,java2插件需要这两个标签,也就是说这个标签主要用于引入插件。
4.jsp:param和jsp:params元素,说这两个标签不是为了说它的功能,而是说他们所遵循的xml语法,首先属性名必须小写,属性值必须在单引号或双引号中,同时元素以/>结束。且所有的<jsp:param>必须在<jsp:params>中。
5.jsp:fallback向不支持object或embed的浏览器提供一段替换性文字。如:
本章论述jsp:include动作,include指令,jsp:plugin动作
一、在请求期间包含页面jsp:include
1.首先这个include动作,是在主页面被请求时,将include所引用的内容的输出包含进来,注意是次级页面的输出,我们可以这样理解,在访问主页面时,如果使用了jsp:include,则服务器对这个include中的URL进行解释,以通常的方式运行该页面,然后将该次级页面的输出包含进来。也就是将主次页面的输出合并在一起后输出。这种行为和RequestDispatcher类的include方法相同。
2.<重点提示>对以斜杠开头的URL,服务器和浏览器的解释是不同的,服务器总是相对于当前WEB应用对他们进行解释,浏览器总是相对于服务器的根目录对他们进行解释。我们可以这样理解,如果是用户请求的一个URL,或者说是客户(浏览器去处理的一
个URL),那么就是以服务器的根目录来解释,比如:
<a href = "/MyTest1/test.jsp">形成的URL为http://localhost:8080/MyTest1/test1.jsp其中MyTest1是其项目名。但是如果为
<jsp:include page = "/test.jsp">形成的URL就
为:http://localhost:8080/MyTest1/test1.jsp。注意其中的page属性。
3.<核心方法>由于jsp:include所包含的页面一般不是完整的页面,所以我们可以把它放在WEB-INF目录中,这样用户就不会偶然访问到他们了。
4.flush属性,表示将页面包含进来之前是否应该清空主页面的输出流。
5.<核心方法>不要将完整的HTML文档作为被包含的页面,被包含页面中只能含有适合于出现在文件插入点处的HTML标签。 注意这里是HTML文档不需要是完整的,包括JSP文档,我们需要查看其生成的html代码,并将其交给html验证器。
6.jsp:param 增加请求参数,如果使用了jsp:param指定了参数,那么由jsp:param所指的值仅在被包含文件中优先采用。不会出现在主页面中。
二、在页面转换期间包含文件:include指令
1.include指令可以在主JSP文档转换为servlet(一般在它首次被访问时),将文件包含到文档中。
<%@include file = "Relative URL"%>
我们可以理解为,当主页面转换为servlet时,将include指令所引入的页面合成进来,然后一起转换为servlet。这就意味着include指令。
2.和include动作的主要区别就是它们的调用时间不同,include指令在页面转换为servlet时调用,而include动作则在页面请求时调用,然后服务器分别解释两个URL,将它们的输出合并在一起。
3.<核心方法>对于文件包含,应该尽可能使用include动作。仅在所包含的文件中定义了主页面要用到的字段或方法,或者所包含的文件设置了主页面的响应报头时,才使用include指令。这是因为include动作更加易于维护:主页面不需要知道次页面是否需要更改。
4.既然include指令不便于维护,为什么有时还要使用他呢,因为次页面所包含的内容可以影响到主页面,而这时include动作无法完成的内容。
5.<警告>因为并不要求检测包含的页面什么时候发生更改,所以如果我们更改了被包含的文件,必须更新所有使用它的jsp文件的修改日期。我们往往通过在顶级页面中写入一段JSP注释,当被包含文件发生改变时更新这段注释。
6.特别要注意脚本重用的问题,比如我们写了一个用于计算访问计数的脚本,如果我们在一个页面中使用include动作,那么这个计算访问计数的脚本转换的servlet就为一个单独的servlet,那么这个单独的servlet就属于整个网站,也就是说计算的是整个网的访问计数,而无论用户访问哪个页面,总访问计数都会加1,所以显示的访问计数就是整个网站的访问计数。而如果我们使用include指令,那么由于这个脚本和当前主页面一起形成一个servlet,所以这个脚本就计算的是当前页面的访问计数,虽然网站中的页面都使用该脚本,但是他们的访问计数都不经相同,它显示的就是各自页面的访问计数。
三、使用jsp:forward转发请求
1.如果使用jsp:forward 则主页面不能含有任何输出,因为我们转到了jsp:forward所指的页面,原来的页面的输出显示出来也会被覆盖,我们推荐完全避免使用jsp:forward,转而由servlet调用RequestDispacher的forward方法。
四、包含使用java插件的applet
1.<核心方法>不管您选择applet的哪种方式,applet的.class文件都必须放在浏览器能够访问的目录中,不要将它们放在WEB-INF/classes目录中,使用它们的是浏览器,不是服务器。
2.如果是小型项目,用户又是使用老的浏览器,怎可以用JDK1.1或1.2开发applet,但是我们不能使用java 2D,不能使用java 2集合包;如果我是小型项目,用户使用的是IE6以上或Netscape6或以上。我们可以让用户安装java运行环境JRE(1.4),然后使用
JDK开发;如果是大型项目,一般,我们让用户安装java2插件,使用java2 开发applet。我们可以到http://java.sun.com/products/plugin/下载这个插件。
3.但遗憾的是在某些浏览器中,常规的applet标签不能包含一些插件,这就需要我们针对不同浏览器使用<object>或是<embed>包含这些插件,但是我们还要判断浏览器类型,比较繁琐,<重点提示>所以我们使用<jsp:plugin>,这个元素不向浏览器添加 任何java能力,它只是简化了笨重的OBJECT和EMBED标签的创建工作,java2插件需要这两个标签,也就是说这个标签主要用于引入插件。
4.jsp:param和jsp:params元素,说这两个标签不是为了说它的功能,而是说他们所遵循的xml语法,首先属性名必须小写,属性值必须在单引号或双引号中,同时元素以/>结束。且所有的<jsp:param>必须在<jsp:params>中。
5.jsp:fallback向不支持object或embed的浏览器提供一段替换性文字。如:
<applet code = "MyApplet.class" width = 475 height = 350> <b>Error:this example requires java.</b> </applet> <jsp:plugin type = "applet" width = "475" height =" 350 "> <jsp:fallback> <b>Error:this example requires java.</b> </jsp:fallback> </jsp:plugin>
发表评论
-
servlet和jsp核心编程(第2版)第十六章 简化对Java代码的访问:jsp2.0表达式语言学习笔记
2012-08-23 21:49 728第十六章:简化对Java代 ... -
servlet和jsp核心编程(第2版)第十五章servlet和JSP的集成,模型-视图-控制器构架
2012-08-23 14:59 737第十五章:servlet和JSP的集成,模型-视图-控制器构架 ... -
servlet和jsp核心编程(第2版)第十四章 JavaBean组件在JSP文档中的应用 学习笔记
2012-08-21 11:55 701第十四章 JavaBean组件在JSP文档中的应用 一、bea ... -
servlet和jsp核心编程(第2版)第十二章page指令学习笔记
2012-08-19 17:00 753第十二章 控制所生成的servlet的结构:JSP page指 ... -
servlet和jsp核心编程(第2版)第十一章jsp脚本元素的调用学习笔记
2012-08-18 21:09 813第十一章 用JSP脚本元素 ... -
servlet和jsp核心编程(第2版)第十章jsp技术概述学习笔记
2012-08-18 10:37 685第十章jsp技术概述 学习笔记: 一servlet和jsp的区 ... -
servlet和jsp核心编程(第2版)第九章会话跟踪学习笔记
2012-08-17 17:30 889第九章 会话跟踪 核心 ... -
servlet和jsp核心编程(第2版)第八章cookie管理学习笔记
2012-08-08 12:27 840第八章 cookie管理 核心方法: 1.在创建cookie对 ... -
servlet和jsp核心编程(第2版)第七章服务器响应的生成:HTTP响应报头学习笔记
2012-08-06 17:45 727第七章:服务器响应的 ... -
servlet和jsp核心编程(第2版)第六章服务器响应的生成:HTTP状态代码学习笔记
2012-08-05 10:52 734第六章:服务器响应的生成:HTTP状态代码 核心方法: 1.在 ... -
servlet和jsp核心编程(第2版)第五章客户请求的处理:HTTP请求报头学习笔记
2012-08-02 21:36 701第五章客户请求的处理:HTTP请求报头 核心方法: 1.在使用 ... -
servlet和jsp核心编程(第2版)第四章客户请求的处理,表单数据学习笔记
2012-07-31 16:05 1231第四章学习笔记 客户请 ... -
servlet和jsp核心编程(第2版)第三章servlet基础学习笔记
2012-07-29 10:43 705第三章:servlet基础 核心方法: 1.使用HTML验证器 ...
相关推荐
第13章 在jsp页面中包含文件和applet 13.1 在请求期间包含页面:jsp:include动作 13.2 在页面转换期间包含文件:include指令 13.3 使用jsp:forward转发请求 13.4 包含使用java插件的applet 第14章 ...
用applet+servlet+jsp根据MVC模式进行从数据库中取数据进行动态描点。
JSP page指令 12、 在JSP页面中包含文件和applet 13、JavaBean组件在JSP文档中的应用 14、Servlet和JSP的集成:模型-视图-控制器构架 15、简化对Java代码的访问 JSP 2.0表达式语言 <br>
JSP page指令 12、 在JSP页面中包含文件和applet 13、JavaBean组件在JSP文档中的应用 14、Servlet和JSP的集成:模型-视图-控制器构架 15、简化对Java代码的访问 JSP 2.0表达式语言 <br>
一个servlet 和 applet 通讯的完整项目 自己做的 很好 有说明文档
第14章:Servlet与JSP核心技术课程--14、在JSP页面中包含文件及applet-在JSP页面中包含文件及Applet(2).rmvb 第15章:Servlet与JSP核心技术课程--15、JavaBean组件在JSP中的应用-JavaBean组件在JSP中的应用(1).rmvb ...
第13章 在Java Servlet中利用 RMI 13. 1 RMI概述 13. 2 RMI的实现 13. 2. 1 定义远程接口 13. 2. 2 实现远程对象 13. 2. 3 将远程对象绑定到RMI的名称空间 13. 2. 4 作为客户对象的Servlet 13. 2. 5 运行RMI...
java 开发指南_applet和jsp篇
全书由16章和2个附录构成,理论结合实际,分门别类讲述了Servlet编程方法、会话管理、服务器端图形生成、网络编程、上传和下载文件、使用数据库、在数据库中存取图象、Servlet链、Servlet服务器端包含、Applet和...
JSP Applet 源码
如果您瞭解JSP中的隱含物件之意義,再來瞭解Servlet中的對應物件,則學習Servlet就不是件難事。 第一個Servlet程式 Servlet/JSP 的物件對應 Servlet 執行緒安全 Servlet 生命週期 Listener 與 Event Filter ...
第11章Applet第11章Applet第11章Applet
在JSP中包含Applet(时钟)? 83. 在Applet中显示一个html页面? 84. 使session强制失效85. iFreme编辑框使用? 86. Applet与Servlet的通讯? 87. JSP表格直接导入EXCEL? 88. 访问类路径上的资源? 89. ...
82. 在JSP中包含Applet(时钟)? 83. 在Applet中显示一个html页面? 84. 使session强制失效85. iFreme编辑框使用? 86. Applet与Servlet的通讯? 87. JSP表格直接导入EXCEL? 88. 访问类路径上的资源? 89. 操作文件目录? ...
材料列表: 1.applet 数字签名 安全问题 2.Applet访问mysql数据库 3.Applet和Servlet利用http对象流通信 4.J2EE企业应用:Applet和Servlet的通信...等等
JSP page指令 12、 在JSP页面中包含文件和applet 13、JavaBean组件在JSP文档中的应用 14、Servlet和JSP的集成:模型-视图-控制器构架 15、简化对Java代码的访问 JSP 2.0表达式语言 <br>
如何实现java applet与servlet通讯
applet请求servlet,然后servlet读取文件流,并把文件流返回给applet,供applet打印
基于JSP applet的聊天室
NULL 博文链接:https://self4j.iteye.com/blog/914068