2011-10-11 99 views
1

我問這個問題,因爲在我的工作的實踐評估中,對於JSP中具有「請求」範圍的對象提出了一個問題。這裏的問題,告訴我哪一個是正確的答案:請求處理完成後,可以訪問範圍爲「請求」的對象嗎?

以下哪項陳述的關於JSP一個 請求的範圍是真的嗎?

•具有請求範圍的對象可以從處理創建它們的相同請求的頁面訪問。

•處理請求後,所有對象的引用都將被釋放;特別是,如果請求被轉發到同一運行時的資源,則該對象仍然可以訪問。

•引用與請求範圍的對象被存儲在請求對象

•以上的。

答案是「以上都是」對不對?然而,在練習測試中給出的答案說這只是第一個。但是,如果您在某個其他JSP或servlet中轉發或包含請求,那麼這個範圍的對象仍可訪問嗎?而且,具有「請求」範圍的對象是否存儲在「請求對象」(即ServletRequest或其派生類之一)中呢?

是否還有其他東西我缺少,例如請求範圍的對象在請求完成處理後仍可訪問一段時間?或者,這裏有錯誤嗎?

回答

1

我認爲練習測試的答案是錯誤的。諸如bean 之類的對象是存儲在請求中的,並且可以用HttpRequest對象的getAttribute方法訪問。因此這些對象一直存在直到請求結束。

來源:HttpRequest/ServletRequest javadoc以及David Parsons在第10章中使用XML和Java的動態Web應用程序開發,第10章有一個使用請求範圍的bean並轉發的示例。

+0

是的,你說得對。我正在離開我的僱主,但他們的測試令人討厭。如果他們想測量員工的能力,爲什麼不把這個外包給另一家公司?就像他們有一個人自己想出了這些測試一樣,他在這裏和那裏做了很多錯別字。而且,從來沒有人來追蹤他們。 – user919860