Servlet destroy

Status
Nicht offen für weitere Antworten.

MQue

Top Contributor
Hallo,

hab mal wieder eine (hoffentlich noch nicht nervige) Frage zu einem Servlet,
Wenn ich eine erste Anfrage vom Client an der Server (das Servlet) stelle, dann wird bei mir in der Methode doPost(...) eine Session erzeugt und der Client mit der IP- Adresse und dem Port über Hibernate in eine Tabelle der Datenbank eingetragen.

Wenn am Client der Browser geschlossen wird, dann soll die IP-Adresse und der Port dieses Clients wieder ausgetragen werden.
Meine Frage wäre jetzt, kann ich das im Servlet- Lifecycle realisieren (also in der Methode destroy()) oder kann man das beim WebContainer Tomcat nicht sagen, wann (bzw. ob überhaupt) die destroy- Methode aufgerufen wird? Ist es ok, wenn ich das Austragen in der destroy- Methode mache?

lg
 
Zuletzt bearbeitet:
M

maki

Gast
Wenn am Client der Browser geschlossen wird, dann soll die IP-Adresse und der Port dieses Clients wieder ausgetragen werden.
Das bekommt der Server doch gar nicht mit.
Da bleibt nur der Session Timeout, kennst du schon das Interface HttpSessionListener?

Wozu überhaupt in eine DB speichern wenn es sowieso wieder gelöscht werden soll?
Reicht den keine Map, die von einem Filter verwaltet wird?

Meine Frage wäre jetzt, kann ich das im Servlet- Lifecycle realisieren (also in der Methode destroy()) oder kann man das beim WebContainer Tomcat nicht sagen, wann (bzw. ob überhaupt) die destroy- Methode aufgerufen wird? Ist es ok, wenn ich das Austragen in der destroy- Methode mache?
Die ist anscheinend nicht klar wozu die destroy Methode da ist, oder??

Wieso nicht mal die Doku lesen? Die Servlet Spek. lesen tut nicht weh und hilft dem Veständnis, verringert auch die Verwirrtheit ;)
 

MQue

Top Contributor
Hab ich gemacht, sollt ich vielleicht öfter reinschauen :)

Code:
When the servlet container determines that a servlet should be removed from
service, it calls the destroy method of the Servlet interface to allow the servlet to
release any resources it is using and save any persistent state. For example, the
container may do this when it wants to conserve memory resources, or when it is
being shut down.

lg
 

FArt

Top Contributor
Der Lifecycle gilt für eine Servletinstanz, nicht für die Sessions. Die Sessions haben auch einen Lifecycle, die du über Listener mitbekommen kannst.

Schau mal in die Servletspec: SRV 10.2.1

Die Spec ist überhaupt zu empfehlen ;-)

[EDIT]
Außerdem bist du im falschen Gehege. Du hättest zum Web Tier gehört ;-)
 
Zuletzt bearbeitet:

MQue

Top Contributor
Wie wäre es mit durchlesen anstatt reinzuschauen? Schaden würde es dir nicht.

Da hast Du schon recht auf der einen Seite und ich hab auch nichts gegens lesen und nachschlagen nur bei uns ist alles sehr knapp bemessen, ich bin der einzige Java- Programmieren und muss mir daher alles selber beibringen. Gegen das hab ich auch noch nichts aber es fehlen halt manchmal auch Diskusionen (z.B.: war mit neu, dass es eine Servlet- Spezifikation gibt).
Ich werde versuchen bevor ich einen neuen Thread aufmache, (noch) mehr zu recherchieren, wobei ich sagen muss, dass ich auf Deine Antworten nicht verzichten möchte, sind immer sehr hilfreich.
lg
 

FArt

Top Contributor
Da hast Du schon recht auf der einen Seite und ich hab auch nichts gegens lesen und nachschlagen nur bei uns ist alles sehr knapp bemessen, ich bin der einzige Java- Programmieren und muss mir daher alles selber beibringen. Gegen das hab ich auch noch nichts aber es fehlen halt manchmal auch Diskusionen (z.B.: war mit neu, dass es eine Servlet- Spezifikation gibt).
Ich werde versuchen bevor ich einen neuen Thread aufmache, (noch) mehr zu recherchieren, wobei ich sagen muss, dass ich auf Deine Antworten nicht verzichten möchte, sind immer sehr hilfreich.
lg

Müde Ausrede ;-)

Ohne die Theorie zu kennen (und die Spec) wirst du kein sauberes Design und keine saubere Implementierung zustande bringen. Mit sauber meine ich, dass es dir plötzlich in der Produktion um die Ohren fliegen könnte, weil sich der Container anders verhält oder die Infrastruktur leicht unterschiedlich ist.
Zusammengerechnet sind die Probleme, die man sich dadurch einhandelt, teurer und zeitaufwendiger, als es gleich richtig zu machen.
 
M

maki

