JSP最佳实践: 用jsp:include控制动态内容

简介:本文是 Java Brett McLaughlin 继第一篇 JSP 最佳实践文章后的后续文章,在文中,作者向 您演示了如何扩展 JSP 技术中用于动态内容的包含功能。了解静态 include 伪指令和动态 jsp:include 元素之间的差异,搞清楚如何混合搭配这二者以获取最优性能。

在新的 JSP 最佳实践系列的前一篇文章中,您了解了如何使用 JSP include 伪指令将诸如页眉、页 脚和导航组件之类的静态内容包含到 Web 页面中。和服务器端包含一样,JSP include 伪指令允许某个 页面从另一个页面提取内容或数据。清单 1 重温了 include 伪指令。

清单 1. JSP include 伪指令

<%@ page language="java" contentType="text/html" %>
<html>
<head>
    <title>newInstance.com</title>
    <meta http-equiv="Content-Type"
     content="text/html; charset=iso-8859-1" />
    <link href="/styles/default.css"
     rel="stylesheet" type="text/css" />
</head>
<body>
<%@ include file="header.jsp" %>
<%@ include file="navigation.jsp" %>
<%@ include file="bookshelf.jsp" %>
<%@ include file="/mt-blogs/index.jsp" %>
<%@ include file="footer.jsp" %>
</body>
</html>

虽然 include 非常适于将静态内容并入 Web 页面,但对于动态内容却不尽如人意。我们在前一篇文 章中在试图重新装入高速缓存文件时发现了这一问题。与大多数页眉文件及页脚文件不同,动态内容变化 频繁,必须时刻更新。我们将首先扼要地重述一下 include 伪指令的局限性,然后我将向您演示如何用 jsp:include 标记来扩展 JSP 的包含能力。

高速缓存问题

JSP include 伪指令的不足之处有一个是:它会导致 Web 浏览器高速缓存所有页面。在处理诸如页脚 、版权声明或一组静态链接之类的静态组件时,这是有意义的。这些文件不会改变,因此没有理由让 JSP 解释器不断地重新轮询其中的数据。凡是可能的地方,都应该实现高速缓存,因为它改善了应用程序的性 能。

但是,有时侯,进行高速缓存会得不偿失。如果提入的内容来自使用动态数据(如 Weblog 或数据库 驱动的 JSP 文件)的程序,甚至如果所包含的内容是经常变化的 HTML(如时间戳记),那么每当装入 Web 页面时,都需要显示这些文件或程序的最新版本。遗憾的是,JSP include 伪指令并不具备这一功能 。在测试和开发周期(请参阅侧栏“ JSP 测试和开发”)中,在浏览器中禁用高速缓存通常能够解决这 一问题。但是,对于实际使用的应用程序而言,性能是任何设计决策过程中的一项重要因素,禁用高速缓 存并不是一种可行的长远之计。更好的解决方案是使用 jsp:include 标记。

时间: 2024-08-30 09:04:49

JSP最佳实践: 用jsp:include控制动态内容的相关文章

使用jsp:include控制动态内容的方法_JSP编程

