Announcement

Collapse
No announcement yet.

Servelt verwendet bestehendes Servlet um Daten zu ermitteln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Servelt verwendet bestehendes Servlet um Daten zu ermitteln

    Hallo Zusammen,

    ich habe mich das Ganze Wochenende mit folgendem Problem beschäftigt. Leider konnte ich keine ausreichende Lösung finden.

    Im Grunde geht es darum, wie ich einen Request an Servlet A ändern und an Servlet B weiterleiten kann.

    Grundlegendes:
    Ein ERP-System stellt eine .jsp und AJAX Anbindung bereit.

    Dabei stellt dieses 2 Servelts für die Verarbeitung bereit.
    Servlet A dient zur Erstellung der html-Seite (eigentlich ja xml und xsl).
    Servelt B ist für den Datenaustausch per AJAX zuständig.

    Workflow des StandardAPI's:
    Ruft ein User eine bestimmte URL auf, erhält er einen Anmeldebildschirm. Nach der erfolgreichen Anmeldung wird er automatisch auf die gewünschte .jsp weitergeleitet. (Durch Servlet A)
    In dieser html-Seite kann der User Formularfelder ausfüllen. Mit submit werden die Daten per AJAX in Form von xml an das Servlet B gesendet. Dieses Servlet ruft in Hintergrund API's auf und erzeugt einen Response. Diese wird an den Browser gesendet und dort mittels AJAX eingearbeitet.

    Das funktioniert so auch sehr gut.

    Sobald man allerdings mit MobileBrowsern arbeitet, geht nichts mehr.

    Deshalb hab ich mir folgendes ausgedacht.
    Neuer Workflow:
    Ich schreibe eine ganz einfache .jsp OHNE Ajax-Anbindung die die Felder in Form eines Formulars beinhaltet. Meldet sich ein User auf diese URL an ==> Anmeldebildschirm und danach erhält er die .jsp. (durch Servelt C; also ein neues Servlet)

    Er kann die Felder befüllen und mit submit an das Servlet C senden.

    Und jetzt kommt mein Problem:
    Der Request an das Servlet C beinhaltet die Abfrageparameter in Form von Attributen im Request (Key/Value-Paare). Daher generiere ich im Servlet C ein xml (wie von Servlet B erwartet) und sende einen Request mit dem xml-File an Servelt B (Das DatenAPI-Servlet). Dieses gibt mir einen Response als xml mit den benötigten Abfrage-Attributen zurück.
    In Servelt C parse ich dieses xml wieder und setze sie als Key/Value-Paare in die Session und leite die Verarbeitung an meine .jsp weiter. Diese .jsp ließt die Werte aus und sendet eine html-Seite an den Browser.

    Das Problem nochmals herausgezogen:
    Wie kann ich aus Servlet C einen Aufruf von Servlet B mit einem neuen Request machen, sodass jedoch Servelt B unter der gleichen Session wie Servlet C läuft und Servlet C nach der Ausführung von Servlet B den Response nochmals überarbeiten kann.

    Ich hätte es mir folgendermaßen vorgestellt. Das fkt. jedoch leider nicht.
    Ich erzeuge einen RequestDispatcher. Ändere den Request von Servlet C. Mittels include leite ich den Aufruf an Servelt B weiter und erhalte somit als Response die Daten des API. Dieses Response parse ich wieder in Key/Value-Paare,...

    Leider kam ich mit diesem Ansatz nicht weit, da ich den Inhalt des Requests nicht ändern kann. (Ich muss das neue xml-File in den Request stecken um einen Aufruf durchführen zu können.)

    Hat jemand von euch evtl. einen Tip, wie ich das lösen kann? Wär echt super.

    Vielen lieben Dank, Flo
Working...
X