JSP指令和JSP動作

來源:互聯網
上載者:User

標籤:style   blog   class   c   java   ext   

JSP指令和JSP動作

一、JSP page指令
   在JSP中,主要有3種類型的指令:page、include、taglib。page指令允許我們通過類的匯入、serlvet超類的定製、內容類型的設定、以及諸如此類的事物來控制servlet的結構。page指令可以放在文檔中任何地方,可以定義下面這些大小寫敏感 屬性:import、contentType、pageEncoding、session、isELIgnored(只限JSP2.0)、buffer、autoFlush、info、errorPage、isErrorPage、isThreadSage、language和extends。

import
    <%@ page import="package.class1,...,package.classN" %>
    import是page的屬性中唯一允許在同一文檔中多次出現的屬性。儘管page指令可以出現在文檔中的任何地方,但一般不是將import語句放在文檔頂部附近,就是放在相應的包首次使用之前。

contentType和pageEncoding
    <%@ page contentType="MIME-TYPE" %>
    和下面的scriptlet所起到的作用基本相同。
    <% response.setContentType("MIME-TYPE"); %>
    兩者的區別有兩點:
    1.response.setContentType使用明確的Java代碼,這是一些開發人員力圖避免的使用方式。
    2.response.setContentType能夠有條件地調用,而page指令不能。條件性地設定內容的類型主要用在同一內容能夠以多種不同的形式進行顯示的情況下。
    常用的MIME類型:
    application/msword            Word文檔
    application/pdf               PDF檔案
    application/vnd.ms-excel      Excel試算表
    application/vnd.ms-powerpoint PowerPoint簡報
    text/html
    image/gif
    如果希望同時更改內容的類型和字元集,可以使用下面的語句:
    <%@ page contentType="someMimeType; charset=someCharacterSet" %>
    但是如果只想改變字元集,使用pageEncoding屬性更為簡單。
    日語JSP頁面使用下面的語句:
    <%@ page pageEncoding="Shift_JIS" %>

errorPage和isErrorPage屬性
     errorPage屬性指定頁面專用的錯誤頁面,如果要為整個WEB應用指定錯誤頁面,或者為應用中不同類型的錯誤指定錯誤處理頁面,則需要使用web.xml中的error-page元素。
     <%@ page errorPage="Relative URL" % >
     <%@ page isErrorPage="true" %>

二、jsp:include 動作和 include指令
    <jsp:include page="relative-path-to-resource"/>
    <%@ include file="Relative URL"%>

jsp:include 動作和 include指令根本性的區別在於被調用的時間不同
jsp:include 動作,在請求期間將其他頁面的輸出包含進來。包含的內容為頁面的輸出。
include指令,在首頁面轉換成servlet之前,將JSP代碼插入其中。包含的內容為檔案的實際內容。

jsp:include 動作,在被包含頁面發生更改時,無需對首頁面做出修改。
jsp:include 動作和 include指令根本性的區別在於被調用的時間不同

jsp:include 動作注意事項:不要將完整的HTML文檔作為被包含頁面,諸如DOCTYPE,BODY等標籤,被包含頁面中只能含有適合於出現在檔案插入點處的HTML標籤。
     對於檔案包含,應該儘可能地使用jsp:include動作。僅在所包含的檔案中定義了首頁面要用到的欄位和方法,或者所包含的檔案設定了首頁面的響應前序時,才應該使用include指令(<%@ include ....%>)

include指令提供的其他功能:

    include指令允許所包含的檔案中含有影響首頁的JSP代碼,比如響應前序的設定和欄位的定義。例如,假定snippet.jsp含有下面的代碼:
        <%! int accessCount = 0; %>
    這種情況下,可以在首頁中執行下面的任務:
    <%@ include file="snippet.jsp"%>
    <%= accessCount++ %>
當然,使用jsp:include時這是不可能的,因為accessCount變數未定義;首頁面不能成功的轉換成servlet、

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.