導航:首頁 > 數據處理 > asp怎麼提交頁面數據

asp怎麼提交頁面數據

發布時間:2025-02-26 17:51:25

㈠ ASP.NET頁面間數據傳遞的方法

本文我們將討論的是頁面間數據傳遞的幾種方法 對此希望能幫助大家正確的理解ASP NET頁面間數據傳遞的用處以及便利性

引言

Web頁面是無狀態的 伺服器對每一次請求都認為來自不同用戶 因此 變數的狀態在連續對同一頁面的多次請求之間或在頁面跳轉時不會被保留 在用ASP NET 設計開發一個Web系統時 遇到一個重要的問題是如何保證數據在頁面間進行正確 安全和高效地傳送 提供了狀態管理等多種技術來解決保存和傳遞數據問題 以下來探討 NET 下的解決此問題的各種方法和各自的適用場合

ASP NET頁面間數據傳遞的各種方法和分析

使用Querystring 方法

QueryString 也叫查詢字元串 這種方法將要傳遞的數據附加在網頁地址(URL)後面進行傳譽段襲遞 如頁面A aspx 跳轉到頁面B aspx 可以用Request Redirect( B aspx?參數名稱=參數值 )方法 也可以用超鏈接 頁面跳轉後 在目標頁面中可用Ruquest[ 參數名稱 ]來接收參數 使用QuerySting 方法的優點是實現簡單 不使用伺服器資源 缺點是傳遞的值會顯示在瀏覽器的地址欄上 有被篡改的風險 不能傳遞對象 只有在通過URL 請求頁時查詢字元串才是可行的

利用隱藏域

隱藏域不會顯示在用戶的瀏覽器中 一般是在頁面中加入一個隱藏控制項 與伺服器進行交互時把值賦給隱藏控制項並提交給下一頁面 隱藏域可以是任何存儲在網頁中的與網頁有關的信息的存儲庫 使用隱藏域存入數值時用 hidden 控制項 value=數值 取出接收數值時用 變數=hidden 控制項 value 使用隱藏域的優點是實現簡單 隱藏域是標準的HTML 控制項 不需要復雜的編程邏輯 隱藏域在頁上存儲和讀取 不需要任何伺服器資源 幾乎所有瀏覽器和客戶端設備都支持具有隱藏域的窗體 缺點是存儲結構少 僅僅支持簡單的數據結構 存儲量少 因為它被存儲在頁面本身 所以無法存儲較大的值 而且大的數據量會受到防火牆和代理的阻止燃檔

ViewState

ViewState 是由ASP NET 頁面框架管理的一個隱藏的窗體欄位 當ASP NET 執行某個頁面時 該頁面上的ViewState 值和所有控制項將被收集並格式化成一個編碼字元串 然後被分配給隱藏窗體欄位的值屬性 使用ViewState 傳遞數據時可用 ViewState [ 變數名 ]=數值 在取出數據時用 變數=ViewState[ 變數名 ] 使用ViewState 的優點是 在對同一頁的多個請求間自動保留值 不用伺服器端資源 實現簡單 視圖狀態中的值經過哈希計算和壓縮 並且針對Unicode 實現進行編碼 其安全性要高於使用隱藏域 缺點是因為ViewState 存儲在頁面本身 因此如果

慶兄存儲較大的值 用戶顯示頁和發送頁時的速度可能會減慢 雖然視圖狀態以哈希格式存儲數據 但它仍可以被篡改

使用Cookie

Cookie 可以在頁面之間傳遞少量信息 可以存儲在客戶端的文本文件中 也可存儲在客戶端的內存中 Cookie 方法適用於存儲少量頁面中經常改動的信息 如為登陸過的網站保存登陸用戶名 為用戶輸入提供方便 還有在一些用戶自定義項目上保存用戶的個性化設置 使用Cookie傳遞數據時可用 Response Cookies[ 鍵名 ]=鍵值 取出數據用 變數名=Request Cookies[ 鍵名 ] 使用Cookie 優點是 Cookie 存儲在客戶端 不使用伺服器資源 實現簡單 可配置到期時間 缺點是 可以存儲的數據量比較少 由於Cookie 並不被所有的瀏覽器支持 而且還可能被用戶禁止或刪除 所以不能用於保存關鍵數據 另外 Cookie 保存的形式是簡單的明文文本 在它裡面不宜保存敏感的 未加密的數據

使用application 變數

使用Application 變數也可以實現頁面間的傳值 Application變數是全局性的 所有用戶共享一個Application 變數 一旦定義 它將影響到程序的所有部分 如果想在整個應用程序范圍使用某個變數值Application 對象將是最佳的選擇 存入數據時 把值添加到Application 變數里 Application[ 變數名 ]=數值 取出數據用 變數=Application[ 變數名 ] 在不需要使用該Application 時 要顯式清除它 Application[ 量名 ]=null

Application 優點 易於使用 全局范圍 可供應用程序中的所有頁來訪問 缺點 若保存數據的伺服器端進程被損壞(如因伺服器崩潰 升級或關閉而損壞) 那麼數據就會丟失 所以利用Application 一定要有保底的策略 佔用伺服器端的內存 這可能會影響伺服器的性能以及應用程序的可伸縮性

使用session 變數

Session 對象可以用來存儲需要維護的指定對話的信息 不同的客戶端生成不同的Session 對象 Session 用於存儲特定於單獨會話的短期信息 Session 的使用方法和格式與Application 相同

