SIMOTION - Servlets 1 ___________________ Einleitung Implementierter 2 ___________________ Funktionsumfang 3 ___________________ Lieferumfang 4 ___________________ Installation SIMOTION - Servlets Implementierung des 5 ___________________ Servlet-API 6 ___________________ Benutzer-Servlets erstellen Programmierhandbuch Konfigurationsdatei 7 ___________________ (JSERVER.XML) Beispiel-Servlet und 8 ___________________ Konfiguration 11/2010 Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie zur Vermeidung von Sachschäden beachten müssen. Die Hinweise zu Ihrer persönlichen Sicherheit sind durch ein Warndreieck hervorgehoben, Hinweise zu alleinigen Sachschäden stehen ohne Warndreieck. Je nach Gefährdungsstufe werden die Warnhinweise in abnehmender Reihenfolge wie folgt dargestellt. GEFAHR bedeutet, dass Tod oder schwere Körperverletzung eintreten wird, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden. WARNUNG bedeutet, dass Tod oder schwere Körperverletzung eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden. VORSICHT mit Warndreieck bedeutet, dass eine leichte Körperverletzung eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden. VORSICHT ohne Warndreieck bedeutet, dass Sachschaden eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden. ACHTUNG bedeutet, dass ein unerwünschtes Ergebnis oder Zustand eintreten kann, wenn der entsprechende Hinweis nicht beachtet wird. Beim Auftreten mehrerer Gefährdungsstufen wird immer der Warnhinweis zur jeweils höchsten Stufe verwendet. Wenn in einem Warnhinweis mit dem Warndreieck vor Personenschäden gewarnt wird, dann kann im selben Warnhinweis zusätzlich eine Warnung vor Sachschäden angefügt sein. Qualifiziertes Personal Das zu dieser Dokumentation zugehörige Produkt/System darf nur von für die jeweilige Aufgabenstellung qualifiziertem Personal gehandhabt werden unter Beachtung der für die jeweilige Aufgabenstellung zugehörigen Dokumentation, insbesondere der darin enthaltenen Sicherheits- und Warnhinweise. Qualifiziertes Personal ist auf Grund seiner Ausbildung und Erfahrung befähigt, im Umgang mit diesen Produkten/Systemen Risiken zu erkennen und mögliche Gefährdungen zu vermeiden. Bestimmungsgemäßer Gebrauch von Siemens-Produkten Beachten Sie Folgendes: WARNUNG Siemens-Produkte dürfen nur für die im Katalog und in der zugehörigen technischen Dokumentation vorgesehenen Einsatzfälle verwendet werden. Falls Fremdprodukte und -komponenten zum Einsatz kommen, müssen diese von Siemens empfohlen bzw. zugelassen sein. Der einwandfreie und sichere Betrieb der Produkte setzt sachgemäßen Transport, sachgemäße Lagerung, Aufstellung, Montage, Installation, Inbetriebnahme, Bedienung und Instandhaltung voraus. Die zulässigen Umgebungsbedingungen müssen eingehalten werden. Hinweise in den zugehörigen Dokumentationen müssen beachtet werden. Marken Alle mit dem Schutzrechtsvermerk ® gekennzeichneten Bezeichnungen sind eingetragene Marken der Siemens AG. Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durch Dritte für deren Zwecke die Rechte der Inhaber verletzen kann. Haftungsausschluss Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit der beschriebenen Hard- und Software geprüft. Dennoch können Abweichungen nicht ausgeschlossen werden, so dass wir für die vollständige Übereinstimmung keine Gewähr übernehmen. Die Angaben in dieser Druckschrift werden regelmäßig überprüft, notwendige Korrekturen sind in den nachfolgenden Auflagen enthalten. Siemens AG Industry Sector Postfach 48 48 90026 NÜRNBERG DEUTSCHLAND Copyright © Siemens AG 2010. Änderungen vorbehalten Inhaltsverzeichnis 1 Einleitung................................................................................................................................................... 5 2 Implementierter Funktionsumfang ............................................................................................................. 7 3 Lieferumfang.............................................................................................................................................. 9 4 Installation ............................................................................................................................................... 11 5 Implementierung des Servlet-API ............................................................................................................ 13 6 Benutzer-Servlets erstellen...................................................................................................................... 17 7 Konfigurationsdatei (JSERVER.XML) ...................................................................................................... 19 8 Beispiel-Servlet und Konfiguration........................................................................................................... 21 Index........................................................................................................................................................ 25 SIMOTION - Servlets Programmierhandbuch, 11/2010 3 Inhaltsverzeichnis SIMOTION - Servlets 4 Programmierhandbuch, 11/2010 1 Einleitung 0B SIMOTION - Servlets ist die Implementierung eines Servlet-Container. Servlets sind in Java geschrieben Programme, die die Fähigkeiten von Servern erweitern, die über ein Request/Pesponse Protokoll kommunizieren. Sie sind theoretisch nicht an ein Serverprotokoll (HTTP) gebunden, werden aber in der Regel nur im Zusammenhang mit HTTP/Webservern verwendet. Der Webcontainer stellt die Laufzeitumgebung für Webapplikationen mit ihren Servlets zur Verfügung und kann auf einer anderen Maschine laufen als der Webserver (Lastverteilung, Sicherheit/Redundanz). In SIMOTION laufen die Servlets in SIMOTION - IT Virtual Machine (Implementierung einer Java-Laufzeitumgebung) und haben somit auch die Möglichkeit das SIMOTION-API zu verwenden (Zugriff auf Objekte der SIMOTION-RT, NVRAM, Logging). Das Dokument beschreibt den implementierten Funktionsumfang, wie der Servlet-Container parametriert und gestartet, und wie ein Java-Beispielservlet in Betrieb genommen wird. %URZVHU UHVSRQVH UHTXHVW UHVSRQVH :HEVHUYHU :HEFRQWDLQHU UHTXHVW Bild 1-1 Ablauf Servlet Befehl SIMOTION - Servlets Programmierhandbuch, 11/2010 5 0BEinleitung SIMOTION - Servlets 6 Programmierhandbuch, 11/2010 Implementierter Funktionsumfang 1B 2 SIMOTION - Servlets unterstützt die "Java™ Servlet Specification, V2.2". In SIMOTION - Servlets sind jedoch nicht alle Konzepte aus dem Standard-Servlet-API implementiert. Implementiert sind: ● Unterscheidung der Art der Anfrage (GET, POST) ● Zugriff auf alle Parameter der Anfrage (sowohl aus der URL als auch Formulardaten) ● Zugriff auf den Inhalt der Anfrage ● Zugriff auf die Header der Anfrage ● Festlegen des Antwortstatus ● Festlegen der Header der Antwort ● Schreiben des Inhaltes der Antwort ● Logging ● Initialisierungsparameter aus Konfigurationsdatei für Servlets ● Servlet-Kontext mit Attributverwaltung und Initialisierungsparametern Damit können bereits vollwertige Servlets, inkl. Aufbau und auch Bearbeitung von Eingabeformularen (z.B. für Webbrowser), implementiert werden. Die detaillierte Beschreibung der implementierten Funktionen befindet sich in Implementierung des Servlet-API. (Seite 13) Nicht implementiert sind weitergehende Konzepte wie: ● Unterstützung von HTTP- Sessions ● Unterstützung für RequestDispatcher ● Unterstützung der Security Funktionalität ● Zugriff auf Client Informationen (Remote-Host,...) ● Internationalisierung (als Zeichensatz ist nur ISO-8859-1 verfügbar) ● Java Server Pages Hinweis Security-Funktionalität Um aus Sicherheitsgründen den Zugriff auf Servlets generell beschränken zu können, ist eine Authentifizierung innerhalb der Anbindung an den SIMOTION Webserver implementiert. Nicht implementiert werden jedoch die Java-Security-Funktionen die innerhalb des Servlet-API definiert sind (z.B. rollenbasiertes Sicherheitskonzept). SIMOTION - Servlets Programmierhandbuch, 11/2010 7 1BImplementierter Funktionsumfang SIMOTION - Servlets 8 Programmierhandbuch, 11/2010 3 Lieferumfang 2B Folgende Dateien sind Bestandteil von SIMOTION - Servlets: Dateiname Beschreibung svltapi.jar Java - Bibliothek welche das Standard Servlet-API enthält. svltimpl.jar Java - Bibliothek welche die Implementierung des Servlet-Container enthält. simotion_servlets_doc.zip Online - Dokumentation des Servlet-API (HTML - Format). simotion_servlets_demo.zip Java - Quellcode für Beispielservlet. JSERVER.XML Beispiel für eine Servlet - Konfigurationsdatei. SIMOTION - Servlets Programmierhandbuch, 11/2010 9 2BLieferumfang SIMOTION - Servlets 10 Programmierhandbuch, 11/2010 Installation 3B 4 Voraussetzung für SIMOTION - Servlets ist die Installation und Konfiguration von SIMOTION - IT Virtual Machine. Um SIMOTION - Servlets zu betreiben, müssen die Java-Bibliotheken svltapi.jar und svltimpl.jar auf dem Zielsystem abgelegt werden. Seit SIMOTION V4.1 SP4 müssen diese Java- Bibliotheken im Verzeichnis: ● /SIEMENS/SIMOTION abgelegt werden. Die mitgelieferten Konfigurationsdateien gehen davon aus, dass sich die SIMOTION Java Systembibliotheken in diesem Verzeichnis befinden. Die Java-Bibliothek svltapi.jar, welche das Standard Servlet-API enthält, muss hierbei in den Pfad der JamaicaVM aufgenommen werden. Im einfachsten Fall ist also in VMCONFIG.INI die Einstellung für den BOOTCLASSPATH entsprechend zu erweitern: BOOTCLASSPATH= b:/siemens/simotion/simotion.jar;b:/siemens/simotion/svltapi.jar Hinweis In SIMOTION - IT Virtual Machine ist immer der Semikolon als CLASSPATH Separator anzugeben. Um den Servlet-Container automatisch zu starten, ist in JINVOKE.XML folgende Zeile einzufügen: <AUTOSTART LIBRARY="B:/SIEMENS/SIMOTION/SVLTIMPL.JAR" CLASSNAME="com.siemens.ad.SIMOTION.servlets.ServletContainer"/> Benutzerservlets müssen in eine Java - Bibliothek (JAR - oder ZIP - Datei) verpackt, und auf dem Zielsystem im aktuellen Arbeitsverzeichnis abgelegt werden. Um ein Benutzerservlet zu laden, müssen lediglich die entsprechenden Informationen in die Konfigurationsdatei JSERVER.XML eingetragen werden. Diese Konfigurationsdatei muss ebenfalls im aktuellen Arbeitsverzeichnis am Zielsystem abgelegt werden. Hinweis die Software/Bibliotheken finden Sie auf der U&A DVD unter \VOL2\AddOn\4_Accessories\Simotion_IT\5_Simotion_VM SIMOTION - Servlets Programmierhandbuch, 11/2010 11 3BInstallation SIMOTION - Servlets 12 Programmierhandbuch, 11/2010 Implementierung des Servlet-API 4B 5 SIMOTION - Servlets unterstützt die "Java™ Servlet Specification, V2.2". Für das Servlet-API selbst wird die entsprechende Implementierung des "Apache Jakarta Project", entwickelt von der Apache Software Foundation (http://www.apache.org/), ohne Unterstützung für Java Server Pages, benützt. Das heißt, bis auf die Unterstützung für Java Server Pages, sind alle spezifizierten Interfaces und Klassen des Servlet-API grundsätzlich vorhanden, und die Online-Dokumentation des Servlet-API ist ebenfalls eine vollständige Beschreibung aller enthaltenen Interfaces und Klassen. Einzelne Interfaces, bzw. auch einzelne Methoden von Interfaces, werden in der ersten Version von SIMOTION - Servlets jedoch nicht unterstützt, da sie für einfache Servlets nicht notwendig sind. Generell nicht unterstützt werden z.B. die in der Servlet Spezifikation als "deprecated" (veraltet, sollten nicht mehr verwendet werden) gekennzeichneten Methoden. Werden einzelne Methoden eines Interface nicht unterstützt, so wird bei deren Aufruf eine Ausnahme vom Typ "UnsupportedOperationExeption" ausgelöst. Im Folgenden die detaillierte Aufstellung des Servlet-API, und eine Beschreibung der in SIMOTION – Servlets implementierten Funktionsumfangs. Package javax.servlet RequestDispatcher Ist nicht implementiert. ServletConfig Ist vollständig implementiert. ServletContext Folgende Methoden sind implementiert: public int getMajorVersion() public int getMinorVersion() public void log(String msg) public void log(String msg, Throwable throwable) public String getServerInfo() public String getInitParameter(String name) public Object getAttribute(String name) public Enumeration getAttributeNames() public void setAttribute(String name, Object object) public void removeAttribute(String name) public String getContextPath() SIMOTION - Servlets Programmierhandbuch, 11/2010 13 4BImplementierung des Servlet-API ServletRequest Folgende Methoden sind implementiert: public int getContentLength() public String getContentType() public ServletInputStream getInputStream() throws IOException public String getParameter(String name) public Enumeration getParameterNames() public String[] getParameterValues(String name) public String getProtocol() public String getServerName() ServletResponse Folgende Methoden sind implementiert: public ServletOutputStream getOutputStream() throws IOException public void setContentType(String type) public void reset() public boolean isCommitted() public void flushBuffer() throws IOException SingleThreadModel Ist bereits im Servlet-API entsprechend implementiert. GenericServlet Ist bereits im Servlet-API entsprechend implementiert. ServletInputStream Ist vollständig implementiert. ServletOutputStream Ist vollständig implementiert. ServletException Ist bereits im Servlet-API entsprechend implementiert. UnavailableException Ist bereits im Servlet-API entsprechend implementiert. Package javax.servlet.http HttpServletRequest Folgende Methoden sind implementiert: public Cookie[] getCookies() public long getDateHeader(String name) public String getHeader(String name) public Enumeration getHeaderNames() public int getIntHeader(String name) public String getMethod() public String getContextPath() public String getPathInfo() public String getQueryString() public String getRequestURI() public String getServletPath() SIMOTION - Servlets 14 Programmierhandbuch, 11/2010 4BImplementierung des Servlet-API HttpServletResponse Folgende Methoden sind implementiert: public void addCookie(Cookie cookie) public boolean containsHeader(String name) public void sendError( int sc, String msg ) throws IOException public void sendError(int sc) throws IOException public void setDateHeader(String name, long date) public void setHeader(String name, String value) public void setIntHeader(String name, int value) public void setStatus(int sc) HttpSession Ist nicht implementiert. HttpSessionBindingListener Ist nicht implementiert. HttpSessionContext Ist nicht implementiert. Cookie Ist bereits im Servlet-API entsprechend implementiert. HttpServlet Ist bereits im Servlet-API entsprechend implementiert. HttpSessionBindingEvent Ist bereits im Servlet-API entsprechend implementiert. HttpUtils Ist bereits im Servlet-API entsprechend implementiert. Package javax.servlet.jsp Dieses Package, inklusive Sub-Packages ist in SIMOTION Servlets nicht enthalten. SIMOTION - Servlets Programmierhandbuch, 11/2010 15 4BImplementierung des Servlet-API SIMOTION - Servlets 16 Programmierhandbuch, 11/2010 Benutzer-Servlets erstellen 5B 6 Das Erstellen der Benutzer-Servlets erfolgt auf einem Entwicklungsrechner. Zum Übersetzen der Java-Benutzerprogramme ist ein Java SDK (Java SE Development Kit) notwendig. Empfohlen wird: "Java 2 Platform, V1.3.x". mit installiertem Java JDK (Java Development Kit). Damit die innerhalb des Servlet-API referenzierten Klassen vom Java-Compiler gefunden werden, muss die entsprechende Java-Bibliothek beim Übersetzen angegeben werden. Z.B.: javac –classpath svltapi.jar ... Werden auch vom SIMOTION-API Klassen referenziert, muss zusätzlich die entsprechende Java-Bibliothek beim Übersetzen angegeben werden. Z.B.: javac –classpath svltapi.jar;simotion.jar ... Anmerkung: Der Separator innerhalb der CLASSPATH Angabe ist plattformspezifisch. Wird ein WindowsEntwicklungsrechner benützt, ist der Semikolon anzugeben, auf einem UnixEntwicklungsrechner muss ein Doppelpunkt angegeben werden. Um sicher zu gehen, dass das Benutzer-Servlet keine Java-Systemklassen verwendet, welche innerhalb der SIMOTION - IT Virtual Machine Laufzeitumgebung nicht zur Verfügung stehen, kann beim Übersetzen zusätzlich die Java - Bibliothek mit den Systemklassen als Referenz angegeben werden. Z.B.: javac –bootclasspath simotion_systemclasses.jar –classpath svltapi.jar ... Nach dem Übersetzen müssen alle Klassen des Benutzerprogramms in eine Java Bibliothek verpackt werden. Z.B.: jar –cvf testsvlt.jar ... Danach kann die Java-Bibliothek mit dem Benutzer-Servlet auf das Zielsystem transferiert und vom Servlet-Container geladen werden. SIMOTION - Servlets Programmierhandbuch, 11/2010 17 5BBenutzer-Servlets erstellen SIMOTION - Servlets 18 Programmierhandbuch, 11/2010 Konfigurationsdatei (JSERVER.XML) 6B 7 Die Konfigurationsdatei JSERVER.XML enthält die Einstellungen für den SIMOTION ServletContainer und die zu ladenden Servlets. Der Aufbau der Konfigurationsdatei muss in XML - Notation erfolgen. In SIMOTION - IT Vitual Machine ist ein einfacher XML - Parser (NanoXML/Lite) integriert, der für die Bearbeitung der Konfigurationsdatei jedoch völlig ausreicht. Bevor die Konfigurationsdatei am Zielsystem abgelegt wird, ist es ratsam sich diese z.B. in einem Web-Browser anzeigen zu lassen, um ev. Syntaxfehler sofort angezeigt zu bekommen (falls die Konfigurationsdatei nicht sowieso mit einem speziellen XML - Editor erzeugt wurde). NanoXML ist mit Fehlermeldungen nämlich recht sparsam. Im Folgenden sind die einzelnen Elemente der XML - Konfigurationsdatei beschrieben: ROOT - Element Als Root – Element muss SIMSERV verwendet werden: <?xml version="1.0" standalone="yes"?> <SIMSERV> <!—Initialisierungsparameter des Context --> <INITPARAM NAME="AParameter" VALUE="aValue"/> <!-- Hier folgen z.B. SERVLET - Elemente --> </SIMSERV> Alle anderen Elemente müssen dann innerhalb des ROOT - Elementes angegeben werden. Obiges Beispiel enthält nur einen Initialisierungsparameter, wie in unten beschrieben. INITPARAM – Element Das ROOT - Element kann beliebig viele INITPARAM - Elemente enthalten. Diese Initialisierungsparameter können von Servlets über den ServletContext abgefragt werden. Das heißt, diese Initialisierungsparameter gelten somit für alle Servlets zur Verfügung. Ausgewertet werden folgende Attribute: NAME Der Name des Initialisierungsparameters. Fehlt das Attribut, wird das Element nicht weiter ausgewertet. VALUE Der Wert des Initialisierungsparameters. Fehlt das Attribut, wird als Wert der Leerstring verwendet. SERVLET – Element Ein SERVLET - Element enthält Informationen über ein Servlet, welches geladen werden soll Für ein zu ladendes Servlet müssen der Name der Java-Klasse, welche das Servlet implementiert, und der Pfad (Teil der URL nach dem Context Pfad) unter welchem das Servlet registriert werden soll angegeben werden. Es können mehrere SERVLET - Elemente angegeben werden. Somit ist es möglich mehrere Servlets zu laden. Ausgewertet werden folgende Attribute: SIMOTION - Servlets Programmierhandbuch, 11/2010 19 6BKonfigurationsdatei (JSERVER.XML) LIBRARY Name der Java - Bibliothek (JAR oder ZIP - Datei), welche das Servlet enthält. Die Angabe kann sowohl absolut, als auch relativ erfolgen. Erfolgt die Angabe relativ, also nur der Dateiname ohne Pfad, muss sich die Datei im aktuellen Arbeitsverzeichnis befinden. Diese Angabe ist optional. Wird keine Java - Bibliothek angegeben, muss sich die Java-Klasse des Servlet im CLASSPATH befinden. CLASSNAME Name der Java-Klasse des Servlet. PATH Pfad unter welchem das Servlet innerhalb des ServletContext zu registrieren ist. NAME Name des Servlet. Der Name ist optional, und hat reinen Informationscharakter (wird von der Methode getServletName() zurückgeben). Fehlt die Angabe, wird für den Servlet Namen der Name der Java-Klasse verwendet. INITPARAM – Element Ein SERVLET - Element kann beliebig viele INITPARAM - Elemente enthalten. Diese Initialisierungsparameter können innerhalb des Servlets über die Servlet-Konfiguration abgefragt werden, und gelten nur für dieses eine Servlet. Aufgebaut ist das INITPARAM - Element für Servlets gleich wie jenes für den ServletContext (siehe INITPARAM – Element). Beispiele für SERVLET – Elemente In diesem Beispiel werden zwei Servlets geladen. Aus dem Java-Archiv MYSVLT.JAR wird die Java-Klasse MyServlet geladen und innerhalb des ServletContext unter /myServlet registriert. Das Servlet kann die zwei Initialisierungsparameter abfragen, der Name des Servlet entspricht dem Namen der Java-Klasse. Ein Client referenziert das Servlet über http://<host>/servlet/myServlet Über den System-Klassenlader wird die Java-Klasse TestServlet geladen und innerhalb des ServletContext unter dem Pfad /test registriert (in diesem Fall muss sich die Java-Klasses TestServlet im CLASSPATH von SIMOTION - IT Virtual Machine befinden). Das Servlet hat keine Initialisierungsparameter, der Name des Servlet ist "A test servlet". Ein Client referenziert das Servlet über http://<host>/servlet/test <SERVLET LIBRARY="MYSVLT.JAR" CLASSNAME="MyServlet" PATH="/myServlet"> <INITPARAM NAME="AParameter" VALUE="aValue"/> <INITPARAM NAME="AnotherParameter" VALUE="anotherValue"/> </SERVLET> <SERVLET CLASSNAME="TestServlet" PATH="/test" NAME="A test servlet"/> SIMOTION - Servlets 20 Programmierhandbuch, 11/2010 Beispiel-Servlet und Konfiguration 7B 8 Als Einstiegshilfe ist ein Beispiel-Servlet als Java - Quellcode im Lieferumfang enthalten. Dazu passend kann die Beispielkonfiguration JSERVER.XML benützt werden. DemoServlet.java Im Folgenden ein Beispiel welches illustriert, wie die Anfrage eines Clients innerhalb eines konkreten Servlets grundsätzlich bearbeitet wird. /* * ============================================================== * A simple servlet to demonstrate how to built a user-servlet. * * The servlet generates some "plain-text" only. * * Copyright (C) 2004 Siemens AG. All rights reserved. * ============================================================== */ // Necessary servlet API import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; // Possible io exceptions import java.io.IOException; import java.io.PrintWriter; SIMOTION - Servlets Programmierhandbuch, 11/2010 21 7BBeispiel-Servlet und Konfiguration /* * A simple servlet, which generates only a textual response. */ public class DemoServlet extends HttpServlet { /* * Generate response for a GET-Request. */ public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { // "request" could be used to query additional // informations // e.g. parameters ... // Set Content-Type of the response response.setContentType("text/plain"); // Obtain PrintWriter for writing response PrintWriter out = response.getWriter(); // Write response out.println("Hello SIMOTION Servlets!"); } } Das Beispiel Servlet generiert nur einfachen Text, und benötigt auch keine Parameter. Ein Servlet das in einem Browser ein Eingabeformular darstellen lassen will, generiert das Formular in HTML und schreibt es als Antwort auf eine GET-Anfrage an den Browser. Für die Bearbeitung des Eingabeformulares implementiert so ein Servlet noch die Bearbeitung der POST-Anfrage, wertet darin die Formularparameter aus und generiert wieder eine entsprechende Antwort. JSERVER.XML Die mitgelieferte Konfigurationsdatei zeigt, wie das Beispiel-Servlet geladen werden kann. Zusätzlich zeigt die Konfigurationsdate, wie ein in SIMOTION - Servlets enthaltenes DumpServlet aktiviert werden kann. Das ist nützlich, um sich die aktuellen Initialisierungsparameter des ServletContext ansehen zu können. SIMOTION - Servlets 22 Programmierhandbuch, 11/2010 7BBeispiel-Servlet und Konfiguration <?xml version="1.0" standalone="yes"?> <SIMSERV> <!-- Beispiel fuer eine SIMOTION - Servlets Konfiguration --> <!-- Parameter des Servlet-Context --> <INITPARAM NAME="ContextParam1" VALUE="ContextValue1"/> <INITPARAM NAME="ContextParam2" VALUE="ContextValue2"/> <!-Geladen wird das mitgelieferte Demo-Servlet, welches zuvor uebersetzt, und - in SVLTDEMO.JAR verpackt am Zielsystem abgelegt werden muss. Registriert wird das Demo-Servlet fuer den Pfad: /demo, fuer Client also erreichbar ueber http://<host>/servlet/demo. --> <SERVLET LIBRARY="SVLTDEMO.JAR" CLASSNAME="DemoServlet" PATH="/demo" NAME="Demo-Servlet"/> <!-Fuer das standardmaessig enthaltene DumpServlet ist keine LIBRARY anzugeben. Das DumpServlet liefert als Antwort Informationen ueber den aktuellen Request und Initialisierungsparameter des Context und Servlet (falls angegeben), und kann z.B. fuer einfache Ueberpruefung der Context Initialisierungsparameter registriert werden. Registriert wird das Dump-Servlet beispielsweise fuer den Pfad: /dump/*, fuer Client also erreichbar ueber http://<host>/servlet/dump, oder auch http://<host>/servlet/dump/APathInfo. --> <SERVLET CLASSNAME="com.siemens.ad.SIMOTION.servlets.DumpServlet" PATH="/dump/*" NAME="Sample DumpServlet"> <INITPARAM NAME="ServletParam1" VALUE="ServletValue1"/> <INITPARAM NAME="ServletParam2" VALUE="ServletValue2"/> </SERVLET> </SIMSERV> SIMOTION - Servlets Programmierhandbuch, 11/2010 23 7BBeispiel-Servlet und Konfiguration SIMOTION - Servlets 24 Programmierhandbuch, 11/2010 Index B Beispielkonfiguration JSERVER.XML, 21 Benutzer-Servlets, 17 D DemoServlet.java, 21 F Funktionsumfang, 13 I Installation von SIMOTION - IT Virtual Machine, 11 J JSERVER.XML, 21 K Konfigurationsdatei JSERVER.XML, 19 L Lieferumfang, 9 S Servlet API, 13 U Umfang SIMOTION - Servlets, 7 Z Zugriff beschränken, 7 SIMOTION - Servlets Programmierhandbuch, 11/2010 25 Index SIMOTION - Servlets 26 Programmierhandbuch, 11/2010