Class HelloServ

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by HelloServ
All Implemented Interfaces:
Serializable, Servlet, ServletConfig

public class HelloServ
extends HttpServlet

Begrüßungs- und Info-Servlet.

Ein Objekt dieser Klasse stellt ein HttpServlet für einen J2EE-Container, wie beispielsweise Tomcat, dar. Auf einen HTTP(S)-get- oder post-request hin erzeugt es eine HTML-Ausgabe mit einen Gruß ("Hallo Nutzer .. "), mit Datum und Uhrzeit des Servers sowie mit (optional) einigen weiteren Informationen.

Die Ausgabe wird abhängig vom Wert der Eigenschaft language (fr, it, es etc., default de) teilweise nationalisiert. Die Sprache und der Umfang der Ausgabe kann darüberhinaus jeweils mit Aufrufparametern ("http(s)://...?-fr&-showProps" z.B.) gesteuert werden.

Dies ist damit nicht gerade das minimale Hello-World-Servlet, wohl aber das ziemlich kleinste mit Framework-Unterstützung LDAP- / AD-Zugriffen etc. Als solches kann es als Einstieg in bzw. Ausgangspunkt für beliebig komplexere Web-Services dienen (HelloServ.java, HelloServ.properties).


Zum Deployment mit Apache-Tomcat siehe die MEVA-Lab-Doku (A. Weinert).

Hinweis zu .properties: Zu dieser Anwendung (hier die Quelle HelloServ.java) gehört (als integraler Bestandteil) eine Properties-Datei namens HelloServ.properties. Zu ihrer Platzierung und Bedeutung siehe die Hinweise in der Beschreibung des Frameworks de.a_weinert.

Hinweis 2: Alle öffentliche Felder — d.h. jede öffentliche Objektvariable — eines HelloServ-Objekts sind Eigenschaften beziehungsweise Properties, die die Arbeitsweise des Servlets steuern.
Sie werden automatisch durch die Initialisierungs-Parameter (zum Dienst gehörende web.xml) und die Properties-Datei(en) des Servlets gesetzt. Dies geschieht mithilfe der Klasse Prop in der Methode init():


     try {
        prop = new Prop(this, null);

Hinweis 3: Die Servlet-aufrufspezifische Parameterauswertung (in doPost(), doGet() etc.) geschieht wg. Multithreading mit einem methoden-lokalen zunächst flachen prop-KLone, der nur bei parameterbedingten Änderungen (durch Prop.parse(HttpServletRequest)) automatisch vertieft (deepIt() wird.

© Copyright 2006, 2007   Albrecht Weinert

Version:
1 (11.02.2010)
Author:
Albrecht Weinert
See Also:
Serialized Form

Field Summary
 String hallo
          Der Gruß (Anfang für Nutzer).
 String hellWo
          Der Gruß (komplett ohne Nutzer).
static String HTML_START
          Standard-Start einer HTML-Seite einschließlich Titel.

Fest (unparametrierbar) für dieses Beispiel-Servlet.

Implementierungshinweis für Verwender der Quelle:
Es wird die Erreichbarkeit von /serv-intra/favicon.ico und von /serv-intra/meva_fixed.css und dort von class="body" vorausgesetzt.
 String ldap2URL
          LDAP-Server für (zusätzliche / Domain-) Authentifizierung.
protected  Prop prop
          Eigenschaften / Properties.
static String SERV_V
          Servlet Versions- und Copyright-Information.

 boolean showHead
          Zeigen der Parameter, Properties oder Header.
 boolean showPar
          Zeigen der Parameter, Properties oder Header.
 boolean showProps
          Zeigen der Parameter, Properties oder Header.
 boolean try23S
          Zeigen der Parameter, Properties oder Header.
 int verbosity
          Ausführlichkeit.
 
Constructor Summary
HelloServ()
           
 
Method Summary
 void doGet(HttpServletRequest req, HttpServletResponse resp)
          Die zweite Arbeitsmethode des Servlets.
 void doPost(HttpServletRequest request, HttpServletResponse response)
          Die Arbeitsmethode des Servlets.

Hinweis: doGet(HttpServletRequest, HttpServletResponse) delegiert an diese Methode.
 void init()
          Die Initialisierungsmethode des Servlets.

 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service
 
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HTML_START

public static final String HTML_START
Standard-Start einer HTML-Seite einschließlich Titel.

Fest (unparametrierbar) für dieses Beispiel-Servlet.

Implementierungshinweis für Verwender der Quelle:
Es wird die Erreichbarkeit von /serv-intra/favicon.ico und von /serv-intra/meva_fixed.css und dort von class="body" vorausgesetzt. Unter anderen Bedingungen entsprechenden Ändern.

Verbesserungsmöglichkeit: Auch title (inter-) nationalisieren.

See Also:
Constant Field Values

SERV_V

public static final String SERV_V
Servlet Versions- und Copyright-Information.

See Also:
Constant Field Values

hellWo

public String hellWo
Der Gruß (komplett ohne Nutzer).

Wird durch Prop- (.properties-) Auswertung gesetzt und dabei ggf. auch nationalisiert; dies geschieht in der Methode init() durch Prop.Prop(this, null)).

default: "Hallo Fremder!" bzw. .properties-Auswertung


hallo

public String hallo
Der Gruß (Anfang für Nutzer).

Wird durch Prop- (.properties-) Auswertung gesetzt und dabei ggf. auch nationalisiert; dies geschieht in der Methode init() durch Prop.Prop(this, null)).

