`

servlet和jsp核心编程(第2版)第十三章 在JSP页面中包含文件和applet学习笔记

阅读更多
第十三章 在JSP页面中包含文件和applet
本章论述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>

分享到:
评论

相关推荐

    良葛格JspServlet学习笔记.pdf

    ### 良葛格JspServlet学习笔记 #### 一、引言 在现代Web开发领域,特别是Java EE平台中,JSP (JavaServer Pages) 和 Servlet 技术扮演着非常重要的角色。这两种技术共同构成了Java Web应用的基础,分别侧重于用户...

    servlet概述以及API中文版及学习笔记综合

    Servlet的生命周期包括三个主要阶段:初始化、服务和销毁。当Servlet首次接收到请求时,容器会调用`init()`方法进行初始化,通常用于加载配置、建立数据库连接等一次性工作。接着,每次请求到来,容器会创建一个线程...

    Servlet学习笔记

    Servlet技术是Java Web开发的核心组件之一,它是一个基于Java的Web应用组件,运行于Web服务器或应用服务器中,用于扩展服务器的功能,处理客户端的请求并返回响应。Java Servlet可视为服务器端的applet(小程序),...

    JSP学习笔记

    ### JSP 学习笔记详解 #### 一、JSP 概述与基本结构 **JSP (JavaServer Pages)** 是一种基于 Java 的服务器端脚本技术,它允许在 HTML 页面中嵌入 Java 代码来动态生成网页内容。JSP 技术的主要优势在于能够将业务...

    J2EE学习笔记

    - `include`指令:用于在编译时将另一个文件插入当前JSP页面。 - `taglib`指令:用于指定自定义标签库的位置。 - **Scripting(脚本)**:用于嵌入Java代码。 - `!declaraction%&gt;`:声明变量或方法。 - `...

    Java EE技术课堂笔记

    它在传统的 HTML 页面中添加一些 Java 程序段和 JSP 标记,从而构成的一种页面。JSP 的优点是继承了 Java 的所有特性,例如跨平台、安全性、支持多线程等。 五、Tomcat 的安装与配置 Tomcat 是一种支持 JSP/JAVA ...

    我的学习笔记——J2EE

    它提供了服务器端的编程模型,包括Servlet、JavaServer Pages (JSP)、JavaBeans、EJB (Enterprise JavaBeans)等技术,支持分布式计算和多层架构的应用程序开发。 Servlet是J2EE中一个核心组件,它是运行在服务器端...

    J2EE学习笔记 by dream

    【J2EE学习笔记 by dream】是一份详细记录了作者dream在J2EE技术领域学习过程和经验的文档集合。J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司提供的一个用于构建企业级分布式应用的平台,它包含了多种...

    JSP经典学习笔记(包含各种入门常用语法)

    JSP声明(Declarations)允许在JSP页面中声明变量和方法,这些声明会被转换为Servlet的成员变量和方法。声明语法如下: ```jsp ! 声明部分 %&gt; ``` 声明的变量和方法遵循Java的访问控制规则,可以使用`public`, `...

    Java JDK 6学习笔记——ppt

    Java JDK 6学习笔记——PPT简体版是针对初学者和有经验的开发者们的一份宝贵资源,它深入浅出地介绍了Java编程语言的核心概念和技术。这份资料以PPT的形式呈现,使得学习过程更加直观易懂,同时包含了课程中的源代码...

    Java+JDK6学习笔记(PDF版书籍,免费下载)

    ### Java+JDK6学习笔记知识点详解 #### 一、Java简介 - **起源与历史:** - 最初由Sun公司的Green Project发起,旨在创建一个名为Star7的应用程序编程语言。 - 名称来源于创始人James Gosling窗外的一棵橡树...

    java笔记.txt

    ### Java EE 学习笔记知识点总结 #### 一、Java Web基础 - **Web应用概述:** - Web应用是通过网络(通常是互联网)提供服务的应用程序。 - Web应用通常由服务器端技术和客户端技术组成。 - **JSP (Java Server...

    ejb 学习笔记6

    ### EJB学习笔记第六部分详解 #### 一、EJB之间的调用 EJB (Enterprise JavaBeans) 是Java EE平台中用于开发分布式企业应用程序的重要组件。在实际开发过程中,经常需要一个EJB调用另一个EJB来实现更复杂的业务...

    JAVA学习笔记(林信良 编著 教程)

    ### JAVA学习笔记(林信良 编著 教程) #### 重要知识点解析 **一、Java概述** 1. **起源与发展:** - Java 最初由 Sun Microsystems 的 James Gosling 在 Green Project 中开发,其最初的命名灵感来源于 ...

    沙舟狼客之JavaEE笔记

    4. **plugin**:允许在 JSP 页面中嵌入 Java Applet 或 JavaBeans 组件。 5. **useBean**:实例化 JavaBeans 组件。 6. **setProperty**:设置 JavaBeans 属性。 7. **getProperty**:获取 JavaBeans 属性。 ##### ...

    Jasperreport+ireport学习笔记1

    ### Jasperreport与iReport整合开发Web报表学习笔记 #### 一、环境配置 为了能够顺利地使用Jasperreport和iReport进行报表设计与开发,首先需要确保开发环境配置正确。 1. **Java JDK环境**: 确保已安装最新版的...

Global site tag (gtag.js) - Google Analytics