Session 的生命周期
#region EntityMap
/// <summary>
/// 实体类值的访问器,线程安全
/// </summary>
/// <typeparam name="TKey"></typeparam>
/// <typeparam name="TValue"></typeparam>
public class EntityMap<TKey, TValue>
{
private readonly ConcurrentDictionary<TKey, TValue> map = new ConcurrentDictionary<TKey, TValue>();
/// <summary>
/// 获得一个值
/// </summary>
/// <typeparam name="TKey"></typeparam>
/// <param name="key"></param>
/// <returns>如果key找不到对应值,返回null</returns>
public TValue GetValue(TKey key)
{
TValue value;
if (map.TryGetValue(key, out value))
return value;
return default(TValue);
}
/// <summary>
/// 设置一个值
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public void SetValue(TKey key, TValue value)
{
if (arrayCache != null)
{
TValue mapValue;
if (map.TryGetValue(key, out mapValue))
{
if (!mapValue.Equals(value))
arrayCache = null;
}
else
{
arrayCache = null;
}
}
map[key] = value;
}
/// <summary>
/// 缓存map的数据
/// </summary>
private TValue[] arrayCache;
/// <summary>
/// 获得所有的数据(内部有缓存,如果数据没改变过,则返回同一个数组)
/// </summary>
/// <returns></returns>
public TValue[] ToArray()
{
if (arrayCache == null)
arrayCache = map.Values.ToArray();
return arrayCache;
}
/// <summary>
/// 删除一个数据
/// </summary>
/// <param name="key"></param>
public void Remove(TKey key)
{
TValue value;
if (map.TryRemove(key, out value))
arrayCache = null;
}
public void Clear()
{
map.Clear();
arrayCache = null;
}
}
#endregion
至于Session 的生命周期很好处理 自己封装一个时间片类 规定Session创建后什么时候移除
待会我再上传时间片代码
Session 的生命周期的更多相关文章
- 【转载】Session的生命周期
http://www.cnblogs.com/binger/archive/2013/03/19/2970171.html 以前在学习的时候没怎么注意,今天又回过头来仔细研究研究了一下Session的 ...
- Session的生命周期之关于浏览器关闭后的Session
Session是JSP的九大内置对象中的一个,它可以保存当前用户的各种的状态信息. 初次接触Session时认为Session的生命周期是从浏览器打开一个窗口发送请求开始,到浏览器窗口关闭结束.其实这 ...
- Cookie 和 Session 的区别和联系?session的生命周期?多个服务器部署session的管理?
一.session 和 cookie 1.cookie Cookie会根据响应报文里的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie.当下次客户端再向服务端发起请求时,客户端会 ...
- cookie和session的区别,session的生命周期,
这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...
- node中session存储与销毁,及session的生命周期
1.首先在使用session之前需要先配置session的过期时间等,在入口文件app.js中 app.use(express.session({ cookie: { maxAge: config.g ...
- cookie和session的区别及session的生命周期
这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录 ...
- session的生命周期是怎样的
session的生命周期是怎样的 一.总结 一句话总结:Tomcat中Session的默认失效时间为20分钟.如果我们敲代码的时候把它设置成1个月,那么这一个月的数据会代替默认20分钟的数据,使ses ...
- Session的生命周期和工作原理
一.什么是Session,如何使用?Session是用于存放用户与web服务器之间的会话,即服务器为客户端开辟的存储空间. 由于客户端与服务器之间的会话是无状态的机制,Session则可用于关联访问, ...
- Request和Session的生命周期
request的生命周期是request请求域,一个请求结束,则request结束 session的生命周期是session会话域,打开一个浏览器请求一个网站的页面后,Session开始,当sessi ...
随机推荐
- 转multicast vs broadcast
转自:http://blog.csdn.net/bloghome/article/details/4682984 一.multicast概述: 多媒体应用集成了声音.图形.动画.文本以及视频,这种 ...
- Android 下拉菜单 Spinner 赋值
private Spinner m_spiModel = null; //产品型号 m_spiModel = (Spinner) findViewById(R.id.spiModel);//产品型号 ...
- mysql查询-不存在记录时赋对应的数据
使用mysql数据库,执行查询的时候,有时候就不存在记录,但是正好在不存在记录的时候又需要给赋予相应的查询结果字段,代码实现如下: select IFNULL(('), '1970-01-01 00: ...
- linux shell 命令获取字符串/文件的MD5值
获取字符串的MD5值: 字符串“hello”的MD5: $ echo -n 'hello'|md5sum|cut -d ' ' -f1 得到的MD5值: 5d41402abc4b2a76b9719d9 ...
- jetty上传文件的时候报错显示文件过大
这个时候我们需要修改jetty的参数文件 cd /data/java_web_app/news23456/etc vim jetty.xml 找到这一行 <Configure id=" ...
- IIS 的几个小技巧
1.向 IIS 中安装 .NET 应用程序池 如果先安装了 IIS,后安装了 .NET,就需要向 IIS 中注册 ASP.NET . (有的版本 .NET 安装后可能不会在 IIS 中体现,比如貌似 ...
- 【Asp.net之旅】--因自己定义控件注冊而引发的思考
前言 近期在开发远洋的SOA系统平台,开发使用的是.NET平台.对于Asp.net并不困难,但该系统的开发并非全然依靠Asp.net.而是自身封装好的框架.这套框架是远洋地产购买的微软的开发平台,项目 ...
- [Jobdu] 题目1510:替换空格
题目描述: 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 输入: 每个输入文件仅包含一组测 ...
- uva--242(邮资问题 dp)
输入输出: id=26127" style="color:blue; text-decoration:none">Sample Input 5 2 4 1 4 12 ...
- 《解读window核心编程》 之 字符和字符串处理方式
推荐的字符和字符串处理方式 開始将文本字符串想象为字符的数组,而不是 char 或字节的数组. 用通用数据类型(如 TCHAR/PTSTR )来表示文本字符和字符串. 用明白的数据类型(如 BYTE ...