default: "Hallo" bzw. .properties-Auswertung


prop

protected Prop prop
Eigenschaften / Properties.

Dies Objekt umfasst die Grundeigenschaften des Servlets. Diese haben im Lebenszyklus nach init() ihren endgültigen Wert.
Wegen Multithreading wird aufrufspezifisch (in doPost() ) eine flache Kopie hiervon lokal erzeugt (mit PropMap.clone()) und benutzt. (Diese Kopie wird bedarfsweise automatisch "vertieft".)

See Also:
Prop.parse(HttpServletRequest)

showPar

public boolean showPar
Zeigen der Parameter, Properties oder Header.

default: false bzw. durch Grund-Properties-Datei


showProps

public boolean showProps
Zeigen der Parameter, Properties oder Header.

default: false bzw. durch Grund-Properties-Datei


showHead

public boolean showHead
Zeigen der Parameter, Properties oder Header.

default: false bzw. durch Grund-Properties-Datei


try23S

public boolean try23S
Zeigen der Parameter, Properties oder Header.

default: false bzw. durch Grund-Properties-Datei


verbosity

public int verbosity
Ausführlichkeit.

Als (int) Level gemäß AppHelper.

default: AppHelper.NORMAL.

See Also:
AppHelper.getVerbosity(String)

ldap2URL

public String ldap2URL
LDAP-Server für (zusätzliche / Domain-) Authentifizierung.

default: ldap://193.175.115.2:389
alternativ: ldap://193.175.115.4:389

See Also:
LDAPauthRead.authBy(InitialLdapContext, CharSequence, CharSequence)
Constructor Detail

HelloServ

public HelloServ()
Method Detail

init

public void init()
          throws ServletException
Die Initialisierungsmethode des Servlets.

Overrides:
init in class GenericServlet
Throws:
ServletException

doPost

public void doPost(HttpServletRequest request,
                   HttpServletResponse response)
            throws ServletException,
                   IOException
Die Arbeitsmethode des Servlets.

Hinweis: doGet(HttpServletRequest, HttpServletResponse) delegiert an diese Methode.

Overrides:
doPost in class HttpServlet
Throws:
ServletException
IOException

doGet

public void doGet(HttpServletRequest req,
                  HttpServletResponse resp)
           throws ServletException,
                  IOException
Die zweite Arbeitsmethode des Servlets.

Overrides:
doGet in class HttpServlet
Throws:
ServletException
IOException