[英]Remove session attributes which name starts from specific name
在我的 servlet 中,如果我想删除我运行的特定session
属性:
session.removeAttribute("user");
我想删除所有这些:
session.invalidate();
如何仅删除其名称以特定值开头的那些会话属性? 例如改为运行:
session.removeAttribute("userDsdf");
session.removeAttribute("userSDFSF");
session.removeAttribute("userVSDfs");
session.removeAttribute("userESFDFS");
运行类似session.removeAttribute("user%");
没有方法可以完全完成这项工作,但您可以通过枚举属性和过滤来自己完成:
Enumeration<String> attributes = session.getAttributeNames();
while (attributes.hasMoreElements()) {
String next = attributes.nextElement();
if (!next.startsWith("user")) continue;
session.removeAttribute(next);
}
您可以使用流查看属性名称:
Collections.list(session.getAttributeNames()).stream()
.filter(a -> a.startsWith("user"))
.forEach(a -> session.removeAttribute(a));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.