虽然 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 及更高版本,将其设置为关闭。
分享到:
相关推荐
在Java Web开发中,`jsp:include`和`<jsp:include>`标签是两种常见的页面包含机制,它们用于将一个或多个动态或者静态资源合并到一个JSP页面中。这两种方式虽然看似相似,但有着本质的区别,理解它们的用法和区别...
在JSP中,`<jsp:include>`标签提供了比`<%@include file="..."%>`伪指令更灵活的控制动态内容的机制。`<jsp:include>`标签会每次请求时都检查被包含文件的变化,确保内容是最新的,即使内容是动态生成的。这使得`jsp...
在JavaServer Pages (JSP) 技术中,`<jsp:include>` 和 `<%@ include %>` 是两个用于页面组合的指令,它们虽然都用于将一个或多个文件的内容插入到主页面中,但它们的工作机制和使用场景有所不同。理解这两者的区别...
总结来说,jsp:include动作提供了更为灵活的动态内容包含方式,特别是在需要实时更新内容的情况下。它通过在运行时包含其他JSP页面来保证内容的时效性,而不是依赖于浏览器的缓存。这一点对于开发需要频繁更新数据的...
标题“j2EE15:jsp04,session的访问控制,分页查询,page include”涉及了四个关键的Java Web开发概念。首先,我们来深入理解这些概念: 1. **Session的访问控制**: 在Web应用中,session是用于跟踪用户状态的一种...
源码是本书内容的实践部分,帮助读者通过动手操作来理解并掌握JSP编程的核心概念和技术。 1. **JSP概述**: JSP是一种动态网页技术,它允许开发人员将HTML、XML或其他标记语言与Java代码混合在一起,以创建交互式...
**JSP动态网站开发实践教程概述** JSP(JavaServer Pages)是一种由Sun Microsystems公司推出的动态网页技术,它允许开发者将HTML、XML或其他标记语言与Java代码结合起来,以创建能够处理用户请求并生成动态响应的...
动态Include通常使用`<jsp:forward>` 标签,但这不是真正的Include,而是页面的转发操作。它会停止当前页面的处理,并将请求转发到指定的URL,然后处理那个页面的结果。 ```jsp <jsp:forward page="relativePath...
JSP动作利用XML语法格式的标记来控制Servlet引擎的行为。利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。 JSP动作包括: jsp:include:在页面被请求的时候...
《JSP动态网站开发实践教程》是...通过《JSP动态网站开发实践教程》的学习,你将能够熟练地使用JSP开发动态Web应用程序,为你的Web开发生涯打下坚实的基础。教程的源代码提供了丰富的实例,是提升实战技能的宝贵资源。
这意味着 `<jsp:include page=” ” flush=”true”/>` 可以在每次请求时动态地包含其他 JSP 文件,而不是在翻译阶段包含静态内容。 例如,在 test.jsp 文件中,我们可以使用 `<jsp:include page=”date.jsp” ...
4. **JSP动作标签**:讲解JSP的动作标签,如jsp:include、jsp:forward、jsp:param等,以及它们在页面控制和数据传递中的应用。 5. **EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)**...
10. JSP最佳实践: - 将业务逻辑移出JSP,放入Servlet或JavaBean。 - 使用EL和JSTL减少脚本标签的使用。 - 分离表现层与逻辑层,提高代码可维护性。 通过全面理解和掌握这些知识点,考生能够更好地应对JSP相关的...
在Java Web开发中,`<jsp:include>...通过这个实验,学生不仅能掌握`<jsp:include>`动作的使用,还能了解前后端交互的基本流程,以及如何利用JSP技术来实现动态网页。这将为他们进一步学习Java Web开发打下坚实的基础。
JSP 中 Include 指令静态导入和动态导入的区别详解 JSP 中的 Include 指令可以实现静态导入和动态导入两种方式。静态导入和动态导入是 JSP...了解静态导入和动态导入的区别对于正确使用 JSP 的 Include 指令非常重要。
JSP页面由静态内容和动态内容两部分组成,通过`<% %>`, `<jsp:*>` 和 `${}` 等语法结构进行交互。 2. **JSP生命周期**:JSP页面被首次请求时,会被转换成一个JavaServlet,然后编译、加载到服务器中,最后执行。JSP...
**JSP(Java Server Pages)**是Java平台上用于创建动态网页的一种技术,它结合...通过不断学习和实践,我们可以熟练掌握JSP的基本语法,并逐步深入理解其工作原理和高级特性,从而更好地构建动态、高效的Web应用程序。
**JSP动态网站开发技术与实践** 在当前的互联网环境中,动态网站开发是不可或缺的一部分,而JavaServer Pages(JSP)技术则是实现这一目标的重要工具。JSP是一种服务器端脚本语言,允许开发者创建和运行基于Java...
6. TOMCAT服务器的配置和使用:了解如何配置TOMCAT6.0以运行JSP项目,包括设置classpath、web.xml配置以及发布应用。 这个实验旨在通过实践让你深入理解JSP自定义标签的使用,提高你开发动态网页的能力。通过完成这...