WebFacing-Anwendungen können aus anderen Webanwendungen heraus programmatisch aufgerufen werden. Auf diese Weise ist es möglich, mit WebFacing generierte Benutzerschnittstellen in vorhandene Webanwendungen zu integrieren.
WebFacing-Anwendungen werden mit Hilfe von URL-Adressen gestartet. Normalerweise wird eine URL-Adresse als Link dargestellt, den ein Benutzer anklickt, um die Anwendung zu starten. Während der WebFacing-Konvertierung werden URL-Adressen in eine Datei index.jsp geschrieben. Nach der Implementierung der Anwendung sind dies die Links, die Benutzer anklicken, um die Anwendung zu starten. WebFacing-URL-Adressen können jedoch auch dynamisch durch andere Programme (z. B. Controller-Servlets) erstellt werden. Diese URL-Adressen könnten als Links, die auf einer Webseite angeklickt werden, an Benutzer zurückgesendet werden. Wichtiger ist jedoch, dass sie in forward()- und sendRedirect()-Methoden in anderen Webanwendungen verwendet werden können. Werden dynamisch bestimmte WebFacing-URL-Adressen mit forward()- und sendRedirect()-Methoden verwendet, bedeutet dies, dass ein Programm wie z. B. ein Controller-Servlet folgende Aktionen ausführen kann: Den zu verwendenden Host, das zu startende WebFacing-Programm, den für das WebFacing-Programm zu verwendenden CL-Befehl bestimmen usw. Nach Ausführung dieser Aktionen kann das Servlet die entsprechende WebFacing-Anwendung, deren Parameter bereits definiert sind, direkt einem Benutzer zur Verfügung stellen.
Bei einem gesteuerten WebFacing-Aufruf ist es auch möglich, alternative Authentifizierungsmethoden zu verwenden. Die gesamte Benutzerauthentifizierung kann jetzt in einem angepassten Servlet ausgeführt werden, bevor WebFacing aufgerufen wird. Das verwendete Authentifizierungsverfahren muss in der Lage sein, der WebFacing-Anwendung iSeries-Benutzerberechtigungen zur Verfügung zu stellen, damit sie auf iSeries-Ressourcen zugreifen kann.
Ein einfaches Beispiel für die Bestimmung des CL-Befehls, der zum Starten eines Programms verwendet werden soll:
newURL = "WFInvocation.do?clcmd=call " + iseriesProgram;newURL könnte dann als Weiterleitungs- oder Umleitungs-URL-Adresse für Ihre forward()- oder sendRedirect()-Methoden verwendet werden.
http://<Hostname>:<Port>/<Anwendung>/WFInvocation.do?clcmd=call%20ordentr
Das Beispiel zeigt die vollständige URL-Adresse, die mit http://<Hostname>:<Port>/<Anwendung>/ beginnt. Der Wert für newURL ist die Zeichenfolge, die sich daran anschließt. Das heißt die Zeichenfolge WFInvocation.do?clcmd=call%20ordentr. In diesem Beispiel gibt der erste Teil der URL-Adresse (http://<Hostname>:<Port>/<Anwendung>/) den Host, den Port und das Kontextstammverzeichnis für die Anwendung an. Befindet sich Ihr Controller-Servlet in demselben Kontextstamm, muss das Servlet nicht immer die vollständige URL-Adresse bestimmen. Falls erforderlich, könnten Sie jedoch im Servlet angeben, dass eine Zeichenfolge für die vollständig qualifizierte URL-Adresse erstellt wird.
Sie können die Präfixe für CL-Befehle, die für den programmgestützten Aufruf zulässig sind, über den Parameter clcmd angeben. Bei programmgestützten Aufrufen, die den Parameter clcmd verwenden und einen Wert angeben, der nicht mit einem von Ihnen zugelassenen Präfix beginnt, wird die Ausführung verhindert. Standardmäßig sind keine programmgestützten Aufrufe zulässig, die den auszuführenden CL-Befehl überschreiben.
Bei der Migration von Projekten aus dem WebFacing-Plug-in Version 5.1.2.2 und früher nach Version 6 wird der Sonderwert *ALL eingefügt, damit alle CL-Befehle ausgeführt werden können.
<context-param> <param-name>WFCLCMDAllowed0</param-name> <param-value>*ALL</param-value> </context-param>
Wird der Parameter clcmd nicht verwendet oder sind die verwendeten Werte für clcmd bekannt, sollten Sie den Wert *ALL entfernen und die Werte wie unten angegeben bereitstellen.
Um anzugeben, welche Befehlspräfixe erlaubt sind, editieren Sie die Quelle der Datei web.xml für Ihre WebFacing-Anwendung. Fügen Sie Parameternamen hinzu, die aus WFCLCMDAllowed gefolgt von zusätzlichem Text bestehen, um die einzelnen Parameter vorneinander zu unterscheiden. Fügen Sie dann für jeden Parameter einen Wert hinzu, um den Befehl anzugeben, der ausgeführt werden darf. Im folgenden Beispiel sind alle Befehle zulässig, die mit CALL MYCMD und GO MYMENU beginnen.
<context-param> <param-name>WFCLCMDAllowed0</param-name> <param-value>GO MYMENU</param-value> <param-name>WFCLCMDAllowed1</param-name> <param-value>CALL MYCMD</param-value> </context-param>
Stellen Sie nach Bedarf zusätzliche Kontextparameter mit den erforderlichen Werten bereit.
Dadurch werden clcmd-Werte wie beispielsweise CALL MYCMDisOK oder CALL MYCMD PARAM(ONE) zugelassen, während Werte wie beispielsweise CALL MY oder CALL OTHERCMD nicht zugelassen werden. Auch bei GO MYMENU gilt, dass zulässige Befehle mit der angegebenen Zeichenfolge beginnen müssen. Beim Vergleichen wird Groß-/Kleinschreibung nicht beachtet.
http://<Hostname>:<Port>/<Anwendung>/WFInvocation.do?clcmd=call%20ordentr&host=ISERIES1&userid=WEBFACING&password=WEBFACING
Anmerkung: In diesem Beispiel beziehen sich <Hostname> und <Port> auf den Hostnamen und den Port des Anwendungsservers, auf dem die WebFacing-Anwendung implementiert ist. <Anwendung> ist das Kontextstammverzeichnis für die implementierte Anwendung. Das Beispiel zeigt die folgenden Werte, die durch die URL-Adresse übergeben werden: Der CL-Befehl lautet call ordentr. Der Host, auf dem sich die 5250-Anwendung befindet, heißt ISERIES. Die Benutzer-ID lautet WEBFACING. Das Kennwort lautet WEBFACING. Mehrere Parameter werden durch & getrennt.
forward()-Methode von javax.servlet.RequestDispatcher | sendRedirect()-Methode von javax.servlet.http.HttpServletResponse |
---|---|
Ein serverseitiger Aufruf. Diese Methode ruft die andere Ressource auf, ruft ihre Ausgabe ab und gibt sie an den Client zurück. | Sendet den HTTP-Statuscode 302 an den Browser. Der Browser stellt die Verbindung zur URL-Adresse der Ressource automatisch wieder her. In diesem Fall weiß der Browser, dass die Ausgabe von der anderen Ressource stammt. |