JSP: Collection im Servlet überwachen (mit AJAX)?

Status
Nicht offen für weitere Antworten.

Novanic

Bekanntes Mitglied
Hallo Leute,

ich habe folgendes Problem, zu dem mir keine richtig gute Lösung einfällt. Hoffentlich fällt euch was schönes ein. :)

Also ich habe in meinem Servlet eine Collection und möchte auf der JSP-Seite etwas verändern, wenn die Collection des Servlets sich verändert. Hat jemand eine Idee wie sich das elegant lösen lässt?

Mir würde jetzt nur die Lösung einfallen:

1. JSP-Seite ruft Servlet per AJAX auf
2. Servlet wartet solange bis sich etwas in der Collection ändert
3. Servlet liefert die Antwort zurück

Das erscheint mir aber nicht ganz schick, da das Servlet bei dieser Lösung immer warten muss...
Gibts da nicht einen besseren Lösungsweg? :)

Danke schonmal.

Gruß Nova
 

WeirdAl

Bekanntes Mitglied
Hi,
das Servlet warten zu lassen wäre keine gute Idee. Was machst Du wenn 3-4 User gleichzeitig die Information haben wollen?

Wie genau soll das ablaufen? Nutzer A fügt der Liste etwas hinzu und Nutzer B soll darüber informiert werden? Falls dies so ist geht das nur afaik über Ajax, da dein Servlet so gesehen nur auf ein request mit einer response Antworten kann/darf. Es wäre sicher schick, wenn man dies via Observer Pattern realisieren könnte, aber unaufgefordert "responses" vom Servlet -> JSP zu schicken ist so viel ich weiß nicht möglich.

Evtl könntest Du das so realisieren, das Du eine Ajax Anfrage mit Timestamp Parameter machst und auf Servlet Seite den Timestamp vergleichst und nur bei einer Änderung die neue Collection überträgst. Nur weiss ich nicht, wie "performant" es ist jede Sekunde diesen Ajax request an das Servlet zu schicken.

Soweit mal
Alex
 

Novanic

Bekanntes Mitglied
Ja genau, so soll das laufen.

Ein anschauliches Beispiel:

Serverseitig ist eine Collection namens "Speisen"

UserA:
1. Klickt auf einen Button auf der JSP-Seite (heißt "Küche") und sendet somit den String "Kuchen" an ein Servlet.
2. Das Servlet fügt das Wort "Kuchen" der Collection "Speisen" hinzu.

Soweit funktioniert auch alles. Nun kommt das was ich erreichen möchte. :)

Die Seite auf der sich UserB befindet, soll aktualisiert werden, nachdem die Collection von UserA (wie oben beschrieben) geändert wurde.

Optimal wäre es wenn ich eine Anfrage schicken oder einen Listener eintragen könnte. Und dann nachdem irgendwann mal was in der Collection geändert wurde, eine Javascript-Funktion (sozusagen eine Event-Methode) auf der gleichen Seite (von UserB) aufgerufen wird.

Hat jemand eine Idee wie man das mit AJAX in Kombination mit Servlets realisieren kann?

Danke schonmal im Voraus, ist ganz dringend! :)

Gruß Nova
 
G

Guest

Gast
Ja, so läuft es ja momentan, aber so kanns nicht bleiben.
Ist das Intervall zu klein, verursacht es zu viel Last auf dem Server (bei vielen Usern) und ist das Intervall zu groß, wird der User zu spät benachrichtigt...

Es gibt doch auch das Observer-Pattern für AJAX oder nicht? Ich habe leider noch nichts brauchbares gefunden, bei dem es auch versucht wurde auf Servlets zu übertragen.

Kann mir jemand helfen?

Danke schonmal. :)

Gruß Nova
 

WeirdAl

Bekanntes Mitglied
Huhu,
Das klassische Observer Pattern wirst Du auch nicht mit Servlets realisieren können. Dazu müssten sich JSPs and das Observer Servlet anmelden und das Servlet müsste sobald sich Änderungen ergeben alle angemeldeten JSPs benachrichtigen.

