簡體   English   中英

在arraylist中存儲值並打印它

[英]Storing values in arraylist and printing it

我將登錄的用戶名存儲在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));
              } 

使用Hashmap,因為它不允許重復,並將使用新密鑰替換原始密鑰。

HashMap hm = new HashMap();

hm.put (U_ID, new user(Name, U_ID, Pass));

我不確定你要求的是什么,但據我所知,您的代碼可能會對您的程序進行更改。讓我知道它是否有幫助。

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");
            boolean shouldPrint = false; //declare this variable to check if printing of username is required
                  if (users == null) {
                      shouldPrint = true; //set this value to true to print username
                      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");

/**********As far as i understood your code.You need to set condition here to prevent twice printing of user name***********************************************/
             if(shouldPrint)
              {
                  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));
                  } 
             }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM