java自定義標籤

不設限發表於2011-12-15
java自定義標籤的原理:
其實java的自定標籤的原理很簡單,其實就跟web.xml原理是一樣的,只要你知道了servlet的原理
你就可以理解自定義標籤的原理了,servlet的配置的時候,需要配置兩個一個是<servlet>另外是
<servlet-mapping>這樣做的目的是可以通過mapping獲取servlet-name,之後根據servlet-name
獲取<servlet-class>,根據class位置就tomcat就可以進行呼叫了

那這裡的自定義標籤也完全是一樣的思想,只不過自定義標籤它定義不是在web.xml裡面而是定義在
了一個tld(tag library definition)檔案裡面,這樣做的目的是為了便於管理,要不然web.xml就太大了.

在servlet中我們通過上述的步驟可以讓tomcat實現對我們的servlet類的呼叫,那麼自定義標籤也是
它有名字,有class位置,同時可以指定引數的值,其實servlet也可以指定初始值的原理完全一致,一個是
在web.xml裡面取出值,然後裝配到servlet裡面去,一個是定義在jsp裡面,在jsp被編譯的時候,tomcat
同樣會把這個值傳遞到後臺的tag類裡面的.

而jsp頁面跟tld檔案的關聯就是通過調查詢自定義標籤的prefix屬性(實際上這個屬性可以任意的設定
它的作用就是區別jsp頁面上其他的標籤用的,但是通常設定為標籤庫預設的最好,這樣不容易混淆,為什
麼說可以隨便的設定呢?因為當你引入標籤的時候,先寫prefix這個時候去配置uri的時候,程式不會自動
精確的提示你你將要引入什麼標籤庫,如果說是一一對應的話,那麼肯定會精確的匹配到你要的標籤庫的)
,然後根據它裡面的uri值,或者是tagdir屬性來獲取tld檔案的位置,再讀取它裡面的內容,讓jsp裡面使用的
標籤和tld裡面所定義的標籤進行匹配,然後的過程就是跟web.xml呼叫servlet一模一樣了。

相關文章