Browser schließen - Nachricht im Servlet ?

Status
Nicht offen für weitere Antworten.

KSG9|sebastian

Top Contributor
Hi Leute..

bekommt ein Servlet Nachricht davon, wenn der Benutzer den Browser schließt ?
Wird eine Methode aufgerufen ?

Gruß Sebastian
 

Mag1c

Top Contributor
Aehm, nicht unbedingt. Da auch der Servlet-Server keine Info bekommt, wenn der Browser geschlossen wird, kann er die Session nicht einfach zu machen. Das wird über nen Timeout realisiert.

Gruß
Mag1c
 

Bleiglanz

Gesperrter Benutzer
Nein

deshalb gibts da nen Timeout

der Server kriegt nix davon mit, wenn beim Client der Rechner explodiert
 

KSG9|sebastian

Top Contributor
ich hab folgendes Problem mit Portlets..

Ich muss 3 Objekte von der doView-Methode (anzeigen) in die actionPerformed (wird bei nem Formular-Submit aufgerufen) transportieren.

Problem ist, dass ich im Request nix speichern kann, und Benutzer-spezifisch _darf_ ich es nicht speichern (keine Session).
Wenn ich es im Request speicher kommt es nie an, weil

1. doView-Aufruf (Objekte in Request schreiben)
2. Portlet wird angezeigt (Request wird geleert und neu generiert, automatisch)
3. Formular submit und actionPerformed wird aufgerufen

Somit komm ich nicht an die Variablen im Request ran.
Wenn ich es als Instanz-Variablen speichern, dann hab ich keine Benutzerspezifische Unterscheidung...

Gibts da irgendne Möglichkeit
 

Mag1c

Top Contributor
Hi,

was sind das für Objekte und wo kommen die her ? Du müsstest die Objekte selbst oder IDs für die Objekte im Formular als versteckte Elemente unterbringen. Dann kommen die auch beim submit wieder auf den Server.
(weiß nicht, ob das mit Protlets auch funktioniert, hab damit noch nix gemacht).

Gruß
Mag1c
 

Mag1c

Top Contributor
Hi,

naja den SessionTimeout bekommt man sicher raus. Das mit der abgebrochenen Verbindung bezieht sich auf einen laufenden Request der im Java sicherlich durch eine Exception signalisiert wird (weiß ich grad nicht wie genau).

Du könntest sicher auch ganze Objekte im Formular hinterlegen (Stichwort: Serialisierung von Objekten). Ich finde die Idee dann aber doch nicht so toll. Habe noch eine Idee bzgl. IDs. Falls deine Objekte selbst keine eigenen IDs haben und/oder sie relativ kuzlebig sind und jeder Nutzer seine eigenen hat, könntest du diese Objekte in einer Art Cache ablegen und bei einem Request jeweils eine eigene ID generieren.

Also beim Anzeigen:

String id = ObjectCache.register(currentTime, obj);
... id im Formular einbauen ...

und später beim submit:

Object obj = ObjectCache.get(id);
... evtl. gleich aus dem Cache löschen ...

Gruß
Mag1c
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben