Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

per Servlet Daten einer Session abfragen

Empfohlene Antworten

hi

ich möchte anhand eines servlets (welches nur im hintergrund arbeiten soll (also wird aufgerufen wenn eine seite meines web servers aufgerufen wir und dann weiter verlinkt zu der eigentlichen seite)) zb herausfinden wie lange ein user durschnittlich auf meinen seiten verweilt (also wie lange die session dauert)

aber des kann ich doch nicht wirklich herausfinden oder!?!?

also ich weiß doch nur wann der user das letzte mal ein request gemacht hat oder!?!?

und des is ja net so der bringer wenn ich da jetzt zb eine seite mit viel text habe und er daran 20 min liest und dann auf eine andere seite geht hat er ja somit kein request mehr gemacht und mir fehlen somit min 20 min oder!??!

hat jemand von euch einen tipp oder eine idee wie man das herausfinden kann?!?!

vielen dank im voraus

Hi,

1. Ein Applet, das alle paar Sekunden die Verbindung checkt.

2. Ein Popup das du mit onunload aufrufst. Wobei ich nicht weiss ob man da interne und externe Links unterscheiden kann.

Beides finde ich persönlich störend und würde nicht die Beliebtheit deiner Seite bei mir fördern. ;)

Gruß Jaraz

Was du vorhast ist technisch eigentlich nicht möglich. Du hast einfach nicht die Möglichkeit zu überprüfen, wie lange der Benutzer auf deinen Seiten bleibt. Das ganze liegt an der Art und Weise wie das HTTP Protokoll arbeitet.

Es wird halt immer nur eine Verbindung zum Webserver aufgebaut, wenn du die aktuelle Seite aufrufst - und wenn die Seite da ist, dann ist halt auch wieder Ende. Sicherlich kannst du per Session überprüfen "Oh ja, der User war schonmal dagewesen" aber du kannst kein definitives Ende bestimmen. Es wäre zwar möglich zu sagen: Okay, wir haben das folgende Verhalten:

21:01 - Benutzer mit der IP 123.123.123.123 hat die Seite index.html abgerufen

21:03 - Benutzer mit der IP 123.123.123.123 hat die Seite content.html abgerufen

Und danach kommt nichts mehr. Das heisst der Benutzer wäre also 2 Minuten auf deiner Seite gewesen. Stop! Aber was ist, wenn der User zwar um 21:03 die Seite aufgerufen hat aber dann online 10 Minuten mit dem Lesen verbracht hat und dann seinen Browser geschlossen hat? Davon hast du nichts mitbekommen, also wäre die Statistik von 2 Minuten total falsch.

Kurz und gut: Solange du HTTP verwendest (und bei Webseiten wirst du kaum etwas anderes können *g*) kannst du nicht herausfinden wie lange ein Benutzer geblieben ist.

Ciao

Christian

hio

aha des is natürlich eher weniger schön und hat meine befürchtung bestätigt :-((( *g*

aber trotzdem vielen dank für eure antworten

aha des is natürlich eher weniger schön und hat meine befürchtung bestätigt

Naja die Frage ist doch: Was bringt es dir denn eigentlich zu wissen wie lange der Benutzer dagewesen ist?

Ciao

Christian

naja daran kann ich ja zb erkennen wie beliebt oder wie interessant die seite ist oder

also wenn sich die nutzer 20 -30 min auf ihr aufhalten weiß ich doch das es ihnen gefällt

aber wenn sie schon nach 20 sek weg klicken weiß ich das ich was verändern muss

naja daran kann ich ja zb erkennen wie beliebt oder wie interessant die seite ist oder

Das ist aber auch keine wirklich gute Qualitätskontrolle. Da kannst du wirklich eher darauf achten, wie oft _überhaupt_ jemand die Seite besucht das sagt nach meinen Erfahrungen deutlich mehr als die Dauer des Besuches.

Ausserdem muss eine kurze Aufenthaltszeit ja auch nicht schlecht sein - im Gegenteil. Es kann durchaus besser sein den Benutzer "nur" fünf Minuten auf seiner Seite zu haben, was nämlich bedeutet "Er kam, sah und fand was er wollte" wogegen 30 Minuten vielleicht bedeuten "Er hat verzweifelt etwas gesucht und nicht gefunden". Also Aufenthaltsdauer == Qualität halte ich für Quatsch.

Zweites Beispiel: Der Benutzer kommt und lädt die Seite im Hintergrund. Wartet 20 Minuten, weil er irgendwas anderes macht (andere Webseite gucken oder was weiss ich), kommt dann wieder auf die Seite zurück und merkt "Ach ne, eigentlich doch Blödsinn". Browser zu, Ergebnis Mist aber trotzdem werden 20 Minuten gezählt.

Ciao

Christian

hi

na siehste mal so kann man des also auch deuten und auswerten kommt ja immer darauf an (also ob langer oder kurzer aufenthalt besser ist) was der inhalt soner seite ist ne

und deshalb wäre es ja vielleicht auch am besten wenn man diese dauer pro seite nimmt um eine genauere analyse vornehmen zu können was

könnte man nicht per javascript nen zähler (also ne uhr) mitlaufen lassen, und wenn die seite geschlossen wurde den zählerstand inne datei schreiben (kann man in javascript datein schreiben?), und die datei dann vom servlet auswerten lassen?

Hi

Glaube mal schon das des geht.

Aber bei mir ist das Problem das die Seiten schon alle vorhanden sind und ich da nicht wirklich was dran ändern kann.

  • 2 Wochen später...

Ich möchte nur zur Vollständigkeit auf das Interface

javax.servelt.http.HttpSessionListener

hinweisen.

Eine Klasse, die dieses Interface implementiert, besitzt dadurch implizit die

Methode

public void sessionDestroyed(HttpSessionEvent arg0) {

}

Sie wird vom Container aufgerufen, wenn eine Session nicht mehr gülitg ist.

Dies ist dann der Fall, wenn beispielsweise der session timeout bei 0 ist

oder die methode invalidate des HttpSession Objekts aufgerufen wird.

Dem Container muß die die Klasse aber auch im Deployment Deskriptor über den Eintrag

<listener>

<listener-class>MySessionListener</listener-class>

</listener>

bekanntgemacht werden. Die Notwendigen Schlüsse aus dieser Information überlasse ich dem Leser. Es sei dennoch erwähnt dass das eingangs erwähnte Problem nur teilweise gelöst ist.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.