Jsp 標籤

1、JSP標籤介紹

  JSP標籤也稱之爲Jsp Action(JSP動做)元素,它用於在Jsp頁面中提供業務邏輯功能,避免在JSP頁面中直接編寫java代碼,形成jsp頁面難以維護。java

2、JSP經常使用標籤

  jsp的經常使用標籤有如下三個:web

  • <jsp:include>標籤express

  • <jsp:forward>標籤服務器

  • <jsp:param>標籤架構

2.1 <jsp:include>標籤

  <jsp:include>標籤用於把另一個資源的輸出內容插入進當前JSP頁面的輸出內容之中,這種在JSP頁面執行時的引入方式稱之爲動態引入。 app

語法:
jsp

<jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
  • page屬性用於指定被引入資源的相對路徑,它也能夠經過執行一個表達式來得到。url

  • flush屬性指定在插入其餘資源的輸出內容時,是否先將當前JSP頁面的已輸出的內容刷新到客戶端。spa

2.1.1 <jsp:include>標籤與@include指令的區別

    <jsp:include>標籤是動態引入, <jsp:include>標籤涉及到的2個JSP頁面會被翻譯成2個servlet,這2個servlet的內容在執行時進行合併。 動態包含就是指先將各個頁面分別處理,處理完以後再將處理後的結果包含進來。.net

 而include指令是靜態引入,涉及到的2個JSP頁面會被翻譯成一個servlet,其內容是在源文件級別進行合併。靜態包含是將所有內容包含進來以後,再進行處理。

注:無論是<jsp:include>標籤,仍是include指令,它們都會把兩個JSP頁面內容合併輸出,因此這兩個頁面不要出現重複的HTML全局架構標籤,不然輸出給客戶端的內容將會是一個格式混亂的HTML文檔。

2.1.2 *.jspf擴展名文件在 <jsp:include>、@include 和 c:import 中的區別

    JSP規範建議使用.jspf(JSP fragments)做爲靜態引入文件的擴展名。

    把一個JSP文件命名爲jspf擴展名,而後include到另外一個jsp文件中的,發現只有用」@include「指令的時候,jspf文件的內容纔會被解析並執行其中的jsp指令和tag,而使用」jsp:include「和JSTL的」c:import「都沒有用,jspf文件被看成純文本文件處理了。

解決辦法一:修改web.xml文件,添加對擴展名爲*.jspf文件的映射

    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <!-- 讓jsp擴展名一樣成爲JSP Servlet處理的文件。 -->
        <url-pattern>*.jsp</url-pattern>
        <!-- 讓jspf擴展名一樣成爲JSP Servlet處理的文件。-->
        <url-pattern>*.jspf</url-pattern>
    </servlet-mapping>

2.2 <jsp:forward>

<jsp:forward>標籤用於把請求轉發給另一個資源。 (服務器端跳轉

語法:

<jsp:forward page="relativeURL | <%=expression%>" />

2.3 <jsp:param>

    當使用<jsp:include>和<jsp:forward>標籤引入或將請求轉發給其它資源時,可使用<jsp:param>標籤向這個資源傳遞參數。

eg:

    <jsp:include page="relativeURL | <%=expression%>">
        <jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
    </jsp:include>
相關文章
相關標籤/搜索