優點 易於實現 並且提供較高的安全性和持久性 可以應對IIS 重啟和輔助進程重啟 可在多進程中使用 缺點是耗用伺服器端的內存 所以不要存儲大量的信息 Session 最常見的用途是與Cookie 一起向Web 應用程序提供用戶標識功能 Session也可用於不支持Cookie 的瀏覽器 但是 使用無Cookie 的Session 需要將會話標識符放置在查詢字元串中 同樣會遇到本文在查詢字元串一節中陳述的安全問題

使用類的靜態屬性

這種方法是利用類的靜態屬性實現兩個頁面間的值傳 定義一個包含靜態屬性的類 將要傳送的值賦給靜態屬性 目標頁面中可以通過靜態屬性獲得源頁面中要傳的值

優點是可以方便傳送多個數據 缺點是需要額外編程 增加程序設計的工作量 佔用伺服器內存

使用Server Transfer

通過Server Transfer 方法把執行流程從當前的ASPX 文件轉到同一伺服器上的另一個ASPX 頁面的同時 可保留表單數據或查詢字元串 做法是把該方法的第二個參數設置成True 在第一個頁面用Server Transfer( 目標頁面名 aspx true) 目標頁面取出數據用 Ruquest Form[ 控制項名稱 ]或Ruquest QueryString[ 控制項名稱 ] 中還可以這樣來用 代碼如下

PReviousPage pg

pg =(PreviousPage)Context Handler

Response Write(pg Name)

說明 此段代碼用在目標頁面中取出傳遞的值 Previous Page 是原頁面的類名 Name 是在原頁面定義的屬性 需要傳遞 的數據存入到此屬性中

使用這種方法 需要寫一些代碼以創建一些屬性以便可以 在另一個頁面訪問它 可以在另一個頁面以對象屬性的方式來 存取數值 這個方法在頁面間值傳遞中是特別有用的 這種方法 不但簡潔 同時又是面向對象的

Cache

Cache 具有強大的數據操作功能 以鍵值對集合的形式存 儲數據 可以通過指定關鍵字來插入和檢索數據項 它的基於依 賴性的終止功能 使它能夠精確控制如何並及時更新和消除緩 存中的數據 它可以內部進行鎖定管理 不需要象Application 對象那樣使用Lock()和Unlock()方法進行串列化管理 缺點是使用 方法較復雜 使用不當反而降低性能

不同頁面跳轉情況下可採用的傳值方法

情況一 源頁面可以跳轉到目標頁面 源頁面傳遞數據給目標頁面

使用查詢字元串 將少量信息從一頁傳輸到另一頁以及不 存在安全性問題時 是一個簡單常用的方法 使用Server Transfer方法 可傳遞表單數據或查詢字元串到另一個頁面 還可以 保存初始頁的HttpContext 當目標頁和源頁面在同一個伺服器 時 可以用此方法

情況二 頁面傳遞數值給自身頁面

即在對同一頁的多個請求間保留值 ViewState 屬性可提供具有基本安全性的功能 也可用隱藏域 存儲少量回發到自身或另一頁的頁信息時使用 不考慮安全性問題時使用

情況三 源頁面傳遞數值給目標頁面 而源頁面不能直接連接到目標頁面

有多個方法 具體用哪個要看具體情況

Application 存儲由多個用戶使用且更改不頻繁的全局信息 此時安全性不成為問題 不要存儲大量的信息 Session 存儲特定於單獨會話的短期信息 並且需要較高的安全性 不要在會話狀態中存儲大量的信息 需要注意 將為應用程序中每一會話的生存期創建並維護會話狀態對象 在支持許多用戶的應用程序中 這可能會佔用大量伺服器資源並影響可縮放性

Cookie 當您需要在客戶端存儲少量信息以及不存在安全性問題時使用 類的靜態屬性 方便傳送多個數據

Cache 對象用於單個用戶 一組用戶或所有的用戶 可以為多個請求長時間 高效率的保存數據 上述幾個方法 不僅用於情況三 前面兩種情況都可以使用 只是沒有必要時盡量少用 否則會造成資源浪費或增加程序的復雜性

lishixin/Article/program/net/201311/12141

閱讀全文

與asp怎麼提交頁面數據相關的資料

熱點內容
招標代理會議怎麼主持 瀏覽:799
雪原乳酸奶市場佔多少 瀏覽:142
生活在朋友圈發的信息如何刪除 瀏覽:634
如何做代理服務 瀏覽:37
暢銷款怎麼做數據 瀏覽:569
超短線交易有哪些書 瀏覽:426
智慧消防系統代理有哪些 瀏覽:865
賒銷產品欠款怎麼做手續 瀏覽:73
飛車黨技術有哪些 瀏覽:811
程序猿為什麼遇到事業瓶頸 瀏覽:487
如何保護程序員發際線 瀏覽:831
q3技術型多少錢 瀏覽:618
股票怎麼緊跟市場節奏 瀏覽:773
xp區域網代理怎麼設置 瀏覽:788
產品的人工費是什麼 瀏覽:980
內網如何掃描主機運行程序 瀏覽:321
康婷三清產品是什麼 瀏覽:162
熊貓生活怎麼代理 瀏覽:320
技術學校學汽車美容一年多少錢 瀏覽:488
新鄭代理審車多少錢 瀏覽:737