我有一个存储在String中的sessionID,我想为它保留一个计时器,如果它空闲5分钟,我想关闭会话。 会话是在不同的jar中创建的,即第三方应用程序。哪个无法编辑。它只是将会话ID返回给我的Api。
我所能做的只是拥有会话ID。 我正在尝试汇集会话。我们正在使用Jre 1.7
如果,我无法获得上次访问的字符串的时间戳。然后我可以将该字符串存储在Map / List中并在上次访问时获取该字符串的时间戳吗?
请帮帮我。
答案 0 :(得分:2)
您可以使用自己的班级会话解决此问题:
public class Session {
private String sessionId;
private long timestamp = System.currentTimeMillis() \ 1000;
private long duration = 60 * 5;
public Session(String sessionId) {
this.sessionId = sessionId;
}
public boolean isOutOfTime() {
if (this.timestamp + duration < System.currentTimeMillis() \ 1000) {
return false;
} else {
return true;
}
}
}
答案 1 :(得分:1)
lastTimeAccess 的String类中没有此类属性/成员,
您的猜测是正确的,您需要定义/实施自定义。
Map<String,Long>
你需要小心处理字符串对象中的不可变特性
答案 2 :(得分:1)
标准 java库中没有任何内容可以支持这一点;你必须建立自己的“Wrapper”课程;和缓存基础设施。并且不要误会:获得正确可以证明是高级任务!
因此,我会非常小心这样做你自己。这是一个高级主题,我的建议是:寻找已经为您做到这一点的现有框架,例如ehcachee。
说真的:小心在这里重新发明轮子。