globe: Anfaengerfrage

Beitrag lesen

n'abend,

Nope, es ist im Multi-User-Betrieb, d.h. es kann waehrend die Daten in der Anzeige sind von einem anderen User geaendert werden - damit ist dieser Vergleich nicht moeglich.

Das hättest du von Anfang an sagen können, dann hätte ich dir auch von Anfang an sagen können, dass du schlicht ein eigenes Locking-Verfahren implementieren musst.

ganz banaler Ansatz zum lesen:

LOCKFILE = "/tmp/"+ md5(REQUEST_URI)+ ".lock";

1. prüfe ob LOCKFILE vorhanden und letzte Zugriffszeit nicht älter als $x Minuten
1.1 LOCKFILE ist vorhanden oder zu alt: Zugriff dementsprechend gesperrt, gib entsprechende Fehlermeldung aus, Ausführung abbrechen.

2. erstelle LOCKFILE mit Inhalt: AKTUELLE_SESSION_ID

3. hole daten, generiere webseite

ganz banaler Ansatz zum schreiben:

1. prüfe ob LOCKFILE vorhanden
1.1 LOCKFILE ist nicht vorhanden: Zugriff dementsprechend für niemanden exklusiv angefordert/gesperrt, entsprechende Fehlermeldung ausgeben, Ausführung abbrechen.

2. öffne LOCKFILE und prüfe Inhalt gegen die AKTUELLE_SESSION_ID
2.1 Die Prüfung ist fehlgeschlagen, Abbruch mit entsprechender Fehlermeldung

3. hole daten aus datenbank, prüfe gegen eingaben aus formular - mache was auch sonst immer, schreibe daten in datenbank

4. lösche LOCKFILE

Ich würde die lebensdauer des LOCKFILEs relativ gering halten und im Formular ein wenig "AJAX" einbauen, welches in einem bestimmten Takt Kontakt zum server aufnimmt und sagt "hallo, ich bin an diesem Formular noch dran, erneuer mir mal bitte mein LOCKFILE". Das ist jedoch lediglich ein simples Beispiel, wie man sowas hinbekommen könnte.

Jo, klar, so meinte ich das auch ... wenn das Programm durchgelaufen ist, sind auch meine Variablen/Objekte weg.

Das ist bei einem stateless Servlet auch nicht anders. Da muss das entsprechende Servlet schon Request-übergreifend Daten speichern können.

Ja, ich kenn Java, zu genuege- nur halt keinerlei Erfahrung mit JSP.
Und, wissend dass HTTP ein Protokoll ist und keine Sprache, wollte ich damit ausdruecken das es ja zustandslos ist.

Zum einen sind die meisten meiner Servlets auch "Zustandslos". Zum anderen ist JSP kein Wunderheilmittel, sondern nur eine (eklige) "Template-Engine". Mit JSP kannst du eine statische Vorlage nach ausführbarem Java interpretieren (und damit auch kompilieren) lassen.

Was mich halt dann intersieren wuerde ist, ob sowas in JSP standardmaessig eingebunden ist.

Ziemlich sicher nicht.

Sprich, wenn ich Daten an den Webserver schicke, dass eine Kopie davon auch serverseitg ueber Java zugreifbar ist, sodass ich, wenn das Dokument vom User zurueck gesendet wird, verglichen werden kann.

Du willst ja nicht die Daten zwischenspeichern, sondern verhindern, dass zwischenzeitlich ein Dritter die Daten manipuliert. Solltest du das nicht unterbinden (z.b. durch obiges Locking) ist auch die Zwischenspeicherung der Daten irgendwo im Serverkontext völlig sinnfrei.

Klar, selbes Prinzip wie mit der Session in PHP, aber halt evtl. built-in in JSP.

Sessions alleine bringen dir nichts, wenn du "Nebenläufigkeit" verhindern willst.

weiterhin schönen abend...

--
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|