Нормально ли, что когда я вхожу в систему и захожу на страницу для входа в систему и обновляю страницу, идентификатор сеанса изменяется и создается новый сеанс?

#java #session #servlets #session-cookies

#java #сеанс #сервлеты #сеансовые файлы cookie

Вопрос:

Нормально ли, что когда я вхожу в систему и захожу на страницу для входа в систему и обновляю страницу, идентификатор сеанса изменяется и создается новый сеанс? Я заявляю, что использую TomCat. Со страницы index.html через форму, в которую я вхожу, чтобы перенаправить себя на эту страницу Java, как только открывается страница java html, она просто возвращает мне то, что я прошу, но если я повторно обновляю страницу на tomcat, я знаю, что это создает мне новый сеанс, это нормально? Моя цель — провести сеанс для каждого отдельного пользователя, как мне это сделать?

 "index.html"
<html>
  <head>
    <title> Inserisci nome </title>
  </head>

  <body>
    <p> <h2>Inserisci il tuo nome </h2>
    <form action="/Esercizio8/SerSal" method="post">
      <input type="text" name="nome"> <strong>USERNAME</strong> <br>
      <input type="password" name="pwd"> <strong>PASSWORD</strong> <br>
      <br>
      <input type="submit" value="Invia">
    </form>
  </body>
</html>

"SerSal.java"
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class SerSal extends HttpServlet{
  int count;
  protected void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
    String name = request.getParameter("name");
    String pwd = request.getParameter("pwd");
    HttpSession session = request.getSession();
    session.setAttribute("Name",name);
    session.setAttribute("Password",pwd);
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>HELLO!</title></head>");
    out.println("<body>");
    out.println("Hello "   name);
    out.println("This "   (session.isNew()? "is" : "is not")   " a new session! <br>");
    out.println("</body>");
    out.println("</html>");
    out.close();
  }
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException{
    HttpSession session = request.getSession(false);
  }
}

  

Комментарии:

1. Используете ли вы Spring Security?

2. если вы обновите страницу, вы нажмете метод GET сервлета входа в систему. Пожалуйста, опубликуйте doGet

3. в doGet: // Не создавайте сеанс (false), если он не существует. HttpSession session = request.getSession(false); @JonathanLaliberte

4. @AndreaGhezzi мне нужно было бы увидеть больше кода, отредактировать ваш ответ и включить его

5. @JonathanLaliberte Готово! Я изменил код, вставив файл .html и метод doGet.