JSP Include 檔案方式

來源:互聯網
上載者:User
兩種方式

JSP include 檔案有兩種方式:

1.  使用include 標籤,像

   <%@ include file="include.jsp" %>

2. 使用jsp:include 標籤,像

    <jsp:include page="include.jsp" flush="true">
         <jsp:param name="age" value="32" />  
    </jsp:include> 

使用的差異在於:

方式1 比較適合引入一些靜態,比較少改動的內容;比如網頁的header 和 footer 的部分。

方式2 比較適合於引入改動較多的頁面。

執行個體兩個jsp: main.jsp 和 include.jsp
include.jsp 的內容都是一樣:
<!-- include.jsp by oscar999--><%@ page contentType="text/html;charset=UTF-8" %><%@ page language="java" import="java.util.*" %>  ===begin include jsp===      <p>Include JSP: </p> <p>CurDate <%=new Date()%></p> <%  String str = request.getParameter("age");%>age:<%=str%>  <br>===end include jsp=== 

main.jsp 匯入方式不同:
方式1:

<!-- main.jsp by oscar999--><%@ page contentType="text/html;charset=UTF-8" %><html>    <body>      <div>      ===begin main jsp===       <p> Main JSP request:  </p>        ===end main jsp===     </div>    <%@ include file="include.jsp" %>      </body>  </html>

方式二:

<!-- main.jsp by oscar999--><%@ page contentType="text/html;charset=UTF-8" %><html>    <body>      <div>      ===begin main jsp===       <p> Main JSP request:  </p>        ===end main jsp===     </div>    <jsp:include page="include.jsp" flush="true">     <jsp:param name="age" value="32" />      </jsp:include>        </body>  </html>
差別的實質

JSP啟動並執行實質是最終都會被web server 轉成servlet 來執行。
tomcat 轉化的.java 檔案位於work/Catalina/local 的相關目錄下。
比較一下兩者的差別:
方式1產生後的Java的include部分:

      out.write("===begin include jsp===      \r\n");      out.write("<p>Include JSP: </p> \r\n");  String str = request.getParameter("age");      out.write("\r\n");      out.write("age:\r\n");      out.print(str);      out.write("  <br>\r\n");      out.write("\r\n");      out.write("===end include jsp=== ");

而方式2如下:

org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "include.jsp" + (("include.jsp").indexOf('?')>0? '&': '?') + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("age", request.getCharacterEncoding())+ "=" + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("32", request.getCharacterEncoding()), out, true);

可以看出方式1是直接輸出,而方式二就是需要進行解釋。

補充

開發的時候可能會給include的jsp 起一個比較容易區分的尾碼名, 比如  .incjsp;
使用方式2 匯入的話,使用Chrome 和Firefox 瀏覽器會有問題。會把include.incjsp 的源碼檔案輸出,而不是產生後的html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.