close

  Servlet我並沒研究那麼透徹,只是在踹Framework時,老需要設定一堆Filter和Listener,引發要整理的想法。這篇是我沒有親身實作過,直接參考他人的Blog剪貼^^|||。在這篇對岸Blog內容寫道,web.xml在Load的順序是:context-param -> listener -> filter -> servlet。Filter比較好懂,針對mapping的url-pattern進行上下其手,不,是過濾的動作,多個Filter的話,其載入順序是按<filter-mapping>先後。而Listener,根據良葛格的網站清楚說明,它是針對ServletContext、Session、Request這三個層級記憶體(內存)的初始化與銷毀,以及每個層級的Attribute的add和remove。算起來有六個Listener,而還有HttpSessionActivationListener用於序列化,及HttpSessionBindingListener用於attribute被設置時觸發,一共八個。當然Listener了解即可,已有很多優良實作,web Listener最有名莫過於Spring,這也是context-param會在Listener之前先被Load的原因。

  題外話,Context的譯詞大多是上下文、背景或內容。對初學者乍聽之下,還是有點摸不著邊,也難舉例。而我第一次接觸Context這單字是Perl,電腦天才唐鳳譯之為語境,起初以為和Spring的Context定義應該不同,後來覺得是相通的。語境在Perl的舉例是這樣,對你說:[吃飽沒?]這句話並沒主詞,但主詞是You顯而易見,同在一個語境。再以本Blog的技術文章為例,來參訪者大都要有一定中文程度及技術底子,語境是懂中文和懂程式,對其他人而言,懂中文不懂程式還是屬於火星文。而在兩個Context情形也有,和同事去吉隆坡出差,因為不懂英文需借助翻譯,等同Load兩個不同的Context,在程式裡交互運作,這一般專案系統比較不會用多Context。

arrow
arrow
    全站熱搜

    Jemmy 發表在 痞客邦 留言(0) 人氣()