Сохранять данные из одного сеанса в сервлетах - PullRequest
0 голосов
/ 20 ноября 2018
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // Step 1: set the content type
    response.setContentType("Text/html");

    // Step 2: get the printwriter
    PrintWriter out = response.getWriter();

    HttpSession ssn = request.getSession();
    if(ssn != null)
    {
        out.println("Your session Id is : ");
        String ssnId = ssn.getId();
        out.println(ssnId);
        out.println("<br/><br/>");


        if (ssn.isNew()) {
            out.println("This is a NEW session");
            out.println("<br/><br/>");

            Random rando = new Random();
            int max = 10;
            int min = 0;
            int trials = 3;
            int random[] = new int[trials];
            int fiveColumns[] = new int[135];
            double horAvg[] = new double[27]; 

            System.out.println(fiveColumns.length);
            for(int i = 0; i<fiveColumns.length;i=i+5)
            {
                fiveColumns[i] = rando.nextInt(max)+1;
                fiveColumns[i+1] = rando.nextInt(max)+1;
                fiveColumns[i+2] = rando.nextInt(max)+1;

                // Horizontal Sum
                fiveColumns[i+3] = fiveColumns[i] + fiveColumns[i+1] + fiveColumns[i+2];
                // Horizontal Average
                fiveColumns[i+4] =  fiveColumns[i+3]/3;

            }
            ssn.setAttribute("arrayOfOldSession", fiveColumns[0]);

            out.println("Length of Array: " + fiveColumns.length);
            out.println("<br/><br/>");

            out.println("<br/><br/>");
            System.out.println("Trial1" + "\t" + "Trial2" + "\t" + "Trial3" + "\t" + "Horizontal Sum" + "\t" + "Horizontal Avg");
            out.println("Trial1" + "&emsp;" + "Trial2" + "&emsp;" + "Trial3" + "&emsp;" + "Horizontal Sum" + "&emsp;" + "Horizontal Avg");
            out.println("<br/><br/>");
            for(int i = 0; i<fiveColumns.length;i=i+5)
            {
                System.out.println(fiveColumns[i] + "\t" + fiveColumns[i+1] + "\t" + fiveColumns[i+2] + 
                        "\t" + fiveColumns[i+3] + "\t\t" + fiveColumns[i+4]);

                out.println("<table>");
                out.println("<tr><td>");
                out.println(fiveColumns[i] + "&emsp;&emsp;&emsp;" + 
                            fiveColumns[i+1] + "&emsp;&emsp;&emsp;" + fiveColumns[i+2] + 
                            "&emsp;&emsp;&emsp;" + fiveColumns[i+3] + 
                            "&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;" 
                            + fiveColumns[i+4]);
                out.println("</tr></td>");

            }
            out.println("</table>");
            out.println("<br/><br/>");

            out.println("<html><body>");
            out.println("<h2>Hello Word</h2>");
            out.println("<hr>");
            out.println("Time on the server is: " + new java.util.Date());
            out.println("</html></body>");
        }
        else {
            out.print("This is an OLD session");
            out.println("<br/><br/>");

            int[] old =  (int[]) ssn.getAttribute("arrayOfOldSession");

            out.println(old);

            System.out.println(old[0]);
        }

    }
    else
    {
        out.println("Your session is not created yet");
    }

В основном я пытаюсь сделать так, чтобы, если это старый сеанс, я хотел показать данные, которые отображались, когда сеанс был новым.Единственный раз, когда я хочу новые данные, это если сеанс новый.Я пытаюсь использовать setAttribute, когда сессия новая, и getAttribute, когда сессия старая.Смогу ли я хранить и получать данные массива, как это?Спасибо

...