DLE Servlets definieren

Das CallFolderServlet dient dazu, Webanfragen an einen Webserver an die DLE weiter zu leiten. Eine Servlet Definition gliedert sich dabei immer in zwei Bereiche. Zum einen die reine Definition eines Servlets mit seinen Parametern, zum anderen das sogenannte Servlet Mapping, das URLs zu Servlets zuordnet. Ein Servlet hat mindestens einen Namen, der beliebig gewählt werden kann, jedoch eindeutig innerhalb einer Anwendung sein muss und eine Java Klasse, die für den Aufruf zuständig ist. Beim CallFoldertServlet ist dies die Klasse at.visionflow.dle.dwe.DLECallFolderServlet. Dieses Servlet benötigt zumindest ein weiteres sogenanntes Init-Parameter mit Namen dle.folder. Hier wird festgelegt, welcher DLE Ordner (Folder) aufgerufen werden soll.
Eine Minimalkonfiguration eines DLE Aufrufs erfordert daher Beispielhaft folgende Definition:

<servlet>
<servlet-name>Brick</servlet-name> <servlet-class>at.visionflow.dle.dwe.DLECallFolderServlet</servlet-class>
<init-param>
<param-name>dle.folder</param-name>
<param-value>WEB:Tutorial</param-value> </init-param>
</servlet>

Nach der Servlet Definition wird dann über das Servlet Mapping festgelegt, welche URLs zu welchem Servlet geleitet werden.
Die beliebteste und einfachste Methode ist es, einfach alle Aufrufe, die mit „.brick“ enden, an das Servlet weiter zu leiten:

<servlet-mapping>
<servlet-name>Brick</servlet-name>
<url-pattern>*.brick</url-pattern>
</servlet-mapping>

Es können auch mehrere URL Patterns hintereinander angegeben werden, das * darf dabei jedoch nur am Anfang oder am Ende eines Patterns angegeben werden. Alternativ könnte man z.B. alle Anfragen die unterhalb von /secure und /geheim liegen, an ein anderes (vorher definiertes) Servlet weiterleiten, das dann z.B. einen anderen DLE Ordner aufruft:

<servlet-mapping>
<servlet-name>SecureBrick</servlet-name>
<url-pattern>/secure/*</url-pattern>
<url-pattern>/geheim/*</url-pattern>
<url-pattern>/ </url-pattern>
</servlet-mapping>

Das letzte URL Pattern („/“) im obigen Beispiel erlaubt es „Root“ anfragen an die Webanwendung zu beantworten. Ruft man die Web-Anwendung direkt auf, kann man entweder über eine welcome-file Einstellung auf eine statische Seite (z.B. index.html) verzweigen, oder durch ein „/“ (root) Mapping wie oben, zur DLE verzweigen.

Das CallFolderServlet hat weitere optionale Parameter, die als Init-Parameter analog zum dle.folder Parameter angegeben werden können.
Alle Parameter, die mit „dle.“ Anfangen, werden dabei als spezielle Parameter behandelt. Alle weiteren Init-Parameter werden als DLE Felder behandelt. Enthalten sie einen Doppelpunkt, werden sie eins zu eins an die DLE übergeben, ansonsten wird per Default der Wert aus dem Parameter dle.parameter.prefix vorangestellt. Ist dieser Parameter nicht definiert und der Parameter enthält keinen Doppelpunkt, oder fängt mit „dle.“ an, werden sie ignoriert. Auf diese Art kann man innerhalb der DLE Aufrufparameter als DLE Variablen fix vorgeben.

 

ParameterBeschreibung
dle.folderWelcher DLE Ordner (Folder) aufgerufen werden soll.
dle.parameter.prefixParameter Präfix für Init- und Anfrageparameter, die keinen Doppelpunkt enthalten.
dle.request.default.character-encodingDer Zeichensatz der Anfrage, der als Default verwendet werden soll, wenn keiner beim Aufruf mitgegeben wurde. Z.B. UTF-8.
dle.request.default.query-encodingDer Zeichensatz der Anfrage, der als Default verwendet werden soll, um URL-Parameter auszuwerten.
dle.response.default.character-encodingDer Zeichensatz der Antwort, der als Default verwendet werden soll, wenn keiner bei der Antwort mitgegeben wurde. Z.B. UTF-8.
dle.upload.allowedTrue oder False, gibt an, ob ein Upload mit diesem Servlet erlaubt ist. Default ist False.
dle.upload.tempDirVerzeichnis, in dem die Uploaddateien temporär zwischengespeichert werden, solange der Empfang läuft.
dle.upload.destDirVerzeichnis, in dem die Uploaddateien endgültig gespeichert werden sollen. Die Dateien erhalten einen eindeutigen Namen.
dle.upload.maxFileSizeMegaBytesMaximale Größe einer Datei beim Upload. Wird die Größe während des Uploads überschritten, wird der Upload abgebrochen.
dle.upload.storeDataInObjectTrue oder False. Gibt an, ob die Daten als Base-64 Zeichenkette im Upload Datenobjekt (DLE:UploadedFile) gespeichert werden sollen. Default ist False.
dle.response.header.<name>Parameter, die mit der Zeichenkette „dle.response.header.“ starten, definieren Default-Header, die in der http-Antwort automatisch gesetzt werden. „<name>“ Kennzeichnet dabei den Header-Namen.