JSP文件和JSP页面之间有什么区别吗?

时间:2014-06-25 14:43:29

标签: java jsp servlets

我正在阅读JSP Specification 2.1,关于JSP include指令和JSP include标签的章节,很多地方单独谈论“JSP文件”和“JSP页面”,如: enter image description here

它们之间有什么区别吗?

4 个答案:

答案 0 :(得分:1)

通常,当我们谈论jsp文件或jsp页面时没有区别,但LuiggiMendoza的一个很好的观察是:

  

JSP文件是JSP中存储在硬盘中的物理文件   page是从应用程序评估JSP文件的结果   服务器

但使用指令时存在差异:

<jsp:include page="page.html" />以及<%@include file="page.html"%>

你可以找到一篇有趣的帖子:

What is the difference between <jsp:include page = ... > and <%@ include file = ... >?

这里有一个很好的解释:

  

&lt;%@ include file =“filename”%&gt;是JSP include指令。在JSP   页面翻译时间,包含中给出的文件内容   指令在JSP包含的位置按原样“粘贴”   使用指令。然后将源JSP页面转换为java   servlet类。包含的文件可以是静态资源或JSP   页。通常JSP include伪指令用于包含头   横幅和页脚。 JSP编译过程就是源代码   仅当该页面已更改时,才会编译JSP页面。如果有的话   在包含的JSP文件中更改,源JSP文件将不会   编译,因此修改不会反映在   输出

     

&LT; jsp:include page =“relativeURL”/&gt;是JSP include动作元素。   jsp:include动作元素就像一个函数调用。在运行时,   包含的文件将被“执行”,结果内容将被执行   包含在soure JSP页面中。当包含的JSP页面是   在调用时,请求和响应对象都被传递为   参数。如果需要传递其他参数,那么   可以使用jsp:param元素。如果资源是静态的,则其内容   因为没有处理,所以会插入调用的JSP文件中   需要的。

答案 1 :(得分:1)

我相信以下就是这个意思 -

  • JSP文件 - 实际的.jsp文件,文件系统中的文件。
  • JSP页面 - 编译当前正在提供请求的.jsp文件的结果

请在此处查看此答案 - https://stackoverflow.com/a/14763794/738746

  
      
  1. include指令:

         

    <%@ include file="header.html" %>

  2.         

    静态:将文件属性值的内容添加到   翻译时的当前页面。该指令最初是   适用于静态布局模板,如HTML标题。

         
        
    1. <jsp:include>标准操作

           

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

    2.         

      动态:将页面属性值的内容添加到   请求时的当前页面。更适用于动态内容   来自JSP。

答案 2 :(得分:1)

JSP页面是指“顶级JSP文件”,如JSP.1.1.8中所定义:

  

由客户端直接调用或由另一个页面或servlet动态包含

虽然 JSP文件可能引用一个文件,例如,静态包含该文件。

为了说明您的引用,请考虑以下目录结构:

  • DIR /
    • file1.jsp
    • file2.jsp
  • file2.jsp
  • 的index.jsp

假设您的index.jsp中有<%@include file="dir/file1.jsp" %>。如果你将<%@include file="file2.jsp" %>放在dir / file1.jsp中,它将包含dir / file2.jsp,而如果放入<jsp:include page="file2.jsp" />,它将包括index.jsp旁边的file2.jsp。

答案 3 :(得分:1)

可以从多个 JSP文件构建单个 JSP页面

因此JSP页面与JSP文件不同。