Zugriff auf Session-Variablen zwischen zwei servlets

Habe ich zwei servlets. In der ersten servlet-ich bin das abrufen des userId aus der Datenbank und speichern Sie es in dieser session-variable:

String uId = function.getLogin(username, password); //method getting the id

HttpSession session = request.getSession();
session.setAttribute("userId", uId); //here I'm setting the session variable with the id

Nun in der zweiten servlet, das ich abrufen möchten, die userId aus der session-variable, sondern eine java.lang.NullPointerException wird geworfen.

HttpSession session = request.getSession(true);
String uId = session.getAttribute("userId").toString();
int userId = Integer.parseInt(uId); //this is the code that I'm using in the second servlet, and throwing the NullPointerException

Bin ich was falsch mache bitte? Vielen Dank für Ihre Hilfe

  • Kann man prüfen/drucken Sie den Wert uId vor der Besetzung?
  • Ist function.getLogin(username, password) null zurückgeben?
  • Nein, ich bin mit der gleichen session-variable in einer JSP-Seite und ich habe da auch keine Probleme..
  • Sind die servlets in der gleichen webapp? Sind Sie mit dem selben browser aufrufen, der zwei servlets. Wie viel Zeit haben Sie, warten Sie zwischen den beiden anrufen? Warum verwenden nicht Sie eine Ganzzahl überall für den Benutzer, da es scheint, eine ganze Zahl sein?
  • Es schafft nur eine neue Sitzung, wenn es nicht bereits eine für diesen client.
  • es erzeugt eine neue session, nur wenn es keine bereits vorhandenen. Es sollte unwichtig sein, viel hier, es sei denn, die Sitzung wurde überschritten.
  • Sind Sie sicher, dass diese Zeile wirft den NPE, weil es unmöglich ist, für Integer.parseInt werfen eine NPE. Alle, die es wirft, wird eine NumberFormatException.
  • 1. Check-servlet-Aufruf um. 2. Sitzung ausdrücklich für ungültig erklärt, bevor die zweite servlet aufgerufen wurde, überprüfen Sie bitte diese.
  • Vielen Dank für die Informationen. "Wenn es keine aktuelle Sitzung und erstellen Sie wahr ist, gibt eine neue Sitzung". Gedruckt in der java-doc 🙂
  • Wenn das Attribut null ist, würde ich erwarten, dass die toString() zu werfen, die NullPointerException. Ist es definitiv geworfen auf die Zeile mit dem parseInt? Als Viruzzo oben gesagt, können Sie drucken, uId, bevor Sie die parseInt?
  • Nein, ich konnte daher nicht die toString() wirft die Ausnahme...
  • Ihre servlets zu tun mit zwei verschiedenen Sitzungen.
  • wenn der null-Zeiger-Ausnahme wird geworfen, sollten Sie die Nummer der Zeile, die zeigt, wo der null-Zeiger gefunden wird.

InformationsquelleAutor xupla | 2012-01-16
Schreibe einen Kommentar