JSP自定義標籤和生命週期

2021-09-24 01:48:18 字數 1710 閱讀 3678

自定義jsp標籤的意義:

便捷自己的開發,能夠根據自己的需求來調整標籤的功能,動態的實現一些功能,提高開發效率。

1. 自定義標籤的開發及使用步驟

1.1 建立乙個標籤助手類(繼承bodytagsupport)

標籤屬性必須與助手類的屬性對應、且要提供對應get/set方法

1.2 建立標籤庫描述檔案(tld),新增自定義標籤的配置

注:tld檔案必須儲存到web-inf目錄或其子目錄

jstl標籤庫

1.3 在jsp通過taglib指令匯入標籤庫,並通過指定字尾訪問自定義標籤

助手類每個標籤都要有它相應的助手類來幫助它實現功能,而助手類介紹繼承了bodytagsupport這個類的來描述這個標籤實現功能的乙個類。

在助手類的週期中,主要有3個方法來支撐它實行。

1、dostarttag() 執行到開始標籤時執行的動作

2、doafterbody() 介於內容之間執行的動作

3、doendtag() 執行到結束標籤時執行的動作

首先我們自定義建乙個c:if和c:foreach的a.tld檔案,用來描述我們的標籤

catches any throwable that occurs in its body and optionally

exposes it.

demo

zking.jsp.demotag

jspname of the exported scoped variable for the

exception thrown from a nested action. the type of the

scoped variable is the type of the exception thrown.

test

false

false

生命週期

我們能通過自定義標籤來實現功能,主要是依靠它的助手類來實現的,所以相對的自定義標籤也有它相對的一套方法流程,也就是我們的生命週期。

標籤的生命週期主要分為3條線:

一、由dostarttag開始,返回skip_body直接進入doendtag方法,返回skip_page或eval_page結束

二、由dostarttag開始,返回eval_body_include進入doafterbody方法,然後返回skip_body直接進入doendtag方法,返回skip_page或eval_page結束

三、由dostarttag開始,返回eval_body_include進入doafterbody方法,然後返回eval_body_again再次進入doafterbody,直到條件滿足,返回skip_body進入doendtag方法,返回skip_page或eval_page結束

public class demotag extends bodytagsupport 

public void settest(string test)

@override

public int dostarttag() throws jspexception

@override

public int doendtag() throws jspexception

@override

public int doafterbody() throws jspexception

}

JSP生命週期

jsp生命週期就是從建立到銷毀的整個過程,類似於servlet生命週期,區別在於jsp生命週期還包括將jsp檔案編譯成servlet。以下是jsp生命週期中所走過的幾個階段 編譯階段 servlet容器編譯servlet原始檔,生成servlet類 初始化階段 載入與jsp對應的servlet類,建...

JSP 生命週期

在本章中,我們將討論jsp的生命週期。理解jsp底層功能的關鍵是理解它們遵循的簡單生命週期。jsp生命週期定義為從建立到銷毀的整個過程。這類似於servlet生命週期,但需要額外的步驟才能將jsp編譯為servlet。以下是jsp遵循的路徑 當瀏覽器請求jsp時,jsp引擎首先檢查是否需要編譯頁面。...

JSP自定義標籤

1.jsp自定義標籤組成部分 web.xml載入標籤庫,標籤庫描述檔案 tld 標籤處理程式類。2.在自定義標籤的起始和結束標籤之間的部分為標籤體 body 3.分別介紹一下jsp自定義標籤的三個組成部分,以輸出經典的 helloworld為例。修改web.xml載入標籤庫 描述標籤庫檔案 tld ...