Gast
Zusammengerechnet sind die Probleme, die man sich dadurch einhandelt, teurer und zeitaufwendiger, als es gleich richtig zu machen.
Sehe ich genauso, warum im trüben Fischen wenn man auch sehen könnte was los ist?
Fand die Servlet Spec. immer gut als Bettlektüre.
 

byte

Top Contributor
Du könntest per JavaScript aufs Verlassen der Seite horchen und dann einen AJAX Call machen.
 

MQue

Top Contributor
Sehe ich genauso, warum im trüben Fischen wenn man auch sehen könnte was los ist?
Fand die Servlet Spec. immer gut als Bettlektüre.

Da liegen schon 700 Seiten Spring und 400 Seiten Java Concurrency, es ist also wirklich nicht Faulheit, aber ein bisschen Zeit brauch ich no0ch, bis sich das Wasser aufklarrt.
lg
 

Noctarius

Top Contributor
Du könntest per JavaScript aufs Verlassen der Seite horchen und dann einen AJAX Call machen.

Außer bei Opera z.B. der das Event onBeforeUnload nicht kennt und bei onUnload könnte die Zeit zu kurz sein um den Ajax Request sauber zu feuern.

Da liegen schon 700 Seiten Spring und 400 Seiten Java Concurrency, es ist also wirklich nicht Faulheit, aber ein bisschen Zeit brauch ich no0ch, bis sich das Wasser aufklarrt.
lg

Um Spring im Bereich Servlet zu verstehen sollte man die Servlet Spec kennen, sonst kommt da nie was bei rum. Auch erst zu sagen "hab schon mal reingeschaut" und dann zu sagen "die ist mir neu" erstaunt mich auch etwas.

Abgesehen davon weiß ich nicht ob man sich beim ersten Projekt so extrem mit Concurrency auseinander setzen sollte, dass man das Buch braucht.
Versuch doch erstmal möglichst stateless zu arbeiten.
 

MQue

Top Contributor
Außer bei Opera z.B. der das Event onBeforeUnload nicht kennt und bei onUnload könnte die Zeit zu kurz sein um den Ajax Request sauber zu feuern.



Um Spring im Bereich Servlet zu verstehen sollte man die Servlet Spec kennen, sonst kommt da nie was bei rum. Auch erst zu sagen "hab schon mal reingeschaut" und dann zu sagen "die ist mir neu" erstaunt mich auch etwas.

Abgesehen davon weiß ich nicht ob man sich beim ersten Projekt so extrem mit Concurrency auseinander setzen sollte, dass man das Buch braucht.
Versuch doch erstmal möglichst stateless zu arbeiten.

Ein kleiner Verteidigungsversuch meinerseits, nachdem maki geschrieben hat, dass ich die Servlet- Spezi. lesen soll, hab ich "reingeschaut",

JavaConcurrency lese ich nicht wegen dem Web- Projekt, bei dem ich gerade drann bin sondern wegen dem Vorprojekt, bei dem ich Threads des öfteren benötigt habe.

