zoukankan      html  css  js  c++  java
  • 20150309—bs的保存状态

    http:保存状态方式,传值方式

    session:(会话)

    默认过期时间20分钟(20分内无任何操作自动销毁),针对用户独立,一般用来存储少量信息的

    存值:session[“name”]=data;(任意值,可以是对象)

    取值:session[“name”]

    当存储对象时需要定义一个对象才可以接接收。

    例:某数据库表Login:

    image

    HTML的设计页面:

    image

    此页面的C#语句:

    DataClassesDataContext dc = new DataClassesDataContext();
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
    
        }
        //存值
        protected void Button1_Click(object sender, EventArgs e)
        {
            string use = TextBox1.Text;
            var va= dc.Login.SingleOrDefault(m => m.UserName == use);//存值,Login类型的对象
            if (va != null)
            {
                Session["user"] = va;
            }
    
        }
        //取值
        protected void Button2_Click(object sender, EventArgs e)
        {
            Login log = new Login();//创建与存值时相同的对象
            log = (Login)Session["user"];
            Label1.Text = log.UserName;
            Label2.Text = log.Password;
            Label3.Text = log.Name;
            Label4.Text = log.Account.ToString();
        }

    取值后结果:

    image

    当使用ashx一般处理程序时,必须先添加

    IRequiresSessionState 接口
    System.Web.SessionState;
    
    namespace  Test
    {
        public class about : IRequiresSessionState
        {
    
        }
    }

    application:(全局)

    所有用户共享的,没有过期时间

    存值:application[“name”]=data;(任意值,可以是对象)

    取值:application[“name”]

    其中的两个方法:application.lock(锁),application.unlock(解锁)

    cookice:

    存在客户端的电脑上,随着表的提交循环获取的,除非过期

    存值:Response.Cookies[“name”].Value=值

    取值:Request.Cookies[“name”].value

    可以设置过期时间:response.cookies[“name”].expires=时间段

    protected void Button1_Click(object sender, EventArgs e)
        {
            //ViewState["name"] = "存储的值!";
            //Response.Cookies["name"].Value = "===存取的值===";
            Response.Cookies["name"].Value = HttpUtility.UrlEncode("cunqudeshi");//存值时的编码
            Response.Cookies["name"].Expires = System.DateTime.Now.AddSeconds(5);//5秒后过期
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            //TextBox1.Text = ViewState["name"].ToString();
            TextBox1.Text = Request.Cookies["name"].Value;
            Response.Write(HttpUtility.UrlEncode(Request.Cookies["name"].Value));//取值同样需要解码
        }

    5秒内取值:

    image

    5秒后再点取值:报错

    image

    如果不对过期时间设置,默认关掉网页后自动清除,如果设置了时间后,关掉网页再打开并在规定时间内依然可以取值

    querystring: 

    存值: url  网址?变量=值

    取值: Request.Querystring[“变量名”]  或者 Request[“变量名”]

    有长度限制,受url的总长度限制,一般用来传表的主键等。

    cache:

    服务器端缓存,用户共享的,有过期时间,一般用来存储大容量的信息,cache距离用户的距离介于session与application之间

    存值:cache.insert(string key,object o)

    销毁:cache.remove(string key)

    调用:cache[“key”]

    viewstate:

    只针对于当前页面,保存在页面的html代码中,

    每个页面会自动生成viewstaste代码(隐藏代码),相当于隐藏域

    存值:viewstate[“name”]=data;(可以是对象)

    取值:viewstate[“name”]

  • 相关阅读:
    利用开源jPlayer播放.flv视频文件
    记录一次项目中使用memcatch添加端口以及自动运行
    学习制作菜单导航
    利用vs2013简单初探Python
    磨刀不误砍柴工,使用visual studio之前应该先了解这些...
    关于asp.net与jquery ajax 的一些补充
    Matlab转opencv遇到的坑
    WMS
    Javascript 学习笔记
    卷积神经网络学习笔记(CNN)
  • 原文地址:https://www.cnblogs.com/Tirisfal/p/4323204.html
Copyright © 2011-2022 走看看