本文实例讲述了使用jsp:include控制动态内容的方法.分享给大家供大家参考,具体如下: 清单 1. JSP include 伪指令 <![CDATA[ <%@ page language="java" contentType="text/html" %> <html> <head> <title>newInstance.com</title> <meta http-equiv="

JSP 最佳实践:用 jsp:include 控制动态内容

include|js|动态|控制 本文是 Java"知情人士"Brett McLaughlin 继第一篇 JSP 最佳实践文章后的后续文章,在文中,作者向您演示了如何扩展 JSP 技术中用于动态内容的包含功能.了解静态 include 伪指令和动态 jsp:include 元素之间的差异,搞清楚如何混合搭配这二者以获取最优性能.在新的 JSP 最佳实践系列的前一篇文章中,您了解了如何使用 JSP include 伪指令将诸如页眉.页脚和导航组件之类的静态内容包含到 Web 页面中.和服

JSP最佳实践: 使用JSP include机制改进外观

简介:本文是新的 JSP 最佳实践系列文章的第一部分,它介绍了 JavaServer Pages include 机制. 请跟随 Java 编程专家 Brett McLaughlin 学习如何使用 include 将静态的头文件和脚注文件加入您的 网站或 Web 应用程序页面中. 欢迎阅读 Java 专区中最新的 最佳实践系列文章.如果您看过先前的系列文章,那么您会知道最佳实 践旨在让您快速了解各种 Java 技术的有用方面.这一系列的最佳实践专门讨论 JavaServer Pages(JSP

JSP最佳实践:使用JSP include机制改进外观

本文是新的 JSP 最佳实践系列文章的第一部分,它介绍了 JavaServer Pages include 机制.请跟随 Java 编程专家 Brett McLaughlin 学习如何使用 include 将静态的头文件和脚注文件加入您的网站或 Web 应用程序页面中.欢迎阅读 Java 专区中最新的最佳实践系列文章.如果您看过先前的系列文章,那么您会知道最佳实践旨在让您快速了解各种 Java 技术的有用方面.这一系列的最佳实践专门讨论 JavaServer Pages(JSP)技术,它是核心

JSP 最佳实践:组合 JavaBean 组件和 JSP 技术

js JSP 最佳实践:组合 JavaBean 组件和 JSP 技术 使用 JavaBean 和 JSP 参数在 Web 页面之间传递数据级别:入门Brett McLaughlin(brett@oreilly.com)作家,O'Reilly and Associates2003 年 7 月 Web 架构设计师 Brett McLaughlin 演示了 JavaBean 组件和 JSP 技术的结合如何使您能够在 Web 页面之间存储并传递数据,以及这样做如何能实现更为动态的站点设计.到目前为止,我

JSP最佳实践: 组合JavaBean组件和JSP技术

使用 JavaBean 和 JSP 参数在 Web 页面之间传递数据 简介:Web 架构设计师 Brett McLaughlin 演示了 JavaBean 组件和 JSP 技术的结合如何使您能够在 Web 页面之间存储并传递数据,以及这样做如何能实现更为动态的站点设计. 到目前为止,我们在 JSP 最佳实践系列文章 中着重讨论的都是较为基本的主题.在前两篇文章中, 您学习了如何使用 JSP include 机制来将外部内容引入到您的网站或 Web 应用程序.我们使用了两种不 同的 include

JSP最佳实践: 使用JSTL来更新JSP页面

简介:JSP 标准标记库(Standard Tag Library,JSTL)是一组以标准化格式实现许多通用的Web站点 功能的定制标记.在 JSP 最佳实践这一部分,Brett McLaughlin将向您介绍JSTL,阐述如何转变JSP页面 来使用高功能性的标记. JSP技术的优势之一在于其定制标记库工具.除了核心JSP标记,如 jsp:include 之外,定制标记库工 具使您能够创建唯一的标记来描述以站点或应用程序为导向的操作.一旦您创建了定制标记库(简称 taglib),当您扩展项目或转

JSP最佳实践: 自定义标记中的错误处理

简介:在自定义标记中引用更多交互性的同时,也会增加错误出现的可能性,尤其是以非法参数形式 出现的错误.在本期的 JSP最佳实践中,Brett McLaughlin 向您展示了如何在源代码中捕获和忽略 IllegalArgumentException 异常. 在我们讨论 JSP 自定义标记的时候,我们一直都设法回避了错误处理的重要细节.在我们已经推出的 JSP 最佳实践系列的前面一半的文章中,大多数讲的都是 JSP 容器提供的功能,比如说 param . out 和 import 标记.在这些情况

JSP最佳实践: 为您的JSP标记创建自定义属性

简介:BrettMcLaughlin 继续他的 JSP 最佳实践系列,这次他将用一个属性来扩展自定义的时间戳标 记( lastModified ),这个属性让页面作者可以选择他们自己的时间戳格式. 上一期的 JSP 最佳实践介绍了在JSP页面中使用自定义标记库的基础知识.在那一期可以学到如何定 义简单的标记并通过标记库描述符(tag library descriptor,TLD)让其他 JSP 作者可以使用该标记. 在这个星期,我们将以您已经知道的有关自定义标记的知识为基础.我们上次采用的实例标