ASP.NET系统对象与状态管理

1.ASP.NET中常见的系统对象(也可以叫做隐式对象或内置对象):

 

(1.) Page对象:指向页面自身 ,在整个页面的执行期间都可以使用。

 

<% @ Page Language = " C# "  AutoEventWireup = " true "   CodeFile = " Default.aspx.cs "  Inherits = " _Default "   %>

 

 

Language:指定页面代码和后置代码使用的语言;

AutoEventWireup:设置页面是否自动调用网页事件,页面加载会调用Load事件;

CodeFile:代码文件名  存放后置代码 该后置代码与页面是局部关系

Inherits:页面类 如下 后置代码中红色部分就指定了页面设置的页面类,两者是一一对应的:

 

public   partial   class   _Default  : System.Web.UI.Page 
{
    
protected   void  Page_Load( object  sender, EventArgs e)
    {

    }
}

 

 

(2.)Request对象: 从浏览器(客户端)请求数据 用于页面请求期。

 

QueryString:收集Get方式提交的URL中‘?’后的数据

Form:收集POST方法发送的请求数据

ServerVariable:该集合包含了服务器和客户端的系统信息

Params:集合以上三种,不适用。

 

(3.)Response对象提供向浏览器输出信息或发出指令 用于页面执行期。

 

Write():输出指定的文本

End():使Web服务器停止当前的程序并返回结果

Redirect():重定向到其他页面

 

(4.)Server对象: 提供服务器的一些属性和方法,比如页面文件的绝对路径等。

 

MapPath:

Server.MapPath(string path) //path为web服务器上的虚拟路径  返回物理路径

Execute:在当前页面执行参数指定的页面,完成后继续执行本页

Transfer:在当前页面执行参数指定的页面,指定页面执行完成后不回到原先的那个页面

 

(5.)Application对象:对所有用户提供共享信息 作用于整个应用程序的运行期。

 

Application["名称"] = 值;

变量 = Application["名称"];

 

(6.)Session对象:为某个用户提供共享信息 作用于会话期。

 

Session也是集合,同样可以使用索引器方式访问

Session["session名称"]=值;

变量 = Session["Session名称"];

Session特点:

Session对象包含某一个用户的状态信息(比如登录状态),此信息不与其他用户共享,只面向该用户连接

Session 会话超时或过期 服务器即刻清除session对象 释放占用的资源 注:session占用的服务器资源

Session会话期通过SessionID传递状态信息,不像Cookie那样将所有内容传输,客户端只对SessionID可见,对状态信息的内容不可见。

 

常用属性和方法:

SessionID:包含唯一的用户会话标志符 用于整个会话过程中记录用户信息

Timeout属性:单位为分钟 设置会话超时时间

IsNewSession属性:如果已按当前请求创建会话,返回true

Clear()方法 :从会话集合中清除所有的键和值

Abandon()方法:结束session,取消当前会话

 

(7.)Cookie对象:保持于客户端的共享信息方式。

    

cookie属于集合对象,使用索引器的方式访问

语法:

Response Cookies[Cookie的名称].Value = 变量值;           //写入

String 变量名 = Request.Cookies["Cookie的名称"].Value;   //读取

HttpCookie cookie = new HttpCookie("Cookie名称","值");

Response.Cookies.Add(cookie);

 

Cookie常用属性:

Name:Cookie变量的名称

Value:Cookie值

Expire:Cookie有效时间

Cookie默认大小为4kb

 

2.页面传值:

 

准备第一个页面Default.aspx:

Button PostBackUrl 属性设置将要跳转到的 页面地址 Target.aspx

代码
     < form id = " form1 "  runat = " server " >
    
< div >
        
< asp:TextBox ID = " TextBox1 "  runat = " server " ></ asp:TextBox >& nbsp;
        
< asp:Button ID = " Button1 "  runat = " server "  Text = " Button "   PostBackUrl = " ~/Target.aspx " /></ div >
    
</ form >

 

页面代码:

代码
  protected   void  Page_Load( object  sender, EventArgs e)
    {
        
if  ( ! IsPostBack) 
        {
            
this .TextBox1.Text  =   " 这是首次加载的数据 " ;
        }
        
if (Page.IsCrossPagePostBack) // 确定使用跨页提交
        {
            
this .TextBox1.Text  =   " 开始跨页传输数据 " ;
        }
    }

 

准备目标页 Target.aspx 放置 一个 label 标签即可 代码如下:

 

代码
     if  (Page.PreviousPage  !=   null ) // 判断传输过来的页面是否存在
        {
            
if  (PreviousPage.IsCrossPagePostBack)
            {
                Label1.Text 
=   " 传输过来的值: "   +  ((TextBox) this .PreviousPage.FindControl( " textbox1 " )).Text;  //找到传输过来的页面中的textbox控件并获取它的值
             }
        }
        
else  
        {
            Response.Redirect( " Default.aspx " );
        }

 

 

 

转载于:https://www.cnblogs.com/Simcoder/archive/2010/04/06/1705403.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值