getParameter和getAttribute區別(超詳細分析)
(一)對getParameter過程,如下圖:
(二)對getAttribute過程,如下圖
兩者區別:
①getParameter()獲取的是客戶端設置的數據。 getAttribute()獲取的是服務器設置的數據。
②getParameter()永遠返回字符串 getAttribute()返回值是任意類型
既然parameter和attribute都是傳遞參數,為什么不直接使用parameter呢?
①服務器端不能通過setParameter(key, value)來添加參數,因為沒有這個函數 所以如果需要在服務器端進行跳轉,並需要想下個頁面發送新的參數時,則沒法實現。但是Attribute可以,可以通過 setAttribute(),將值放入到request對象,然后在其他頁面使用getAttribute獲取對應的值,這樣就達到一次請求可以在多個頁面共享一些對象信息
②parameter返回值是字符串,意味着不能傳遞其他的對象,如Map,List,但是attribute則可以存放任意類型的Java對象