【ASP.NET】——Application、Server和Session对象
来源:互联网 发布:魔兽世界月卡 知乎 编辑:程序博客网 时间:2024/04/28 22:10
简单理解:
软件部署到服务器上,这个运行的软件叫做Application
每个客户端与服务器的一个交互,我们叫做会话Session
这个服务器对象叫做Server
Application是应用程序级别对象,相当于全局变量,各个Session之间共享数据。
Session是会话级别对象。打开一个网站即建立一个Session对象,关闭网站的同时这个Session对象也就销毁了。
再这还要提一下Global.asax文件
Global.asax文件也称ASP.NET应用程序文件。改文件包含响应ASP.NET或HTTP模板所引发的应用程序级和会话级的代码。
Global.asax文件继承自HttpApplication类,维护一个HttpApplication对象池,并在需要时将对象池中的对象分配给应用程序。
Global.asax文件的功能、作用。
存储于应用程序的根目录中
定义应用程序的边界
初始化应用程序级或会话级变量
连接数据库
发送Cookie
处理应用程序级会话级别的变量以及事件,变量为全局变量
Global.asax的常用事件
Application_OnStart
在调用当前程序目录(或子目录)的第一个ASP.NET页面时激发。
Application_OnEnd
在应用程序最后一个会话结束时激发。此外,在使用Internet服务管理器管理单元停止Web应用程序时也会激发
Session_OnStart
在每次新的会话开始时激发
Session_OnEnd
在会话结束时激发。
Application_Error
当在web应用程序中未经处理的错误,这个时间就会引发。可以捕获整个应用程序中的所有未处理的异常,这时你可以把这些异常信息存储在一个log文件中,以便跟踪管理。
Application_OnBeginRequest
asp.net应用程序的每个请求都会引发该事件,他发生在页面web服务和其他任何http处理程序请求之前。
Application_OnAuthenticateRequest
该事件发生asp.net准备对请求指向认证时,该事件很容易为asp.net建立自定义的身份验证系统
Application_OnAuthorizeRequest
该事件发生在asp.net准备授权一个请求资源的访问权限时
Application_OnResolveRequestCache
asp.net有一个强大的页面和web服务输出高速缓存的功能,页面可以在执行一次后静态的保存起来,以供以后的请求使用。该事件就是在asp.net准备确定是否从cache中处理请求是触发的
Application_OnAcquireRequestState
这个事件是在asp.net准备从进程中及进程外window service或sql server中获得session状态数据时引发的。
application_OnPreRequestHandleExecute
在请求的处理程序调用之前引发
Application_OnPostRequestHandleExecute
在处理程序完成了对请求的处理之后引发的,这之后response对象把数据送回客户端
Applicaiton_OnReleaseRequestState
用来释放session数据并在必要时更新储存器的
Applicaiton_OnUpdateRequestCache
在asp.net用当前请求更新高速缓存时发生
Application_OnEndRequest
这是请求完成所引发的最后一个事件
Application_OnPreSendRequestsHeaders
在http标题发送到请求的客户端之前发生
Application_OnPreSendRequestContent
在http主体发送到请求的客户端之前发生
Applicaton_OnDisposed
这一事件是在asp.net应用程序最终关闭,而且clr从内存中删除了asp.net应用程序时引发的
Application对象
因为application对象在多个session中共享变量,所以常采用下面的方法保证资源的争抢
Application.Lock();//修改应用程序变量值的代码//Lock方法将锁定脚本中的所有变量//确保只有当前用户控制该页面//当调用UnLock方法时当前用户将失去对应用程序的控制Application.UnLock();
application对象在第一次请求页面时建立,可保存各个对象共享的全局变量数据。
存储数据时变量的类型为object,可存储任何类型的变量。
Session对象
特点:
Session对于每个客户端(可以说每个浏览器的实例)是“人手一份”的,用户首次与web服务建立连接的时候,服务器会给用户发一个SessionID作为标识。
SessionID是一个由24个字符组成的随机字符串。用户每次提交页面,浏览器都会把这个SessionID包含在HTTP头中提交给Web服务器,这样Web服务器就能区分当前请求页面的是哪一个客户端。
Session对象的功能由HttpSessionState类提供,每个用户的会话事件都具有该类的一个实例。
属性
描述
SessionID
唯一用户会话标识符
TimeOut
用户超时
LCID
本地标识符
IsNewSession
如果已使用当前请求创建会话,则返回True
Item
会话值的名称
Count
会话状态集合中的项目数
Server对象
是获取当前请求的内部服务器对象,可以直接理解成是获取服务器信息的对象。
属性
描述
ScriptTimeout
设置一个asp脚本执行的超时时间即脚本所允许的最长执行时间
MachineName
获取服务器的计算机名
方法
描述
Execute
从一个页面执行另一个页面,控制权转回本页面
Transfer
转向另一个页面,控制权不转回,留在转向页面
HTMLEncode
将HTML标签作为文本表示出来
URLEncode
对字符串进行url编码
MapPath
将网站内的虚拟目录转换成实际的存储路径
- 【ASP.NET】——Application、Server和Session对象
- 【ASP.NET】Application、Server和Session对象
- 【ASP.NET】Application、Server和Session对象
- 北大青鸟ASP.NET——Application、Server和Session对象
- ASP.NET(二):Application、Session和Server对象
- ASP.NET学习笔记一:Application,Server,Session对象
- ASP.NET——Application, Session, Cookie, Viewstate, Cache对象用法和区别
- 北大青鸟asp.net学习总结——Asp.net对象之Application对象、Server对象
- Application、Server和Session对象
- Application、Server和Session对象
- asp.net 使用Application和Session对象统计在线人数
- Asp.Net Application和Session内置对象讲解
- asp.net 使用Application和Session对象统计在线人数
- asp.net Application对象session对象
- ASP.net学习笔记:Application、Session、Server
- 黑马程序员--.Net学习日记——ASP.net学习笔记:Application、Session、Server
- 黑马程序员-- .Net学习日记——ASP.net学习笔记:Application、Session、Server
- ASP的Application对象和Session对象
- HDU 1520 Anniversary party
- Freak特征描述+BruteForceMatcher匹配+RANSAC剔除误匹配
- C语言总复习第二阶段部分练习题
- HDU 2795 Billboard(线段树的另类应用)
- 【学习Linux】第一个shell脚本
- 【ASP.NET】——Application、Server和Session对象
- HDU1405
- Open-Source Virtual Reality --- summary1
- 在Unix和Linux的各种操作系统 chmod 777权限
- Android中图片的三层缓存详解
- LeetCode 89 Gray Code
- LeetCode 54 Spiral Matrix(螺旋矩阵)(Array)(*)
- 首个重复字符
- 文本嗅探(string.find() 的应用,string::npos 的应用)----去哪儿2016研发工程师编程题