Hallo, Forum,
ich bin gerade bei einem Projekt, in dem nach erfolgreichem Login zwischen mehreren Seiten hin- und hergewechselt wird(Steuerung einer Hausanlage per Tomcat/Eclipse/Servlet/Webbrowser).
Was ich nicht hinkriege, ist, daß ich den angemeldeten Benutzer brauchbar identifiziere. Zwar habe ich schon von T. Darimont den hilfreichen Tip bekommen, wie ich an den Principal des Benutzers komme; allerdings schaffe ich es nicht, eine sinnvolle if - Abfrage zu formulieren.
Bei jedem meiner Versuche bekomme ich eine Null - Pointer Exception.
Aufgabenstellung ist, daß ein "refresh" des Browsers NICHT AUTOMATISCH die ganze "do get" - Methode des Servlets automatisch neu lädt - sonst wird z.B. ein Türöffner oder ein Rolladenmotor "unbeabsichtigt" aktiviert.
Ich möchte also den Benutzer identifizieren, und falls er bereits einmal diesen Button geklickt hatte, soll ein Abfragefenster erscheinen nach dem Motto "Wollen Sie wirklich?" Meine Werkzeuge wären also meiner Erkenntnis nach die Session - Id und der Benutzer - Principal.
Folgendes habe ich schon in unterschiedlichen Variationen probiert:
>>Ich habe die aktuelle Session-Id in ein Cookie gepackt und wollte dann folgendermaßen abfragen(ich schreibe vereinfacht, keinen "richtigen" Quellcode):
cookie = null;
if (cookie(Value) == Session-ID){
-> println"Sie sind gerade dabei, den Motor erneut einzuschalten. Wollen Sie wirklich?"
-> falls NEIN -> Browser zurück
-> falls JA -> Browser Refresh
}else{ //also falls noch kein Cookie existiert
neuen Cookie erstellen mit Value=Session-ID
<<
Bei jedem "Refresh" sollte also entweder ein Cookie gesetzt werden oder eine Abfrage erscheinen.
Aber egal, wie ich die "if" - Abfrage formuliere, bekomme ich eine Exception.
Weiß jemand, wie ich das umsetzen kann? Oder gibt es eine ganz simple Version, wie z.B. in PHP "if(isset($_COOKIE['session']))..."
Danke für jede Anregung!
Heinrich
P.S.: für T. Darimont: Die Dokumentation habe ich schon fertig; das o.g. Feature will ich aber als "Bonus" einfach in die Steuerung einbauen, obwohl es nicht dokumentiert ist.
Kann eigentlich für die Note nur von Vorteil sein, denke ich ...
ich bin gerade bei einem Projekt, in dem nach erfolgreichem Login zwischen mehreren Seiten hin- und hergewechselt wird(Steuerung einer Hausanlage per Tomcat/Eclipse/Servlet/Webbrowser).
Was ich nicht hinkriege, ist, daß ich den angemeldeten Benutzer brauchbar identifiziere. Zwar habe ich schon von T. Darimont den hilfreichen Tip bekommen, wie ich an den Principal des Benutzers komme; allerdings schaffe ich es nicht, eine sinnvolle if - Abfrage zu formulieren.
Bei jedem meiner Versuche bekomme ich eine Null - Pointer Exception.
Aufgabenstellung ist, daß ein "refresh" des Browsers NICHT AUTOMATISCH die ganze "do get" - Methode des Servlets automatisch neu lädt - sonst wird z.B. ein Türöffner oder ein Rolladenmotor "unbeabsichtigt" aktiviert.
Ich möchte also den Benutzer identifizieren, und falls er bereits einmal diesen Button geklickt hatte, soll ein Abfragefenster erscheinen nach dem Motto "Wollen Sie wirklich?" Meine Werkzeuge wären also meiner Erkenntnis nach die Session - Id und der Benutzer - Principal.
Folgendes habe ich schon in unterschiedlichen Variationen probiert:
>>Ich habe die aktuelle Session-Id in ein Cookie gepackt und wollte dann folgendermaßen abfragen(ich schreibe vereinfacht, keinen "richtigen" Quellcode):
cookie = null;
if (cookie(Value) == Session-ID){
-> println"Sie sind gerade dabei, den Motor erneut einzuschalten. Wollen Sie wirklich?"
-> falls NEIN -> Browser zurück
-> falls JA -> Browser Refresh
}else{ //also falls noch kein Cookie existiert
neuen Cookie erstellen mit Value=Session-ID
<<
Bei jedem "Refresh" sollte also entweder ein Cookie gesetzt werden oder eine Abfrage erscheinen.
Aber egal, wie ich die "if" - Abfrage formuliere, bekomme ich eine Exception.
Weiß jemand, wie ich das umsetzen kann? Oder gibt es eine ganz simple Version, wie z.B. in PHP "if(isset($_COOKIE['session']))..."
Danke für jede Anregung!
Heinrich
P.S.: für T. Darimont: Die Dokumentation habe ich schon fertig; das o.g. Feature will ich aber als "Bonus" einfach in die Steuerung einbauen, obwohl es nicht dokumentiert ist.
Kann eigentlich für die Note nur von Vorteil sein, denke ich ...