WebObjects/Web 應用程式/開發/元件操作
外觀
元件操作請求模型是 WebObjects 中處理使用者請求的預設方法。它基於互動式頁面物件(元件)的概念。
頁面建立一些 HTML 併為使用者繪製螢幕。元件物件儲存為使用者會話的一部分,包含所有狀態。當用戶在頁面上點選連結或提交表單時,URL 的構建方式使得伺服器可以確定最初用於建立頁面的元件物件,並重新使用此物件來處理請求。
因此,你可以很好地忘記自己是在 web 上,並且使用者在每次請求中提供的唯一資訊是 URL、表單提交、cookie 等。你可以建立互動式頁面來處理許多請求,只需根據每個請求更改其內部狀態,就像你正在編寫要在本地使用的非 web 應用程式一樣。
我本人對 JSP 不熟悉,但我被那些熟悉的人告知,這使得在 WebObjects 中建立高度動態的資料庫編輯頁面(例如一次編輯多個連結的表格)比 JSP 更容易。我可以確認這在 WebObjects 中確實微不足道,但我自己並不知道為什麼在 JSP 模型中更難。
請注意,元件操作請求模型有一些缺點。每個 URL 為了被處理,必須在記憶體中找到匹配的元件物件。因此,一旦會話超時,URL 就會變得難以理解,並且難以很好地處理這種情況。一種選擇是在 URL 上新增額外的值作為查詢字串 - 這不會破壞標準的請求處理,但可以用來提供正確的資訊,以便在會話消失時恢復。此外,會話無法記住無限的元件物件,除非你願意為這個問題提供記憶體,因此預設情況下只儲存 30 個。這意味著使用者可以回溯太遠並導致問題,尤其是在使用多個框架或視窗時。
對於不需要高度互動式頁面的情況,你可能更喜歡使用直接操作,它沒有這些缺點,但提供的幫助更少。