- 浏览: 89159 次
文章分类
最新评论
第十三章 在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 768第十六章:简化对Java代 ... -
servlet和jsp核心编程(第2版)第十五章servlet和JSP的集成,模型-视图-控制器构架
2012-08-23 14:59 778第十五章:servlet和JSP的集成,模型-视图-控制器构架 ... -
servlet和jsp核心编程(第2版)第十四章 JavaBean组件在JSP文档中的应用 学习笔记
2012-08-21 11:55 733第十四章 JavaBean组件在JSP文档中的应用 一、bea ... -
servlet和jsp核心编程(第2版)第十二章page指令学习笔记
2012-08-19 17:00 799第十二章 控制所生成的servlet的结构:JSP page指 ... -
servlet和jsp核心编程(第2版)第十一章jsp脚本元素的调用学习笔记
2012-08-18 21:09 847第十一章 用JSP脚本元素 ... -
servlet和jsp核心编程(第2版)第十章jsp技术概述学习笔记
2012-08-18 10:37 720第十章jsp技术概述 学习笔记: 一servlet和jsp的区 ... -
servlet和jsp核心编程(第2版)第九章会话跟踪学习笔记
2012-08-17 17:30 929第九章 会话跟踪 核心 ... -
servlet和jsp核心编程(第2版)第八章cookie管理学习笔记
2012-08-08 12:27 878第八章 cookie管理 核心方法: 1.在创建cookie对 ... -
servlet和jsp核心编程(第2版)第七章服务器响应的生成:HTTP响应报头学习笔记
2012-08-06 17:45 778第七章:服务器响应的 ... -
servlet和jsp核心编程(第2版)第六章服务器响应的生成:HTTP状态代码学习笔记
2012-08-05 10:52 776第六章:服务器响应的生成:HTTP状态代码 核心方法: 1.在 ... -
servlet和jsp核心编程(第2版)第五章客户请求的处理:HTTP请求报头学习笔记
2012-08-02 21:36 732第五章客户请求的处理:HTTP请求报头 核心方法: 1.在使用 ... -
servlet和jsp核心编程(第2版)第四章客户请求的处理,表单数据学习笔记
2012-07-31 16:05 1262第四章学习笔记 客户请 ... -
servlet和jsp核心编程(第2版)第三章servlet基础学习笔记
2012-07-29 10:43 741第三章:servlet基础 核心方法: 1.使用HTML验证器 ...
相关推荐
### 良葛格JspServlet学习笔记 #### 一、引言 在现代Web开发领域,特别是Java EE平台中,JSP (JavaServer Pages) 和 Servlet 技术扮演着非常重要的角色。这两种技术共同构成了Java Web应用的基础,分别侧重于用户...
Servlet的生命周期包括三个主要阶段:初始化、服务和销毁。当Servlet首次接收到请求时,容器会调用`init()`方法进行初始化,通常用于加载配置、建立数据库连接等一次性工作。接着,每次请求到来,容器会创建一个线程...
Servlet技术是Java Web开发的核心组件之一,它是一个基于Java的Web应用组件,运行于Web服务器或应用服务器中,用于扩展服务器的功能,处理客户端的请求并返回响应。Java Servlet可视为服务器端的applet(小程序),...
### JSP 学习笔记详解 #### 一、JSP 概述与基本结构 **JSP (JavaServer Pages)** 是一种基于 Java 的服务器端脚本技术,它允许在 HTML 页面中嵌入 Java 代码来动态生成网页内容。JSP 技术的主要优势在于能够将业务...
### Servlet详细笔记(初学者很适用) #### 一、Servlet简介 ...接下来,可以进一步学习如何利用Servlet与其他Java EE技术(如JSP、Filter、Listener等)结合使用,以构建更加复杂和功能丰富的Web应用。
- `include`指令:用于在编译时将另一个文件插入当前JSP页面。 - `taglib`指令:用于指定自定义标签库的位置。 - **Scripting(脚本)**:用于嵌入Java代码。 - `!declaraction%>`:声明变量或方法。 - `...
它在传统的 HTML 页面中添加一些 Java 程序段和 JSP 标记,从而构成的一种页面。JSP 的优点是继承了 Java 的所有特性,例如跨平台、安全性、支持多线程等。 五、Tomcat 的安装与配置 Tomcat 是一种支持 JSP/JAVA ...
它提供了服务器端的编程模型,包括Servlet、JavaServer Pages (JSP)、JavaBeans、EJB (Enterprise JavaBeans)等技术,支持分布式计算和多层架构的应用程序开发。 Servlet是J2EE中一个核心组件,它是运行在服务器端...
【J2EE学习笔记 by dream】是一份详细记录了作者dream在J2EE技术领域学习过程和经验的文档集合。J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司提供的一个用于构建企业级分布式应用的平台,它包含了多种...
JSP声明(Declarations)允许在JSP页面中声明变量和方法,这些声明会被转换为Servlet的成员变量和方法。声明语法如下: ```jsp ! 声明部分 %> ``` 声明的变量和方法遵循Java的访问控制规则,可以使用`public`, `...
Java JDK 6学习笔记——PPT简体版是针对初学者和有经验的开发者们的一份宝贵资源,它深入浅出地介绍了Java编程语言的核心概念和技术。这份资料以PPT的形式呈现,使得学习过程更加直观易懂,同时包含了课程中的源代码...
### Java EE 学习笔记知识点总结 #### 一、Java Web基础 - **Web应用概述:** - Web应用是通过网络(通常是互联网)提供服务的应用程序。 - Web应用通常由服务器端技术和客户端技术组成。 - **JSP (Java Server...
### EJB学习笔记第六部分详解 #### 一、EJB之间的调用 EJB (Enterprise JavaBeans) 是Java EE平台中用于开发分布式企业应用程序的重要组件。在实际开发过程中,经常需要一个EJB调用另一个EJB来实现更复杂的业务...
### JAVA学习笔记(林信良 编著 教程) #### 重要知识点解析 **一、Java概述** 1. **起源与发展:** - Java 最初由 Sun Microsystems 的 James Gosling 在 Green Project 中开发,其最初的命名灵感来源于 ...
4. **plugin**:允许在 JSP 页面中嵌入 Java Applet 或 JavaBeans 组件。 5. **useBean**:实例化 JavaBeans 组件。 6. **setProperty**:设置 JavaBeans 属性。 7. **getProperty**:获取 JavaBeans 属性。 ##### ...
### Jasperreport与iReport整合开发Web报表学习笔记 #### 一、环境配置 为了能够顺利地使用Jasperreport和iReport进行报表设计与开发,首先需要确保开发环境配置正确。 1. **Java JDK环境**: 确保已安装最新版的...