`

JSP之 @include VS jsp:include

    博客分类:
  • JSP
阅读更多
第一篇

对于可以重复使用的一段代码,
1、使用 <%@include file="reuse.html"%> 在jsp中进行引用。
2、使用 <jsp:include page="reuse.html"/> 在jsp中进行引用。

reuse.html 代码:
<html>
<head>
    <title>reusable</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
    <img src="candle.gif" height="100" width="50"/> <br />
    <p><b>As the candle burns,so do I</b></p>
</body>


分别访问JSP后,你会得到相同的结果。
然后开始想:这两种引用文件的方式有何不用?

当你查看 jsp 被编译后而生成的 servlet 文件,你会看到不同。

1、使用 <%@include 指令时,所看到编译后的的文件:
out.write("<html>\r\n");
out.write("    <head>\r\n");
out.write("        <title>reusable</title>\r\n");
out.write("        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n");
out.write("    </head>\r\n");
out.write("    <body>\r\n");
out.write("        <img src=\"candle.gif\" height=\"100\" width=\"50\"/> <br />\r\n");
out.write("        <p><b>As the candle burns,so do I</b></p>\r\n");
out.write("    </body>\r\n");
out.write("</html>\r\n");


2、使用 <jsp:include 标签时,所看到编译后的的文件:
org.apache.jasper.runtime
    .JspRuntimeLibrary.include(request, response, "reusable.html", out, false);


现在可以看出:

include 指令引入的是原文件的本身到当前的 jsp 中。
所以称作“静态引用” —— 原文件是什么样,引入时就是什么样。

include 标签是执行了方法的调用(invoke call jsp method),
然后传递了 request,response,out 参数过去。
所以称作“动态引用” —— 引入的是 jsp 文件执行过程中的结果。



所引用的文件,对于变量的范围:
<%@include 指令:的方式,通常把一些常用的全局变量,引入到jsp文件中。
<jsp:include 标签:引用 jsp,可以避免 jsp 作用域范围的变量的命名冲突。


所引用的 JSP 文件,对于只是为了输出单纯的文本:
两种引用方式没有任何区别。




第二篇
Reusing Content in JSP Pages
在JSP 中重复使用相同的内容或代码

方法:
- 使用 @include 指令
- 使用 jsp:include 标签


@include 引用的内容,会与 jsp 一起被编译成 一个 servlet class
这里只有一个 jsp class

引用

The include directive is processed when the JSP page is translated into a servlet class. The effect of the directive is to insert the text contained in another file (either static content or another JSP page) into the including JSP page. You would probably use the include directive to include banner content, copyright information, or any chunk of content that you might want to reuse in another page. The syntax for the include directive is as follows:

<%@ include file="filename" %>
For example, all the Duke’s Bookstore application pages could include the file banner.jspf, which contains the banner content, by using the following directive:

<%@ include file="banner.jspf" %>
Another way to do a static include is to use the prelude and coda mechanisms described in Defining Implicit Includes. This is the approach used by the Duke’s Bookstore application.

Because you must put an include directive in each file that reuses the resource referenced by the directive, this approach has its limitations. Preludes and codas can be applied only to the beginnings and ends of pages. For a more flexible approach to building pages out of content chunks, see A Template Tag Library.




jsp:include 引用的是 jsp 编译完成后,jsp 执行后的结果。
这里会有多个 jsp class
jsp 处于不用的上下文环境,注意参数的传递。

引用

The jsp:include element is processed when a JSP page is executed. The include action allows you to include either a static or a dynamic resource in a JSP file. The results of including static and dynamic resources are quite different. If the resource is static, its content is inserted into the calling JSP file. If the resource is dynamic, the request is sent to the included resource, the included page is executed, and then the result is included in the response from the calling JSP page. The syntax for the jsp:include element is:

<jsp:include page="includedPage" />
The hello1 application discussed in Packaging Web Modules uses the following statement to include the page that generates the response:

<jsp:include page="response.jsp"/>








-
引用请注明:
原文出处:http://lixh1986.iteye.com/blog/2379902




-

引用:

http://docs.oracle.com/javaee/5/tutorial/doc/bnajb.html

what-is-the-difference-between-jspinclude-page-and-include-file
https://stackoverflow.com/questions/7879906









-
分享到:
评论

相关推荐

    JSP:include和include指令区别

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

    jsp:include与include实探

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

    jsp的include的两种用法

    相比之下,`&lt;jsp:include page=” ” flush=”true”/&gt;` 是 JSP 的动作元素,它可以在运行时将指定的 JSP 文件包含到当前 JSP 文件中。这个过程发生在执行阶段,而不是翻译阶段。这意味着 `&lt;jsp:include page=” ” ...

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

    nt test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;This content is statically in the main JSP file. &lt;jsp:include page="included.html"/&gt;&lt;/body&gt;&lt;/html&gt;]]&gt;)正如你所见,清单2使用了传统的`&lt;%@include file="..."%&gt;`伪指令来包含...

    jsp的Include方式

    总结,JSP的`Include`方式是构建复杂网站架构的关键技术之一,通过合理利用静态和动态Include,开发者能够创建出高效且易于维护的Web应用。在实际工作中,理解并熟练掌握这两种方式的差异和应用场景,对于提升开发...

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

    在Java Web开发中,`&lt;jsp:include&gt;`动作是一个非常重要的元素,用于动态地将一个页面包含到另一个页面中。这个动作使得开发者可以实现页面的重用和模块化设计,提高代码的可维护性。本实验的目标是让学生掌握`&lt;jsp:...

    jsp中两种包含关系(include动作和include指令)的区别

    在JavaServer Pages (JSP) 技术中,存在两种包含关系:`&lt;jsp:include&gt;` 动作和 `jsp:include` 指令。它们都是用来将一个页面的内容插入到另一个页面中的,但它们的工作方式和适用场景有所不同。 **1. `&lt;jsp:include...

    jsp基础测试 期末考试

    考虑下面JSP文件代码片断: &lt;jsp:include page=”test2.jsp”&gt; &lt;jsp:param name=”username” value=”accp”/&gt; &lt;/jsp:include&gt; 以下( )代码片断放置在test2.jsp中不会导致错误。

    JSP中include指令和include行为的区别

     jsp:include page=” ” flush=”true”/&gt; 前者是指令元素、后者是行为元素。具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题。下面一起来看看吧。 通常当应用程序中所有的...

    jsp include文件时的一个乱码解决方法.docx

    JSP Include 文件时的一个乱码解决方法 在 JSP 开发中,include 文件是一个常用的技术手段,可以将公共的代码或者组件包含到不同的页面中,以提高代码的复用性和维护性。然而,在使用 JSP include 文件时,经常会...

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

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

    Java Web初级编程:JSP 页面元素.pptx

    Java Web 初级编程 JSP 页面元素 JAVA Web 编程是当前 Web 开发中非常重要的一...Page 指令和 Include 指令是 JSP 页面元素中非常重要的两种指令,它们用于在 JSP 页面中指定不同的指令,以便控制 JSP 页面的行为。

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

    JSP 中 Include 指令静态导入和动态导入的区别详解 JSP 中的 Include 指令可以实现静态导入和动态导入两种方式。静态导入和动态导入是 JSP 中 Include 指令的两种不同的实现方式,它们之间有着明显的区别。 静态...

    include 两种用法的区别

    ### JSP Include 两种用法的区别 在JSP(JavaServer Pages)开发中,`include`指令被广泛用于将一个JSP页面的内容嵌入到另一个JSP页面中。这种技术可以提高代码的重用性、简化维护过程并有助于实现更灵活的设计。在...

    jsp include 乱码问题的解决

    在JSP中,`&lt;jsp:include&gt;`标签是用于在页面间进行内容包含的,但有时可能会遇到“乱码”问题,这通常涉及到字符编码的处理。本文将详细解析JSP `include` 乱码问题的成因以及解决方法。 首先,我们要理解乱码产生的...

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

    从技术角度上,jsp:include动作和include指令的主要区别在于:jsp:include是在运行时动态地包含另一个文件,而include指令是在JSP页面被转换成Servlet的时候静态地包含另一个文件。因此,jsp:include动作支持动态...

    十三、JSP动作

    JSP动作包括: jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:寻找或者实例化一个JavaBean。 jsp:setProperty:设置JavaBean的属性。 jsp:getProperty:输出某个JavaBean的属性。 jsp:forward:把...

    springMVC使用jsp:include嵌入页面的两种方法(推荐)

    本文将详细介绍两种使用`jsp:include`标签在Spring MVC中嵌入页面的方法。 1. 静态嵌入子页面 静态嵌入是通过`&lt;%@ include file="..." %&gt;`语法实现的。这种方法在JSP页面被转换成Servlet源代码时就已经处理,所以...

    JSP下动态INCLUDE与静态INCLUDE的区别分析

     用jsp:include动作实现 &lt;jsp include page=”included.jsp” flush&gt;它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE   用include伪码实现,定不会检查所含文件的变化,...

    jsp_include_demo.rar_DEMO

    【JSP包含指令(Include Tag)详解】 JSP(JavaServer Pages)是Java技术在Web开发中的一个重要组成部分,它允许开发者将HTML、CSS、JavaScript等静态内容与Java代码结合在一起,实现动态网页的生成。在JSP中,`...

Global site tag (gtag.js) - Google Analytics