ASP.NET頁面之間傳值的方式之Application實例詳解
Application
Application變量在整個應(yīng)用程序生命周期中都是有效的,類似于使用全局變量一樣,所以可以在不同頁面中對它進(jìn)行存取。它和Session變量的區(qū)別在于,前者是所有的用戶共用的全局變量,后者是各個用戶獨有的全局變量。
舉例來解釋:
網(wǎng)站訪問的計數(shù)器變量一般采用Application變量,多個請求訪問時共享這一個變量,均可對它進(jìn)行操作,該變量可以被整個應(yīng)用程序的各個頁面直接使用。
用戶登陸的帳號名一般采用Session變量,多個請求訪問時有各自的Session變量,只能對自己的該Session變量進(jìn)行操作,整個應(yīng)用程序的各個頁面直接使用這個變量來獲得用戶的基本信息。(下一篇就會整理Session)
優(yōu)點:1.使用簡單,消耗較少的服務(wù)器資源。
2.不僅能傳遞簡單數(shù)據(jù),還能傳遞對象。
3.數(shù)據(jù)量大小是不限制的。
缺點:1.作為全局變量容易被誤操作。所以單個用戶使用的變量一般不能用application。
使用方法:1.在源頁面的代碼中創(chuàng)建你需要傳遞的名稱和值構(gòu)造Application變量:Application["Nmae"]="Value(Or Object)";
2.在目的頁面的代碼使用Application變量取出傳遞的值。Result = Application["Nmae"]
注意:常用lock和unlock方法用來鎖定和解鎖,為了防止并發(fā)修改。
網(wǎng)站訪問例子:在不增加數(shù)據(jù)庫字段的情況下,來統(tǒng)計網(wǎng)站的總訪問量的方法,可通過Global.asax文件來處理!
(1)Global.asax
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Security; using System.Web.Services.Description; using System.Web.SessionState; namespace WebApplication { public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { Application.Lock(); Application["count"] = 0; //Application.Set("count",0) /Application.Add("count",0) 初始化變量,這個作用等同,都是將count設(shè)置為0。 Application["online"] = 0; Application.UnLock(); } protected void Session_start(object sender, EventArgs e) { Application.Lock(); Application["count"] = (int)Application["count"] + 1; Application["online"] = (int)Application["online"] + 1; Application.UnLock(); } protected void Session_end(object sender, EventArgs e) { Application.Lock(); Session.Abandon();//當(dāng)以一個會話結(jié)束后,注銷該會話 Application["online"] = (int)Application["online"] - 1; Application.UnLock(); } } }
(2)Index.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication { public partial class Index : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("<br />總訪問人數(shù)是:" + Application["count"]); Response.Write("<br />當(dāng)前在線人數(shù)是:" + Application["online"]); } } }
(3)Web.config ?。ò选?lt;sessionState mode="InProc" timeout="1" cookieless="false"/>”放在“</system.web>”上方)
<?xml version="1.0" encoding="utf-8"?> <!-- 有關(guān)如何配置 ASP.NET 應(yīng)用程序的詳細(xì)信息,請訪問 https://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.6.1"/> <httpRuntime targetFramework="4.6.1"/> <sessionState mode="InProc" timeout="1" cookieless="false"/> <!--設(shè)置一個會話的作用時間為一分鐘,即一分鐘內(nèi)不做任何操作的話,該會話就會失效。--> </system.web> <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/> </compilers> </system.codedom> </configuration>
?。?)查看效果。
1、運行程序在瀏覽器中進(jìn)行查看,等一分鐘之后刷新頁面就會有變化;
2、Copy地址欄中的地址,放到另一個瀏覽器中查看效果;
3、用同一瀏覽器,新建隱身窗口,Copy地址欄中的地址,也可以查看。
總結(jié)
以上所述是小編給大家介紹的ASP.NET頁面之間傳值的方式之Application實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Asp.Net程序目錄下文件夾或文件操作導(dǎo)致Session失效的解決方案
這篇文章主要介紹了Asp.Net程序目錄下文件夾或文件操作導(dǎo)致Session失效的解決方案,需要的朋友可以參考下2017-06-06ASP.NET MVC學(xué)習(xí)教程之Razor語法
這篇文章主要給大家介紹了關(guān)于ASP.NET MVC學(xué)習(xí)教程之Razor語法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05asp.net實現(xiàn)XML文件讀取數(shù)據(jù)綁定到DropDownList的方法
這篇文章主要介紹了asp.net實現(xiàn)XML文件讀取數(shù)據(jù)綁定到DropDownList的方法,結(jié)合實例形式分析了asp.net針對xml文件操作及DropDownList控件的使用技巧,需要的朋友可以參考下2017-02-02ASP.NET中CKEditor與CKFinder的配置使用
這篇文章主要介紹了ASP.NET中CKEditor與CKFinder的配置使用的相關(guān)資料,需要的朋友可以參考下2015-06-06發(fā)布asp.net core時如何修改ASPNETCORE_ENVIRONMENT環(huán)境變量
這篇文章主要介紹了發(fā)布asp.net core時如何修改ASPNETCORE_ENVIRONMENT環(huán)境變量,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下2021-04-04asp.net DZ論壇中根據(jù)IP地址取得所在地的代碼
從dz .net版發(fā)現(xiàn)的這個不錯的函數(shù),大家以后就可以方便調(diào)用了2008-10-10.NET Corek中Git的常用命令及實戰(zhàn)演練
這篇文章將通過故事的形式從Git的歷史談起,并講述Git的強大之處。然后通過實戰(zhàn)演練教你如何在Github以及碼云上托管我們的代碼并進(jìn)行代碼的版本控制2019-04-04