Von einem Servlet auf ein anderes zugreifen

Status
Nicht offen für weitere Antworten.

HyperHyper

Mitglied
Neuer Tag, neues Problem :wink:

Habe nun 2 Servlets laufen. Am ersten Servlet werden alle eingehenden Requests ausgewertet und in der dort instanziierten Klasse "Speicher" mit einer simplen Add-Methode gespeichert.

Nun möchte ich von einem anderen Servlet aus auf diese Klasse "Speicher" zugreifen um die aktuell dort befindlichen Daten auslesen und verarbeiten zu können. Wie komme ich also an die Referenz von Klasse "Speicher" (welche sich in Servlet 1 befindet) ran, vom Servlet 2 aus?

Wie stelle ich das am besten an?
 
was hat dies mit Servlets zu tun?
das ist ja eine allgemeine Frage: wie kann ein Objekt auf ein anderes zugreifen:
dafür braucht es eine Referenz auf dieses Objekt und eine getSpeicher()-Operation

--------

wieder zurück zu Servlets,
redest du da eigentlich von unterschiedlichen Requests?
dann kannst du dir nicht mehr sicher sein, dass zum Zeitpunkt des zweiten Requests das Servlet des ersten überhaupt noch da ist,

da jeder Request für sich arbeitet, ist ein gegenseitiger Zugriff außerdem ausgeschlossen,

falls die beiden Servlets in einem Request abgearbeitet werden,
ist es immer noch nicht üblich, sich gegenseitig zu referenzieren

--------

benutze die Session oder den Request als Speicherplatz für Daten, die nur einem Benutzer interessieren:
request.setAttribute() oder
request.getSession().setAttribute()

für globale Programmdaten static-Hilfsklassen oder besser eine Datenbank
 
Geht es um URLRewriting?
Alle Anfragen gehen an ein Servlet und von dort wird weitergeleitet?
Falls ja mach das so:

- Abstrakte Klasse Aktion mit ner abstrakten Methode performAction(request, response)
- nen ActionManager (Map) welche als Key einen Text, z.b. addNews, showIndex oder so speichert. Als Value das zugehörige Aktion-Objekt oder die Aktion-Klasse
- In deinem zentralen Servlet wird ein Parameter/Attribut ausgelesen welches festlegt was passieren sol. Z.b. als Link meinservlet?action=showIndex.
- Dein Servlet holt dann vom ActionManager die zugehörige Klasse/Objekt und ruft die performAction auf.

Schau dir dazu auch mal die Struts-Sourcen an. Sind zwar umfangreicher und beinhalten noch Forwards, ActionForms u.s.w., aber das prinzip ist das gleiche.
 
KSG9|sebastian hat gesagt.:
Geht es um URLRewriting?
Alle Anfragen gehen an ein Servlet und von dort wird weitergeleitet?
Falls ja mach das so:

- Abstrakte Klasse Aktion mit ner abstrakten Methode performAction(request, response)
- nen ActionManager (Map) welche als Key einen Text, z.b. addNews, showIndex oder so speichert. Als Value das zugehörige Aktion-Objekt oder die Aktion-Klasse
- In deinem zentralen Servlet wird ein Parameter/Attribut ausgelesen welches festlegt was passieren sol. Z.b. als Link meinservlet?action=showIndex.
- Dein Servlet holt dann vom ActionManager die zugehörige Klasse/Objekt und ruft die performAction auf.

Schau dir dazu auch mal die Struts-Sourcen an. Sind zwar umfangreicher und beinhalten noch Forwards, ActionForms u.s.w., aber das prinzip ist das gleiche.
Hallo, werde dies mal versuchen. Ok es ist wie schon von SlaterB erwähnt eigentlich eine normale "wie referenziere ich"-Frage, allerdings dachte ich das es wenn man mit Servlets arbeitet, es noch andere Lösungswege gibt.
 
Hm ... ich bin mir nicht sicher, ob das so geht, aber evtl als Denkanstoß: Beide Servlets per Sockets verbinden, und "Speicher" über diesen Socket an das Servlet schicken.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben