`

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

 
阅读更多

虽然 include 非常适于将静态内容并入 Web 页面,但对于动态内容却不尽如人意。在试图重新装入高速缓存文件时发现了这一问题。与大多数页眉文件及页脚文件不同,动态内容变化频繁,必须时刻更新。

 

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

 

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

 

jsp:include 标记

jsp:include 只不过是一个不同于 include 的伪指令而已。 jsp:include 的优点在于:它 总是会检查所含文件中的变化。过一会儿我们将研究这一新标记的工作方式。但首先看一下两种 include 各自的代码,以便能够看到二者之间的异同。

清单 2 显示了一个简单页面,它使用了原始的 JSP include 伪指令。

<![CDATA[
<%@ page language="java" contentType="text/html" %>
<html>
     <head>
      <title>JSP include element test</title>
     </head>
     <body>
      This content is statically in the main JSP file.<br />
      <%@ include file="included.html" %>
     </body>
</html>
]]>

 清单 3 是同一个页面,只不过这里转成使用 jsp:include 标记。

<![CDATA[
<%@ page language="java" contentType="text/html" %>
<html>
     <head>
      <title>JSP include element test</title>
     </head>
     <body>
      This content is statically in the main JSP file.<br />
      <jsp:include page="included.html" flush="true" />
     </body>
</html>
]]>
 

flush 属性

您可能已注意到 jsp:include 代码示例中的 flush 属性。顾名思义, flush 指示在读入包含内容之前是否清空任何现有的缓冲区。JSP 1.1 中需要 flush 属性,因此,如果代码中不用它,会得到一个错误。但是,在 JSP 1.2 中,flush 属性缺省为 false。由于清空大多数时候不是一个重要的问题,因此,我的建议是:对于 JSP 1.1,将 flush设置为 true;而对于 JSP 1.2 及更高版本,将其设置为关闭。

分享到:
评论

相关推荐

    jsp:include与include实探

    在Java Web开发中,`jsp:include`和`&lt;jsp:include&gt;`标签是两种常见的页面包含机制,它们用于将一个或多个动态或者静态资源合并到一个JSP页面中。这两种方式虽然看似相似,但有着本质的区别,理解它们的用法和区别...

    用jsp:include控制动态内容的方法.docx

    在JSP中,`&lt;jsp:include&gt;`标签提供了比`&lt;%@include file="..."%&gt;`伪指令更灵活的控制动态内容的机制。`&lt;jsp:include&gt;`标签会每次请求时都检查被包含文件的变化,确保内容是最新的,即使内容是动态生成的。这使得`jsp...

    JSP:include和include指令区别

    在JavaServer Pages (JSP) 技术中,`&lt;jsp:include&gt;` 和 `&lt;%@ include %&gt;` 是两个用于页面组合的指令,它们虽然都用于将一个或多个文件的内容插入到主页面中,但它们的工作机制和使用场景有所不同。理解这两者的区别...

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

    总结来说,jsp:include动作提供了更为灵活的动态内容包含方式,特别是在需要实时更新内容的情况下。它通过在运行时包含其他JSP页面来保证内容的时效性,而不是依赖于浏览器的缓存。这一点对于开发需要频繁更新数据的...

    j2ee15:jsp04,session的访问控制,分页查询,page include·

    标题“j2EE15:jsp04,session的访问控制,分页查询,page include”涉及了四个关键的Java Web开发概念。首先,我们来深入理解这些概念: 1. **Session的访问控制**: 在Web应用中,session是用于跟踪用户状态的一种...

    jsp网络编程:从基础到实践 源码

    源码是本书内容的实践部分,帮助读者通过动手操作来理解并掌握JSP编程的核心概念和技术。 1. **JSP概述**: JSP是一种动态网页技术,它允许开发人员将HTML、XML或其他标记语言与Java代码混合在一起,以创建交互式...

    JSP动态网站开发实践教程

    **JSP动态网站开发实践教程概述** JSP(JavaServer Pages)是一种由Sun Microsystems公司推出的动态网页技术,它允许开发者将HTML、XML或其他标记语言与Java代码结合起来,以创建能够处理用户请求并生成动态响应的...

    jsp的Include方式

    动态Include通常使用`&lt;jsp:forward&gt;` 标签,但这不是真正的Include,而是页面的转发操作。它会停止当前页面的处理,并将请求转发到指定的URL,然后处理那个页面的结果。 ```jsp &lt;jsp:forward page="relativePath...

    十三、JSP动作

    JSP动作利用XML语法格式的标记来控制Servlet引擎的行为。利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。 JSP动作包括: jsp:include:在页面被请求的时候...

    jsp动态网站开发实践教程

    《JSP动态网站开发实践教程》是...通过《JSP动态网站开发实践教程》的学习,你将能够熟练地使用JSP开发动态Web应用程序,为你的Web开发生涯打下坚实的基础。教程的源代码提供了丰富的实例,是提升实战技能的宝贵资源。

    jsp的include的两种用法

    这意味着 `&lt;jsp:include page=” ” flush=”true”/&gt;` 可以在每次请求时动态地包含其他 JSP 文件,而不是在翻译阶段包含静态内容。 例如,在 test.jsp 文件中,我们可以使用 `&lt;jsp:include page=”date.jsp” ...

    jsp动态网站设计项目教程 张兴科

    4. **JSP动作标签**:讲解JSP的动作标签,如jsp:include、jsp:forward、jsp:param等,以及它们在页面控制和数据传递中的应用。 5. **EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)**...

    最全的靠谱JSP考试题复习题试题(有10多套题)

    10. JSP最佳实践: - 将业务逻辑移出JSP,放入Servlet或JavaBean。 - 使用EL和JSTL减少脚本标签的使用。 - 分离表现层与逻辑层,提高代码可维护性。 通过全面理解和掌握这些知识点,考生能够更好地应对JSP相关的...

    Java Web 实验四 掌握<jsp:include>动作的使用

    在Java Web开发中,`&lt;jsp:include&gt;...通过这个实验,学生不仅能掌握`&lt;jsp:include&gt;`动作的使用,还能了解前后端交互的基本流程,以及如何利用JSP技术来实现动态网页。这将为他们进一步学习Java Web开发打下坚实的基础。

    jsp中include指令静态导入和动态导入的区别详解.docx

    JSP 中 Include 指令静态导入和动态导入的区别详解 JSP 中的 Include 指令可以实现静态导入和动态导入两种方式。静态导入和动态导入是 JSP...了解静态导入和动态导入的区别对于正确使用 JSP 的 Include 指令非常重要。

    JSP应用开发与实践

    JSP页面由静态内容和动态内容两部分组成,通过`&lt;% %&gt;`, `&lt;jsp:*&gt;` 和 `${}` 等语法结构进行交互。 2. **JSP生命周期**:JSP页面被首次请求时,会被转换成一个JavaServlet,然后编译、加载到服务器中,最后执行。JSP...

    JSP基本语法及由浅入深

    **JSP(Java Server Pages)**是Java平台上用于创建动态网页的一种技术,它结合...通过不断学习和实践,我们可以熟练掌握JSP的基本语法,并逐步深入理解其工作原理和高级特性,从而更好地构建动态、高效的Web应用程序。

    jsp 动态网站开发技术与实践

    **JSP动态网站开发技术与实践** 在当前的互联网环境中,动态网站开发是不可或缺的一部分,而JavaServer Pages(JSP)技术则是实现这一目标的重要工具。JSP是一种服务器端脚本语言,允许开发者创建和运行基于Java...

    动态网页JSP实验:标签

    6. TOMCAT服务器的配置和使用:了解如何配置TOMCAT6.0以运行JSP项目,包括设置classpath、web.xml配置以及发布应用。 这个实验旨在通过实践让你深入理解JSP自定义标签的使用,提高你开发动态网页的能力。通过完成这...

Global site tag (gtag.js) - Google Analytics