内置对象session ,cookic,Application,ViewState

1、内置对象

(一)Response - 响应请求对象
1.定义:Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应。Response对象只提供了一个数据集合cookie,它用于在客户端写入cookie值。若指定的cookie不存在,则建立它。若存在,则将自动进行更新。结果返回给客户端浏览器。
2.方法
(1)Redirect
用法:Response.Redirect("url")
做用是在服务器端重定向于另外一个网页
(2)Write
功能:向客户端发送浏览器可以处理的各类数据,包括:html代码,脚本程序等
用法:Response.Write("")输入字符串在界面里显示,输入<script>alert('')</script>弹出对话框
(二)Request - 获取请求对象
Request["key"] - 默认返回的就是string类型
来获取传递过来的值,Request对象的做用是与客户端交互,收集客户端的Form、Cookies、超连接,或者收集服务器端的环境变量。html

(三)Session  相对全局对象浏览器

在不一样的浏览器之间传值,像银行之类的网站为了安全把用户名密码保存在session里面。每一台电脑访问服务器,都会是独立的一套session,key值都同样,可是内容都是不同的。安全

赋值:Session["key"] = 值;服务器

在另外一个网页取值:首先先要判断Session["key"] 是否是null,不是的话取值,不然定向到原网页cookie

 string a = Session["key"];session

优缺点:post

Session是很是安全的,由于它存在于服务器的内存中,取数据也是最快的;可是,Session不要滥用,由于会形成服务器内存溢出,致使服务器崩溃(为了不同一帐号短期大量访问因此设置了看不清的验证码)
Session里面不要放大东西,若是不用那么就会形成资源浪费。网站

Session生命周期:20分钟(当一个帐号关闭游览器后,仍然会在服务器走完这20分钟,用户的每个会致使页面刷新的操做都会使这20分钟从新计时)编码

不少网站,特别是涉及到moneyde ,用户长时间不操做以后都要从新登入就是由于他的生命周期。url

ps:当一个用户关闭游览器而后再用这个游览器登入相同的帐号后,链接就不是原来的链接了,就像是打客服电话,

用同一部手机拨打同一个客服电话,对面接电话的就不必定是同一我的了。

(四)Cookies

赋值:   Response.Cookies["key"].Value =值;

取值: Request.Cookies["key"].Value;

与Session比较:

相同点:每一台电脑访问服务器,都会是独立的一套session或者Cookies,key值都同样,可是内容都是不同的。

不一样点:●Session的保存位置是保存在服务器内存上,Cookies保存在用户硬盘上

           ●Session没有持久的,在不对页面进行任何操做的状况下,它的保存周期就是20分钟;Cookies能够持久也可不持久,取决于用户

设置生命周期: Response.Cookies["key"].Expires = DateTime.Now.AddDays(7);//保存7天

问题:若是传的是中文会乱码

解决方法:输入的文字用特定的编码方式编码。而后用该方式解码

string a = HttpUtility.UrlEncode(值, System.Text.Encoding.GetEncoding("utf-8"));
Response.Cookies["key"].Value = a;
Response.Redirect("Default2.aspx");
if (Request.Cookies["user"] != null)          解码
{
string a = HttpUtility.UrlDecode(Request.Cookies["key"].Value, System.Text.Encoding.GetEncoding("utf-8"));
Label1.Text = a;
}

(五)Application,好比说版本号,全部人获取的都是同一个东西,使用范围较小。

它是全局对象,全局只有这一个对象
只要被建立出来,全部人取的值都是同样的
生命周期:永久
保存位置:服务端

赋值:Application["key"]=值;
取值:Application("key");

(六)ViewState(了解)

能够理解成为病例

相似于中间过程,因为网页的不固定性,点击按钮会刷新,控件赋得值借助viewstate保存,把刷新前的值保存成专门代码。刷新后再赋值给控件

2、Repeater的Command操做(不经常使用)

一、ItemCommand事件 :在Repeater中全部能触发事件的控件,都会来触发这一个事件

                                    后台建立:在Page_Load中  Repeater1.ItemCommand +=  ,而后双击Tab键建立

二、CommandName : 判断点击的是什么按钮,

                                后台调用:e.CommandName

三、CommandArgument : 触发事件所传递过来的主键值数据,放在这里面 界面值绑定时要用  单引号 !!!!!! 

                                      后台调用:e.CommandArgument 

已删除为例

复制代码
   <asp:Button ID="Button1" CommandName="Delete" CommandArgument=<%#Eval("UserName") %> runat="server" Text="删除" />  //前台代码
--------------------------------------------------------------------------------------
后台代码
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Repeater1.DataSource = new UsersData().Select();
            Repeater1.DataBind();
        }

        Repeater1.ItemCommand += Repeater1_ItemCommand;
    }

    void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Delete")
        {
            new UsersData().Delete(e.CommandArgument.ToString());
        }
        
        }


    }
相关文章
相关标签/搜索