HttpSession session = request.getSession();
// 用來存儲原sessionde的值
ConcurrentHashMap concurrentHashMap = new ConcurrentHashMap();
Enumeration enumeration = session.getAttributeNames();
// 遍歷enumeration
while (enumeration.hasMoreElements()) {
// 獲取session的屬性名稱
String name = enumeration.nextElement().toString();
// 根據鍵值取session中的值
concurrentHashMap.put(name,session.getAttribute(name));
}
// 獲取之前舊的session
HttpSession oldSession = request.getSession(false);
if (oldSession != null) {
//廢除掉登陸前的session
oldSession.invalidate();
}
request.getSession(true);
// 獲取新session
session = request.getSession();
// 將原先老session的值存入
Iterator<Map.Entry<String, String>> it = concurrentHashMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
session.setAttribute(entry.getKey(), entry.getValue());
}