zoukankan      html  css  js  c++  java
  • cookie,session,viewstate

    • viewstate的原理是隐藏域。

      

      protected void Page_Load(object sender, EventArgs e)
        {
            ViewState["v1"] = "hello,world";
        }
    • cookie是保存在浏览器的,一种是保存在缓存中,一种是保存在硬盘中。(保存在硬盘中的需要设置cookie的expires属性)
           string strName = Request.Form["txtUName"];
                string strPwd = Request.Form["txtPwd"];
                if (strName == "aaaaaa" && strPwd == "cccccc")
                {
                    //新建 包含了 登录用户名 的cookie对象
                    HttpCookie cook = new HttpCookie("uInfo", strName);
                    //设置cook的失效时间为两天之后(保存在浏览器所在电脑的硬盘中了)
                    cook.Expires = DateTime.Now.AddDays(2);
                    //设置一个cook用来保存cook失效时间
                    HttpCookie cookTime = new HttpCookie("time", DateTime.Now.AddDays(2).ToString());
                    //将 cookie对象加入响应流中的cookie集合
                    Response.Cookies.Add(cook);
                    Response.Cookies.Add(cookTime);
                    Response.Redirect("Default.aspx");//重定向 302
                }
    • session保存在服务器上。利用了保存在浏览器缓存中的cookie技术。session可以保存任何对象,可以在webconfig里设置session的在服务器上失效的时间
      <system.web>
          <compilation debug="true" targetFramework="4.0" />
          <sessionState timeout="60"/>
        </system.web>
    

      可以自己写一个sessionmanager类来模拟session的技术(用cookie存sessionID)。

    1.   可以让ASPNET_STATE服务来保存session。(进程外session1)
    2.   可以让session保存在数据库里,用aspnet_regsql.exe(进程外session2)
    • application

      保存在服务器端,一个浏览器设置了,其他的浏览器也都可以访问。(相当于公共厕所)

        protected void Button1_Click(object sender, EventArgs e)
        {
            Application.Lock();
            Application["name"] = TextBox1.Text.Trim();
            Application.UnLock();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            Application.Lock();
            Response.Write("god welcome you mr:" + Application["name"]);
            Application.UnLock();
        }

      application可以在服务器端做一些全局的配置。

      可以给项目添加全局应用程序文件(*.asax),在application_start()方法里写一个application值,供将来全局的访问。

    • form的runat="server"属性。有这个属性的时候,在生产的HTML代码里会有一个_VIEWSTATE的隐藏域。在后台就可以通过IsPostBack来判断是否是第一次访问。
    未经作者允许,禁止转载
  • 相关阅读:
    你应该掌握的——树和二叉树
    nyist oj 63(二叉树)
    非递归遍历二叉树的四种策略先序、中序、后序和层序
    学习的四种境界
    nyist oj 467 (中缀式变后缀式)
    二叉平衡树
    nyist OJ 35 (表达式求值)
    线索二叉树
    二叉树的三种遍历方法(递归和非递归)
    算法学习之路
  • 原文地址:https://www.cnblogs.com/wangyangang/p/5827728.html
Copyright © 2011-2022 走看看