• 静态变量和Session


    静态变量: Application级别的,不同客户端访问同一个变量。

    Session:对于每个访问的客户端是独立的,都有一个唯一的SessionID。也就是说,不同客户端下,都可以有一个Session["SessionStr"],数据不互通

    所以当使用静态变量保存一些数据的时候要考虑不同客户端访问的时候的安全问题。

    举例:  .net MVC

    view:

        <p>SessionStr:@ViewBag.SessionStr</p>
        <p>StaticStr:@ViewBag.StaticStr</p>
    
        <form action="@Url.Action("test")" method="post">
            <input type="text" name="str" />
            <input type="submit" value="submit" />
        </form>

    新建form, 用于输入并提交一个字符串。提交后将这个字符串分别保存至Session["SessionStr"]和 static string StaticStr

    两个P标签, 分别用于显示Session["SessionStr"]和 static string StaticStr的值。

    下面是Controller中的简单存储逻辑:

    
    

            public static string StaticStr = "";

    
    

            [HttpPost]
            public ActionResult test(string str)
            {
                Session["SessionStr"] = str;
                StaticStr = str;

    
    

                return RedirectToAction("Index");
            }

    
    

            public ActionResult Index()
            {
                ViewBag.SessionStr = Session["SessionStr"] == null ? "": Session["SessionStr"].ToString();
                ViewBag.StaticStr = StaticStr;
                return View();
            }

    
    

    IE页面如下图:

    这两个值都是空的。输入hello提交,结果如下

     打开另一个浏览器Firefox或者在另一台电脑访问该页面

    可见Static是application级别的, 但Session是不通的。

    同样在此页面输入world

    两个浏览器页面中的StaticStr都会显示为world。 但Session分别为hello 和world

  • 相关阅读:
    Oracle最大连续访问天数
    oracle中MINUS
    sql中含有中文,export oralce编码格式的环境变量
    alternate_file_dcol_rollback
    oracle查询分区表
    hive创建表sql
    使用ANSI改变终端输出样式
    Golang中的空字符,似花不是花
    程序员必看 Linux 常用命令(重要)
    MongoDB入门介绍与案例分析
  • 原文地址:https://www.cnblogs.com/FlyLolo/p/6743771.html
Copyright © 2020-2023  润新知