前言
本篇讲的主要是.net中常用的一些内置对象,那么到底什么是内置对象呢?其实,内置对象就是你说使用的这种语言中自带的一种对象,无需自定义,这些对象提供了一些常用的或者是最基本而必要的功能供开发者使用。下面我们就来看看.net总常用的内置对象。
一、Server对象
定义了一个与web服务器相关的类,提供对服务器上的方法和属性的访问,用于访问服务器上的资源。
server对象获取当前请求的内部服务器对象,可以通过HTTPApplication类和page类的属性来获得。
二、Cookie对象
当你在每次上网时,都会在历史记录里面留下记录(cookies)。用来存储浏览器请求服务器的页面,或者一些不敏感的用户信息,同时所有的数据信息都是以文本的形式存储在用户的机器中。request和response中都 包含了Cookies的属性。
特点 |
---|
存储特定用户的信息或浏览的网页 |
在客户端存储 |
以字符串的形式存储 |
服务器每次响应客户请求的时候会重新把Cookie发送到客户端保存 |
string userName;
if (Request.Cookies["UserName"] != null)
{
userName = Request.Cookies["UserName"].Value;
}
三、Session对象
会话,一个特定客户与服务器之间的交互,也可存储用户信息。
特点 |
---|
存储特定用户的信息 |
在服务器端存储 |
以任意类型的对象存储 |
在会话中跟踪和监视用户信息,会话期满后销毁对象 |
常用方法
request.getSession(); //获取session对象
session.setAttribute(“变量名”,值对象); //给session设置值
session.getAttribute(“变量名”); //获取session中的值
//删除session中的值:
session.removeAttribute("变量名");
session.invalidate();//删除所有session中保存的键
Session 三种销毁的原因
- 服务器非正常关闭
- Session过期(:默认为20分钟)
- invalidate(:session.invalidate(); //删除所有session中保存的键 )
request.getSession()与request.getSession(true)的区别????
- request.getSession()若存在会话则返回该会话,否则返回null
- request.getSession(true)如果存在会话则返回该会话,否则新建一个会话
栗子:添加登录信息
string userName;
if(Session["UserName"]!=null)
{
//当指定名称的Session存在时,获取指定Session的值
userName=(string)Session["UserName"];
}
四、Application对象
首先来说一下HttpApplication类。
1/是应用程序类,是Application对象的基类,定义asp.net应用程序中的所有应用程序对象通用的方法、属性和事件。
2/此类的实例是在asp.net基础结构中创建的,而不是由用户直接创建的
3/定义了应用程序的结构,应用程序实际运行时的结构就是这个类的一个实例,这个实例第一次请求在web程序中时,这个实例就会运行起来
httpApplication类启用asp.net应用程序,会启用一个Application对象。这个对象会维护多个会话和请求之间的信息的共享。
Session 和Cookie都是针对于特定用户保存的数据,这些数据并不是每个人都能用到,对于一些共享的信息,就用到了Application对象。
appliction对象 用于共享应用程序及其信息,多个用户共享一个application对象,以key和value的形式存在。
特点 |
---|
存放任意类型的数据。 |
存放在服务器上。 |
存放数据没有时间限制。 |
因为是共享的所以需要对其进行并发控制:
Application.Lock();
//修改应用程序变量值的代码
….
….
….
Application.UnLock();
//lock方法将锁定脚本中的所有变量
//确保只有当前用户控制该页面
//当调用UnLock方法时当前用户将失去对应用程序的控制
页面请求时每次会发生BeginRequest事件
页面请求结束时每次都会发生EndRequest事件
五、<%%>
用来编写程序的代码部分,在其中可以声明变量和方法。
<%
string name = Request.Form["userName"].Trim();
string userName;
if (Request.Cookies["UserName"] != null)
{
userName = Request.Cookies["UserName"].Value;
}
%>
六、<%=%>
用来向输出流中输出变量的值。