编写jsp页面时分割页面,然使用jsp:include的整合.提高开发效率.同时方便布局.
JSP 技术是在 Java 平台上构建 Web 页面或 Web 应用程序接口的工具。JSP 技术允许我们做如下事情:动态响应请求数据、显示复杂的 XML 和 HTML 以及创建生动有趣、动态驱动的网站。
为 Web 页面创建一致的设计和布局是确保获得专业化外观的最容易方法之一。您或许看过足够多的网站,知道单个站点中的大部分页面都共用统一的页面头、页面尾以及某种类型的导航栏。在设计良好的站点上,这些元素将在每个页面上呈现相同的布局、内容和功能,而主面板(通常称为 内容窗格)会随着每个视图而变化
使用 JSP include
伪指令将诸如页眉、页脚和导航组件之类的静态内容包含到 Web 页面中。和服务器端包含一样,JSP include
伪指令允许某个页面从另一个页面提取内容或数据。
虽然 include
非常适于将静态内容并入 Web 页面,但对于动态内容却不尽如人意。我们在前一篇文章中在试图重新装入高速缓存文件时发现了这一问题。与大多数页眉文件及页脚文件不同,动态内容变化频繁,必须时刻更新。我们将首先扼要地重述一下 include
伪指令的局限性,然后我将向您演示如何用 jsp:include
标记来扩展 JSP 的包含能力。
高速缓存问题
JSP include
伪指令的不足之处有一个是:它会导致 Web 浏览器高速缓存所有页面。在处理诸如页脚、版权声明或一组静态链接之类的静态组件时,这是有意义的。这些文件不会改变,因此没有理由让 JSP 解释器不断地重新轮询其中的数据。凡是可能的地方,都应该实现高速缓存,因为它改善了应用程序的性能。
有时侯,进行高速缓存会得不偿失。如果提入的内容来自使用动态数据(如 Weblog 或数据库驱动的 JSP 文件)的程序,甚至如果所包含的内容是经常变化的 HTML(如时间戳记),那么每当装入 Web 页面时,都需要显示这些文件或程序的最新版本。
在测试和开发周期中,在浏览器中禁用高速缓存通常能够解决这一问题。但是,对于实际使用的应用程序而言,性能是任何设计决策过程中的一项重要因素,禁用高速缓存并不是一种可行的长远之计。更好的解决方案是使用 jsp:include
标记。
jsp:include 标记
jsp:include
只不过是一个不同于 include
的伪指令而已。
jsp:include
的优点在于:它 总是会检查所含文件中的变化。过一会儿我们将研究这一新标记的工作方式。但首先看一下两种 include
各自的代码,以便能够看到二者之间的异同。
首先, jsp:include
元素不使用属于 include
伪指令的 %@
语法。实际上, jsp
前缀让 JSP 编译器知道:它应该寻找标准 JSP 标记集中的元素。
其次,指定要包含的文件的属性从 file
变成了 page
。
flush 属性
您可能已注意到 jsp:include
代码示例中的 flush
属性。顾名思义, flush
指示在读入包含内容之前是否清空任何现有的缓冲区。JSP 1.1 中需要 flush
属性,因此,如果代码中不用它,会得到一个错误。但是,在 JSP 1.2 中, flush
属性缺省为 false。由于清空大多数时候不是一个重要的问题,因此,我的建议是:对于 JSP 1.1,将 flush
设置为 true;而对于 JSP 1.2 及更高版本,将其设置为关闭。
jsp:include 是如何工作的
如果您有点爱刨根问底,那么可能十分想知道 jsp:include
标记的行为为什么与 include
伪指令不同。道理其实十分简单: jsp:include
包含的是所包含 URI 的 响应,而不是 URI 本身。这意味着:对所指出的 URI 进行 解释,因而包含的是 生成的响应。如果页面是 HTML,那么将得到一点也没有变化的 HTML。但是,如果是 Perl 脚本、Java servlet 或者 CGI 程序,那么得到的将是从该程序解释而得的结果。虽然页面通常就是 HTML,但实际程序恰好是达到目的的手段。而且,由于每次请求页面的时候都会进行解释,因此从来不会象使用 include
伪指令时那样高速缓存结果。虽然这只是很小的变动,但它却导致了您所见到的行为中的全部差异.
一种混合搭配的解决方案
include
伪指令在某些网站上有其用武之地。例如,如果站点包含一些(如果有变化,也很少)几乎没有变化的页眉、页脚和导航文件,那么基本的 include
伪指令是这些组件的最佳选项。由于 include
伪指令采用了高速缓存,因此只需放入包含文件一次,其内容就会被高速缓存,其结果会是极大地提高了站点的性能。
然而,对于现在许多 Web 应用程序或站点而言,地毯式的高速缓存并不能解决问题。虽然页眉和页脚可能是静态的,但是不可能整个站点都是静态的。例如,从数据库提取导航链接是很常见的,并且许多基于 JSP 技术的站点还从其它站点或应用程序上的动态 JSP 页面提取内容。如果正在处理动态内容,那么需要采用 jsp:include
来处理该内容。
当然,最好的解决方案是经常把这两种方法混合搭配使用,将每种构造用到最恰当的地方。
分享到:
相关推荐
总结,JSP的`Include`方式是构建复杂网站架构的关键技术之一,通过合理利用静态和动态Include,开发者能够创建出高效且易于维护的Web应用。在实际工作中,理解并熟练掌握这两种方式的差异和应用场景,对于提升开发...
总结一下,`<jsp:include>` 和 `<%@ include %>` 的主要区别在于: 1. 动态与静态:`<jsp:include>` 动态包含,`<%@ include %>` 静态包含。 2. 执行时机:`<jsp:include>` 在请求时,`<%@ include %>` 在编译时。 3...
**JSP知识总结1** **一、静态页面基础** 1. **HTML文档结构**:HTML文档通常由开始标记`<html>`、头部标记`<head>`、主体标记`<body>`以及结束标记`</html>`组成。 2. **排版标记**:包括标题标记如`<hn></hn>`(n...
JSP Include 文件时的一个乱码解决方法 在 JSP 开发中,include 文件是一个常用的技术手段,可以将公共的代码或者组件包含到不同的页面中,以提高代码的复用性和维护性。然而,在使用 JSP include 文件时,经常会...
- **jsp:param**:`<jsp:param name="attName" value="AttValue" />`,用于在其他操作指令(如jsp:forward、jsp:include、jsp:plugin)中传递参数。 - **jsp:include**:`<jsp:include page="url" />`,在请求处理...
1. **jsp:include** - 动态包含页面,可以包含静态资源或动态生成的内容。 2. **jsp:forward** - 将请求转发到另一个页面。 3. **jsp:params** - 传递参数给包含或转发的页面。 4. **jsp:useBean** - 创建或查找一个...
**JSP(Java Server Pages)学习总结** JSP是Java技术在Web开发中的一个重要组成部分,全称为JavaServer Pages。它是一种动态网页技术,允许开发者将HTML、CSS、JavaScript与Java代码混合在一起,以创建交互式的...
**JSP网页编程内容总结** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML、XML或其他标记语言中嵌入Java代码,从而实现动态网页的创建。本总结PPT是为初学者量身打造的学习资源,旨在帮助快速理解...
**JSP 学习总结** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML中嵌入Java代码,以实现服务器端的程序逻辑。对于初学者来说,掌握JSP的基础知识和核心概念至关重要。 ### JSP 开发Web应用系统 ...
### JSP基础语法-include指令详解 在Java Server Pages(JSP)技术中,`include`指令是一项重要的功能,它允许开发者将一个JSP页面的内容嵌入到另一个JSP页面中,从而实现代码的重用和模块化。通过`include`指令,...
总结来说,`<jsp:include>`是JSP中一个强大且实用的标签,它允许我们在页面渲染时动态地组合内容,提高了代码的可重用性和维护性。在实际项目中,正确运用`<jsp:include>`可以显著提升开发效率并优化用户体验。
### JSP脚本小总结 #### 一、指令元素 指令元素是JSP页面中用于控制JSP容器行为的关键组成部分,这些指令告诉JSP引擎如何处理特定页面。 1. **page指令** - `import`:指定在当前JSP页面中可以使用的类或包。 `...
【JSP学习总结】 JSP(JavaServer Pages)是Java平台上的一个重要技术,它是一种用于创建动态网页的服务器端编程技术。JSP的核心概念在于将HTML代码与Java代码分离,使得开发者可以更专注于业务逻辑的实现,而不用...
5. **JSP动作(JSP Actions)**:如`<jsp:include>`、`<jsp:forward>`和`<jsp:useBean>`,用于控制页面流程和组件管理。 **异常处理** 在JSP中,可以通过`<jsp:exception>`标签捕获和处理异常,或者使用`page`指令...
4. **JSP动作(JSP Actions)**:如`<jsp:include>`和`<jsp:forward>`等,但示例中未使用。 5. **EL(Expression Language)**:虽然示例中未使用,但EL通常用于简化JSP页面中的数据访问。 6. **JSTL(JavaServer ...
### JSP知识点总结 #### 1. JSP简介 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,用于创建动态网页。它结合了HTML标记和Java代码,使得开发者可以在静态网页的基础上添加动态内容。JSP具有以下...
**JSP学习笔记总结** **第 1 章 JSP 和 Web 页面的交互** 1.1 JSP(JavaServer Pages)是Java技术在Web开发中的应用,它允许开发者将静态HTML与动态Java代码结合起来,生成动态网页。通过在HTML页面中嵌入Java代码...