Hoe om te valideren/ongeldig sessies jsp/servlets?

Ik opende de sessie in mijn servlet wanneer de gebruiker uitgevoerd een succesvolle login:

HttpSession session = request.getSession(true);
session.setAttribute("name", name);

dan schreef ik in de logout.jsp tot het beëindigen van de sessie:

<%session.invalidate();%>

Om te controleren of een sessie geldig ben ik om dit te doen:

HttpSession session = request.getSession();
String name = (String) session.getAttribute("name");

Maar het werkt niet, ik krijg de sessie geldig, ook na de sessie.ongeldig.
Is er iemand die begrijpt waar doe ik verkeerd?

  • Ziet er, zoals al beantwoord: stackoverflow.com/questions/4899500/…
  • nee, het is geen antwoord op mijn probleem, ik heb het jsp/servlets en geen jsf-tags. aan de andere kant wil ik graag weten wat voor probleem heb ik in mijn code
  • Het idee is het zelfde, u stuurt het verzoek naar een nieuwe pagina, dan gaat de container eindelijk vervalt uw oude sessie.
InformationsquelleAutor Noah Martin | 2013-01-21



2 Replies
  1. 24

    moet je bellen sessie.getSession(false) – die geeft null als resultaat als er geen huidige sessie.

    volgens documenten

    HttpSession#getSession(boolean create) – maken – waar te maken en een nieuwe sessie voor dit verzoek, indien nodig; false retourneert null als er geen huidige sessie.

    Zo de juiste manier van sessie waarde controleren zou –

    HttpSession session = request.getSession(false);
    if(session!=null)
      session.setAttribute("name", name);

    en als je eenmaal, dan vervalt de sessie –

    HttpSession session = request.getSession(false);
    if(session!=null)
    session.invalidate();
    • dank u, zo verzoek.getSession(false) als de sessie actief is, wat zal terugkeren? Neem me niet kwalijk, maar ik wil echt begrijpen dit.
    • het zal de terugkeer van uw huidige sessie.
    • Dit is het juiste antwoord. Gewoon toe te voegen @AlbanoVito u misschien geïnteresseerd in de het verwijderen van de cache van de browser en.
  2. 0

    Voor het Valideren van de Sessie

    HttpSession session = request.getSession(true);
    session.setAttribute("name", name);

    Te ongeldig u hoeft te doen

    session.removeAttribute("name");
    session.invalidate();

    Maar je moet één ding in gedachten houden dat het object kan ongeldig is geworden, maar dit niet betekent dat zij direct schoongemaakt, zelfs na dat het na alle attributen gegaan het is mogelijk dat sesssion object krijgt hergebruikt, ik heb hetzelfde gebruikers-ID en het moment van de creatie.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *