天天看點

随筆03:jsp中getAttribute方法和findAttribute方法的差別

1、getAttribute和findAttribute的差別

1.1、作用域說明

在jsp中,有4個作用域,分别為:

  • page:目前頁面有效
  • request:一次請求有效,即從http請求到伺服器處理結束,傳回響應的整個過程,存放在HttpServletRequest對象中。在這個過程中可以使用forward方式跳轉多個jsp。在這些頁面裡你都可以使用這個變量。
  • session:一次會話有效,隻要頁面不關閉就一直有效

    (或者直到使用者一直未活動導緻會話過期,預設session過期時間為30分鐘,或調用HttpSession的invalidate()方法)

    。存放在HttpSession對象中
  • application:是程式全局變量,對每個使用者每個頁面都有效。存放在ServletContext對象中。它的存活時間是最長的,如果不進行手工删除,它們就一直可以使用

1.2、getAttribute和findAttribute的差別

他們的主要差別在于,getAttribute的作用域僅為page,如果沒有找到就傳回null,而findAttribute則是從小到大不斷去找,在page中沒有找到就去request中,然後依次增加範圍,如果沒有找到就傳回null