我在arraylist中存储了登录的用户名,而不是将arraylist放在会话中。每当用户第一次登录时,它都会打印用户名,但刷新页面时会出现相同的名称是印刷两次,但我只想要打印的用户名只有一次,不管用户多少次刷新页面,请帮助在arraylist中存储值并打印它
String username = request.getParameter("username");
String password = request.getParameter("password");
HttpSession session = request.getSession(true);
session.setAttribute("username", username);
session.setAttribute("password", password);
response.setContentType("text/html");
ArrayList<user> users = (ArrayList<user>) sc
.getAttribute("users");
if (users == null) {
System.out.println("loggedInUsers creates");
users = new ArrayList<user>();
}
users.add(new user(Name, U_ID, Pass));
sc.setAttribute("users", users);
users = (ArrayList<user>) sc.getAttribute("users");
for (int i = 0; i <= users.size() - 1; i++) {
user user = users.get(i);
out.println(user.getUserName()+ "<br>");
//out.println("<br/>" + user.get(i));
}
在ArrayList上使用contains()来检查它是否已经有当前的userName。如果是,请不要添加,如果否,则添加。 – TheLostMind
希望这将帮助你 [哈希映射] [1]:http://stackoverflow.com/questions/3640648/how-to-correctly-use-hashmap –