lg
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Java Servlet doPost request, Mehrere Parameter mit demselben Namen aus Tabellenzeilen Web Tier 2
R servlet-mapping führt zu 404-Fehlern Web Tier 0
B Servlet mit TomCat9 Web Tier 0
A redirect mit servlet-mapping in web.xml Web Tier 4
J Wie Mouse Event in Servlet einbinden? Web Tier 1
D JSF Servlet Mapping Web Tier 3
J Session Servlet - JavaScript Web Tier 6
D Servlet 1 Servlet für alles - Wie Cookies per Ajax? Web Tier 1
S Problem mit Checkboxen im Servlet erkennen Web Tier 3
Todesbote Servlet MVC Design Pattern Web Tier 1
A Anfänger-Frage Servlet/Applet/JSP Web Tier 0
Shams Allgemeine Verständnisfrage zum Thema Servlet (in Vaadin) Web Tier 2
H File Output Servlet Web Tier 6
I vTiger Astersik Connector: NO JSP Support for , did not find org.apache.jasper.servlet.JspServlet Web Tier 0
OnDemand Servlet oder JSP Web Tier 12
H Servlet/JSP und OSGI Web Tier 2
L Servlet Datenbank Web Tier 0
D Java EE Servlet login Problem Web Tier 1
W Servlet SPEICHERN UNTER-Dialog für mehrere Dateien Web Tier 4
A Faces Context nicht mehr erreichbar nach Servlet Aufruf Web Tier 1
S Java Bean und Java Servlet Web Tier 2
D Servlet Servlet Weiterleitung static html Web Tier 5
G GWT 404 - Servlet nicht gefunden Web Tier 6
H Applet wirft AccessControlException bei File von Servlet Web Tier 3
H Servlet lässt sich nicht deployen Web Tier 7
C Kommunkation Servlets/Browseraufruf Servlet Web Tier 4
F.S.WhiTeY Servlet Servlet wird nicht angesprochen Web Tier 3
J Servlet Zugriff Servlet Web Tier 11
A JSON von JavaScript an Servlet Web Tier 9
K Servlet + JSP: JSP-Seite ein Array/ArrayList überliefern vom Controller-Servlet Web Tier 8
0 Servlet.Properties Web Tier 3
P Servlet Wo gibt es das javax.servlet.Servlet? Web Tier 2
H Servlet Servlet nimmt HTTP-GET mit Parameter entgegen Web Tier 2
5 Bild Pfad Servlet Web Tier 2
D Datenbankzugriff im Servlet Web Tier 5
H Servlet Apache Geronimo: Servlet nicht erreichbar Web Tier 2
S Ich brauche Buchempfehlung über JSP und Servlet Web Tier 2
A Parameterübergabe an Servlet und Aufruf von Servlets per Java Code Web Tier 7
S Auswahl eine Zeile von einer HTML Tabelle im Servlet Web Tier 4
K Servlet URL Mapping Web Tier 3
S ClassPath für Servlet Web Tier 3
reibi Servlet Logging - Standard Servlet Web Tier 5
K Portlet, Servlet doGet und doPost Web Tier 4
reibi Servlet Alleinlaufendes Servlet bauen Web Tier 6
P Servlet wird nicht gefunden - HTTP Error 503 Web Tier 7
lukas24680 Servlet pro Request Web Tier 2
C Pageing mit JSp&Servlet Web Tier 5
D JSP JSP integriert ein Servlet... Wie? Web Tier 7
I Servlet vor Browser URL-Direktzugriff schützen Web Tier 3
N Servlet ausführen Web Tier 26
B statische Html Seite als response erhalten (Servlet) Web Tier 3
A javax/servlet/jsp/jstl/core/Config Web Tier 1
F Servlet mapping ;-) Web Tier 3
H Servlet Mapping mit JSF Web Tier 8
B (JSP)+(Struts2)+(Servlet) Konfiguration web.xml Web Tier 2
W MVC mit Bean, JSP und Servlet Web Tier 6
T Button im Servlet - Werte übergeben Web Tier 2
J werte per post an servlet übergeben und auswerten Web Tier 3
ruutaiokwu HttpServletRequest-instanz in servlet und JSP unterschiedlich? Web Tier 5
T Bild durch anderes Bild ersetzen mit Servlet Web Tier 3
E Mein erstes Servlet Web Tier 8
S Servlet automatisch aufrufen Web Tier 2
J Kommunikation zwischen Servlet und EJB Web Tier 6
C Image in Servlet Web Tier 2
S Servlet File Upload (API oder JSPSmart download) Web Tier 4
N API Nutzung SERVLET Web Tier 12
J Memory Leak in Servlet nach längere Laufzeit Web Tier 6
ruutaiokwu template engine gesucht ohne abhängigkeit zum servlet container Web Tier 2
G Servlet Ausgabe richtig benutzen Web Tier 4
W Servlet auf sich selbst verweisen lassen (Anfängerfrage) Web Tier 6
M Servlet Ausführungsfehler Web Tier 4
D Servlet alle 6h ausführen Web Tier 5
M Servlet & JSP Organisation Web Tier 2
J seltsames Auslastungsproblem bei Servlet Web Tier 7
ruutaiokwu JSF - läuft ausserhalb des servlet-containers? Web Tier 5
R Direkten Servlet-Aufruf verhindern (JSP) Web Tier 3
K Formularweiterleitung an Servlet Web Tier 5
N Servlet: Problem mit getParameterValues Web Tier 4
J Dateiupload- Servlet Web Tier 14
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
G Kommunikation Servlet + Applikation Web Tier 4
megachucky Welche Servlet-Version benötigt GWT 2.0? Web Tier 13
X Servlet Select box Web Tier 6
S Java Servlet Content Type Web Tier 3
E Servlet zum speichern einer Datei in einer Datenbank Web Tier 3
M Servlet neuladen Web Tier 2
H Wie wurde ein Servlet aufgerufen Web Tier 2
J Servlet soll XML ausgeben und Javascript soll dieses einlesen Web Tier 3
H servlet fehlermeldung Web Tier 3
W JSP/Servlet Web Applikation programmierung Web Tier 9
J Faces response aus einem anderen Servlet heraus rendern Web Tier 4
E Servlet mit einem Link aufrufen? Web Tier 13
D Servlet FacesServlet is not available und Web Tier 3
S servlet bedienen mit get und post parameter Web Tier 10
S Laden von globalen Resourcen im Servlet Container..? Web Tier 3
T JBoss + Servlet + HTML Fileupload + Encoding Web Tier 1
2 Servlet: Pfad zu Webcontent Web Tier 6
J Servlet Sicherheit Web Tier 4
J struts2: vom value stack zum servlet Web Tier 14
D Servlet-Klassen und Templates trennen? Web Tier 18

Ähnliche Java Themen

Neue Themen


Oben