zoukankan      html  css  js  c++  java
  • 静态变量和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

  • 相关阅读:
    LVS,NET,TUNL,DR实现负载均衡
    Redis的基本数据结构,基本操作
    mongoDB基本操作
    mysql高级操作(优化)
    sphix使用及即时索引配置
    java client 通过zookeeper连接hbase问题
    TCP/UDP load balance
    Hacking your way to enlightenment with Kafka and Node.js
    flume问题
    linux点滴
  • 原文地址:https://www.cnblogs.com/FlyLolo/p/6743771.html
Copyright © 2011-2022 走看看