當請求過來的時候,首先建立頁面樹,然後根據viewstate判斷ispostback,然後開始頁面初始化,有三個方法,初始化前,初始化,初始化完成,初始化時是遞迴初始化頁面數,並給頁面的控制項賦預設值,完成初始化後,會載入viewstate,並處理post資料。如當我們使用服務端的textbox時,textbox的textboxchange事件我們是怎麼知道textbox的值改變的呢?當有多個textbox時,我們怎麼知道是哪個textbox改變了呢?這些都是在初始化完成後確定的,當初始化完成後,載入viewstate,提取出資料與post提交的資料進行比較,如果我們的textbox1提交回來的資料與之前載入的viewstate的資料不一致,我們就會給當前的textbox1做上標記,表示要執行textbox1的change事件。
當初始化完成後,然後執行我們比較熟悉的load事件,在load事件,我們處理postback資料,載入完成之後,執行我們控制項的事件響應方法,然後儲存viewstate,呼叫render渲染頁面,並發回客戶端。
了解頁面的生命週期是很重要的,而且我們禁用viestate的時候也應該注意一些問題!
頁面生命週期
如果頁面請求是回發,則在載入檢視狀態階段之後是載入回發資料階段。這個階段會檢查傳送的窗體字段值,並據此更新相應控制項的屬性。例如,通過 post 機制 發出訊號表示 textbox 控制項的名稱和使用者輸入的值 來回送使用者在 textbox web 控制項中輸入的文字。頁面獲得這些值,在控制項層次...
頁面生命週期
page preinit 該事件在初始化階段的開始被呼叫。用於建立動態控制項,動態設定主控件和主題,在呼叫該事件時,控制項的屬性尚未根據檢視狀態賦值。page init 用來對控制項屬性初始化。page initcomplete 頁面初始化完成時觸發。page preload page load 用...
JSP頁面生命週期
jspservice 方法被呼叫來處理客戶端的請求。對每乙個請求,jsp引擎建立乙個新的執行緒來處理該請求。如果有多個客戶端同時請求該jsp檔案,則jsp引擎會建立多個執行緒。每個客戶端請求對應乙個執行緒。以多執行緒方式執行可以大大降低對系統的資源需求,提高系統的併發量及響應時間。但也要注意多執行緒...