Das Problem ist dabei, das ein Servlet nur auf Requests reagiert und nicht einfach so mal per Response irgendwann Seiten aktualisiert, was bei dem Observer Pattern nötig wäre. Mit Ajax musst du das ja über HttpRequest per GET oder POST auch erst ein Request an das Servlet schicken um dann die einzelnen Komponenten der Seite zu aktualisieren.

Eine Möglichkeit wäre evtl. die Änderung über ein Flag im Application Scope bekannt zu geben. Dazu muss aber gegeben sein, dass deine Collection für dein ganzes Projekt gilt und nicht nur ein Teil der Nutzer sehen sollen. Das hätte den Vorteil das Du nicht jedesmal das Servlet selbst "belästigen" musst, sondern erstmal nur überprüfst, ob sich überhaupt was geändert hat.

Cu
Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Collection überwachen (Servlet + AJAX) Allgemeines EE 3
H Server VM warning: bailing out to foreground collection Allgemeines EE 1
Y Java Collection an JavaScript übergeben Allgemeines EE 4
S Löschen einer Entity kaskadiert nicht auf Collection (1:n) Allgemeines EE 2
G Jakarta Servlet API 5.0 Allgemeines EE 1
pkm Frage wegen AJAX-Zugriff auf ein Servlet Allgemeines EE 1
Dimax Servlet Servlet Kommunikation Allgemeines EE 18
K Unterschied zwischen JSP & Servlet gegenüber REST mittels JAX-RS Allgemeines EE 1
Dimax Servlet läuft in Eclipse, aber nicht im Browser Allgemeines EE 74
M URL Servlet Request getParameter Allgemeines EE 2
M Servlet Methoden Aufruf im Servlet Allgemeines EE 10
J 404 Not found (Servlet) Allgemeines EE 1
J Asynchrones Servlet löst NullPointerException aus Allgemeines EE 5
E Servlet Servlet das richtige? Allgemeines EE 11
B HTTP-Header-Inspektor-Servlet Allgemeines EE 1
N JSP Servlet mit JSP ansprechen Allgemeines EE 2
F Mehrere Bilder aus MySQL DB via Servlet darstellen. Allgemeines EE 1
J FTP und Servlet Allgemeines EE 11
H Post an Servlet Allgemeines EE 2
A Binärdatei vom Servlet erzeugen lassen Allgemeines EE 3
S Servlet Authentication Filter Allgemeines EE 0
S LDAP JAAS oder Servlet Allgemeines EE 0
G Problem: Servlet in JSP einbinden mit <jsp:include> Allgemeines EE 3
F eigene Anwendung per Servlet Container starten Allgemeines EE 9
F Servlet Daten im Speicher ablegen Allgemeines EE 3
L Servlet ClassNotFoundException Servlet Allgemeines EE 3
G Allgemeine Frage zu Authentifizierung mittels Servlet API Allgemeines EE 2
J Servlet "package does not exist" Allgemeines EE 5
K Servlet-Mapping Allgemeines EE 9
0 Servlet mit ArrayList Allgemeines EE 3
E Servlet unter mehreren Adressen Allgemeines EE 16
S Pfad-Zugriff über Servlet-init() Allgemeines EE 2
E Servlet Wie kann ich ohne Hilfe von Eclipse in JBoss mein servlet aufrufen Allgemeines EE 2
S Servlet.service() threw exception Allgemeines EE 4
A Servlet erkennt request Objekt nicht Allgemeines EE 8
G Direkter Zugriff auf Servlet- doPost Allgemeines EE 15
G Servlet doGet, doPost Allgemeines EE 3
A Kodierungsproblem bei Parameterübergabe von Browser an Servlet (GET) Allgemeines EE 2
Antoras servlet-mapping auf dynamische URLs Allgemeines EE 17
0 Problem mit librarys javax.servlet.http.HttpServletRequest cannot be resolved Allgemeines EE 1
MQue Ajax - Servlet Allgemeines EE 2
MQue Servlet Allgemeines EE 9
S [Design] Dynamischer EJB Aufruf von Servlet Allgemeines EE 3
S Servlet auf JBoss 5? Allgemeines EE 11
B HttpSession bekommen wenn nicht in Servlet Allgemeines EE 8
MQue Servlet / Button Allgemeines EE 5
S In Eclipse werden die "Servlet-Klassen" nicht gefu Allgemeines EE 2
U javax.faces und javax.servlet cannot be resolved Allgemeines EE 2
W Potentielles Memory Leak bei Servlet Allgemeines EE 6
B unterschied servlet und bean Allgemeines EE 2
Escorter Servlet .sar und jede Menge .jar Archive Allgemeines EE 2
N Servlet und JSF (URL-Rewriting)? Allgemeines EE 3
A jsf: Servlet aufrufen, wie geht das? web.xml Fehler? Allgemeines EE 13
N Servlet zyklisch aktualisieren Allgemeines EE 2
zilti Verbindung Applet <-> Servlet Allgemeines EE 5
ARadauer Servlet Bild Rückgabe Allgemeines EE 2
I Über Formular Daten zu Servlet Allgemeines EE 36
H Servlet - Zwischenmeldung anzeigen bei längerer Berechnung Allgemeines EE 2
G Ordner mit Umlauten einlesen - Servlet Allgemeines EE 3
A web.xml für Servlet in Tomcat 5.5 erstellen Allgemeines EE 2
M Zwei Buttons in einem Servlet Allgemeines EE 2
M Servlet lässt sich nicht aufrufen Allgemeines EE 6
A web.xml für Servlet in Tomcat erstellen Allgemeines EE 6
B Servlet Allgemeines EE 3
G EJB - EJB wird nicht ins Servlet geladen Allgemeines EE 3
K load-on-startup -> in der Servlet Klasse Allgemeines EE 6
G Objekt an Servlet übergeben - oder Objekt global definieren? Allgemeines EE 4
W Was bei Servlet-Entwicklung alles beachten? Allgemeines EE 8
R Zugriff auf Filter Servlet Allgemeines EE 10
I JBOSS Jsp Files Pfad im Servlet? Allgemeines EE 4
N Servlet-Request abbrechen? Allgemeines EE 3
D Java Servlet mit Radio Buttons Allgemeines EE 2
G Servlet debugging Allgemeines EE 8
N Thread von Servlet aus starten Allgemeines EE 16
J Socket daten darstellen per jsp,servlet Allgemeines EE 2
W servlet über https Allgemeines EE 2
L Servlet kann Funktion nicht aufrufen Allgemeines EE 3
B Parameterübergane von Servlet an JSP funktioniert nicht ? Allgemeines EE 2
M Aus einem Servlet auf ein anderes zugreifen ? Allgemeines EE 2
G Servlet Serializable Allgemeines EE 2
B Servlet-Api.jar auf JBoss? (Migration von Tomcat zu JBoss) Allgemeines EE 4
H Servlet - Importieren von Code Allgemeines EE 2
P Java Servlet - Umgang mit Verlinkungen Allgemeines EE 7
M Wert aus Servlet an normale Klasse übergeben Allgemeines EE 2
E Servlet soll JFRame öffnen. Jframe.setvisible schlägtfehl Allgemeines EE 2
M servlet --> jsp - problem beim umstrukturieren Allgemeines EE 5
D Servlet Problem über Server Allgemeines EE 26
K Servlet per Formular aufrufen Allgemeines EE 8
L sessions mit servlet oder jsp ? Allgemeines EE 9
B JSF - Servlet mit Parametern über einen Link öffnen Allgemeines EE 3
D Binärdaten im Servlet entgegen nehmen, aber wie? Allgemeines EE 5
T Servlet-Instanzen und ServletContext Allgemeines EE 2
L speichern von daten mittels servlet in xml Allgemeines EE 8
N Liste mit Checkboxen an Servlet übergeben? Allgemeines EE 3
T Wie Datenbank und Servlet koppeln? Allgemeines EE 3
G Ladeseite anzeigen lassen während das Servlet noch arbeitet? Allgemeines EE 6
P Tomcat Servlet POST Daten als Array Allgemeines EE 2
P PDF per Servlet übertragen, danach keinen Inhalt mehr Allgemeines EE 12
N JSP kann Servlet nicht aufrufen! :-( Allgemeines EE 2
J Servlet Parameter aus web.xml übergeben, wie zugreifen? Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben