SIMOTION – Servlets

Werbung
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
Herunterladen