janus.web
Class ServletBase.Processor

java.lang.Object
  extended by janus.web.ServletBase.Processor
Enclosing class:
ServletBase

protected abstract class ServletBase.Processor
extends Object

Pro Request wird ein neues Processor-Objekt erstellt, damit das thread-sichere Abarbeiten mehrerer paralleler Abfragen möglich ist.


Field Summary
protected  String defaultTemplate
          defaultTemplate der zum context relative Pfadname des HTML-Templates.
protected  boolean flushBeforeContent
          Flag, ob vor der Ausgabe des Seiteninhaltes flush aufgerufen werden soll.
protected  Logger log
          log der Logger für diese Instanz
protected  PrintWriter out
           
protected  boolean processingGet
          processingGet true, wenn ein GET-Request abgearbeitet wird.
protected  HttpServletRequest req
          req der aktuelle HTTP-Request
protected  String requestAction
          requestAction der Inhalt des action-Parameters des Requests
protected  String requestTemplate
          requestTemplate der Inhalt des template-Parameters des Requests
protected  String requestURI
          requestURI die URI des Requests, i.d.R.
protected  HttpServletResponse resp
          resp das HTTP-Response-Objekt des Servlets
 
Constructor Summary
protected ServletBase.Processor(ServletContext context, HttpServletRequest req, HttpServletResponse resp, boolean processingGet)
           
 
Method Summary
protected  boolean getParameters()
          Kann in den abgeleiteten Klassen Parameter aus dem Request-Objekt lesen, um festzustellen, ob überhaupt das Template abgearbeitet werden oder eine andere Ausgabe (z.B.
protected  String htmlA(String text, String parameters)
          erzeugt einen HTML-A-Knoten als Verweis auf das aktuelle Servlet (requestURI) mit den (optionalen) angegebenen Parametern.
protected  String htmlA(String text, String parameters, boolean bEmbed)
          erzeugt einen HTML-A-Knoten als Verweis auf das aktuelle Servlet (requestURI) mit den (optionalen) angegebenen Parametern.
protected  String htmlH2(String text)
          bettet einen beliebigen Text in einen HTML-H2-Knoten ein.
protected  String htmlH3(String text)
          bettet einen beliebigen Text in einen HTML-H3-Knoten ein.
protected  String htmlNode(String node, String text)
          bettet einen beliebigen Text in einen beliebigen HTML-Knoten ein.
protected  String htmlNode(String node, String attributes, String text)
          Bettet einen beliebigen Text in einen beliebigen HTML-Knoten ein.
protected  String htmlP(String text, String attributes)
          bettet einen beliebigen Text in einen HTML-P-Knoten ein.
protected  String htmlTD(int number)
          bettet eine Zahl in einen HTML-TD-Knoten ein.
protected  String htmlTD(int number, String attributes)
          bettet eine Zahl in einen HTML-TD-Knoten ein.
protected  String htmlTD(String text)
          bettet einen beliebigen Text in einen HTML-TD-Knoten ein.
protected  String htmlTD(String text, String attributes)
          bettet einen beliebigen Text in einen HTML-TD-Knoten ein.
protected  String htmlTH(String text)
          bettet einen beliebigen Text in einen HTML-TH-Knoten ein.
protected  String htmlTH(String text, String attributes)
          bettet einen beliebigen Text in einen HTML-TH-Knoten ein.
protected  String htmlTR(String text)
          bettet einen beliebigen Text in einen HTML-TR-Knoten ein.
protected  void initDownload(String filename)
          Setzt die Response-Header und erzeugt einen Ausgabe-Writer für einen Download.
protected  void initResponse()
          Setzt die Response-Header und erzeugt einen Ausgabe-Writer für eine HTML-Seite.
protected  boolean isUpdateAllowed()
          Darf der Benutzer einen Update durchführen?
protected  void outLine(String line)
          gibt eine Zeile HTML-Code in die Ausgabe aus.
protected abstract  void printContent()
          druckt den Inhalt aus, wird aufgerufen, wenn im template das $CONTENT$-Tag gefunden wird
protected  void printMenu()
          druckt das Menü am Kopf der Seite aus, wird aufgerufen, wenn im template das Tag $MENU$ gefunden wird.
protected  void printTime()
          druckt die aktuelle Uhrzeit aus, wird aufgerufen, wenn im template das $TIME$-Tag gefunden wird
protected abstract  void printTitle()
          druckt die Überschrift aus, wird aufgerufen, wenn im template das $TITLE$-Tag gefunden wird
protected  void processRequest()
          Hier wird der Request komplett abgearbeitet und alle Ausgaben erzeugt.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

defaultTemplate

protected String defaultTemplate
defaultTemplate der zum context relative Pfadname des HTML-Templates. Dieses wird benutzt, wenn nicht im Request der Parameter template=... angegeben ist. Abgeleitete Klassen können dies im Konstruktor abändern.


flushBeforeContent

protected boolean flushBeforeContent
Flag, ob vor der Ausgabe des Seiteninhaltes flush aufgerufen werden soll. Default ist true.


log

protected Logger log
log der Logger für diese Instanz


out

protected PrintWriter out

processingGet

protected final boolean processingGet
processingGet true, wenn ein GET-Request abgearbeitet wird.


req

protected final HttpServletRequest req
req der aktuelle HTTP-Request


requestAction

protected String requestAction
requestAction der Inhalt des action-Parameters des Requests


requestTemplate

protected String requestTemplate
requestTemplate der Inhalt des template-Parameters des Requests


requestURI

protected String requestURI
requestURI die URI des Requests, i.d.R. /janus/...


resp

protected final HttpServletResponse resp
resp das HTTP-Response-Objekt des Servlets

Constructor Detail

ServletBase.Processor

protected ServletBase.Processor(ServletContext context,
                                HttpServletRequest req,
                                HttpServletResponse resp,
                                boolean processingGet)
Parameters:
context - der Servlet-Context zum Finden des HTML-Templates.
req - der Request, der die Parameter enthält.
resp - das Response-Objekt zur Erstellung eines Ausgabe-Streams.
processingGet - true, wenn ein GET-Request abgearbeitet wird.
Method Detail

getParameters

protected boolean getParameters()
                         throws Exception
Kann in den abgeleiteten Klassen Parameter aus dem Request-Objekt lesen, um festzustellen, ob überhaupt das Template abgearbeitet werden oder eine andere Ausgabe (z.B. Download) erzeugt werden soll.

Returns:
true, wenn der Request weiter ausgeführt wird, false, wenn schon der gesamte Response erzeugt wurde.
Throws:
Exception

htmlA

protected String htmlA(String text,
                       String parameters)
erzeugt einen HTML-A-Knoten als Verweis auf das aktuelle Servlet (requestURI) mit den (optionalen) angegebenen Parametern.

Parameters:
text - der Text des Knotens
parameters - die Parameter f�r die Verweis-URI
Returns:
eine HTML-a-Anweisung

htmlA

protected String htmlA(String text,
                       String parameters,
                       boolean bEmbed)
erzeugt einen HTML-A-Knoten als Verweis auf das aktuelle Servlet (requestURI) mit den (optionalen) angegebenen Parametern.

Parameters:
text - der Text des Knotens
parameters - die Parameter f�r die Verweis-URI, die in der Form requestURI?parameter1=wert1&... angef�gt werden
bEmbed - wenn true, wird der Text in eckigen Klammern eingeschlossen, um ihn deutlicher als Link zu kennzeichnen.
Returns:
eine HTML-a-Anweisung

htmlH2

protected String htmlH2(String text)
bettet einen beliebigen Text in einen HTML-H2-Knoten ein.

Parameters:
text - der HTML-Text
Returns:
ein syntaktisch korrekter HTML-Knoten

htmlH3

protected String htmlH3(String text)
bettet einen beliebigen Text in einen HTML-H3-Knoten ein.

Parameters:
text - der HTML-Text
Returns:
ein syntaktisch korrekter HTML-Knoten

htmlNode

protected String htmlNode(String node,
                          String text)
bettet einen beliebigen Text in einen beliebigen HTML-Knoten ein.

Parameters:
node - der HTML-Tag
text - der HTML-Text
Returns:
ein syntaktisch korrekter HTML-Knoten

htmlNode

protected String htmlNode(String node,
                          String attributes,
                          String text)
Bettet einen beliebigen Text in einen beliebigen HTML-Knoten ein. Bei leerem Text wird ein Knoten der Form <tag ... /> erzeugt, sonst <tag> text </tag>

Parameters:
node - der HTMLTag
attributes - die HTML-Attribute
text - der HTML-Text
Returns:
ein syntaktisch korrekter HTML-Knoten

htmlP

protected String htmlP(String text,
                       String attributes)
bettet einen beliebigen Text in einen HTML-P-Knoten ein.

Parameters:
text - der HTML-Text
attributes - die HTML-Attribute
Returns:
ein syntaktisch korrekter HTML-Knoten

htmlTD

protected String htmlTD(int number)
bettet eine Zahl in einen HTML-TD-Knoten ein.

Parameters:
number - Zahl, bei 0 wird nichts ausgegeben
Returns:
ein Tabellenzelle, die die Zahl enth�lt

htmlTD

protected String htmlTD(int number,
                        String attributes)
bettet eine Zahl in einen HTML-TD-Knoten ein.

Parameters:
number - Zahl, bei 0 wird nichts ausgegeben
attributes - Attribute
Returns:
eine Tabellenzelle, die die Zahl enthält

htmlTD

protected String htmlTD(String text)
bettet einen beliebigen Text in einen HTML-TD-Knoten ein.

Parameters:
text - der Text der eingebettet werden soll.
Returns:
ein Tabellenzelle, die den String enth�lt

htmlTD

protected String htmlTD(String text,
                        String attributes)
bettet einen beliebigen Text in einen HTML-TD-Knoten ein.

Parameters:
text - der Text der eingebettet werden soll.
attributes - die Attribute, die der TD-Knoten erh�lt
Returns:
ein Tabellenzelle, die den String enth�lt

htmlTH

protected String htmlTH(String text)
bettet einen beliebigen Text in einen HTML-TH-Knoten ein.

Parameters:
text - der Text der eingebettet werden soll.
Returns:
ein Tabellen-Kopfzelle, die den String enth�lt

htmlTH

protected String htmlTH(String text,
                        String attributes)
bettet einen beliebigen Text in einen HTML-TH-Knoten ein.

Parameters:
text - der Text der eingebettet werden soll.
attributes - HTML-Attribute
Returns:
eine Tabellen-Kopfzelle, die den String enthält

htmlTR

protected String htmlTR(String text)
bettet einen beliebigen Text in einen HTML-TR-Knoten ein.

Parameters:
text - der Text der eingebettet werden soll.
Returns:
ein Tabellenzeile, die den String enth�lt

initDownload

protected void initDownload(String filename)
                     throws IOException
Setzt die Response-Header und erzeugt einen Ausgabe-Writer für einen Download.

Parameters:
filename - Dateiname des Downloads für das Speichern auf der Client-Seite
Throws:
IOException

initResponse

protected void initResponse()
                     throws IOException
Setzt die Response-Header und erzeugt einen Ausgabe-Writer für eine HTML-Seite.

Throws:
IOException

isUpdateAllowed

protected boolean isUpdateAllowed()
Darf der Benutzer einen Update durchführen? Die Methode befragt das ConfigServlet

Returns:
true, wenn der aktuell angemeldete Benutzer Updates durchführen darf.

outLine

protected void outLine(String line)
gibt eine Zeile HTML-Code in die Ausgabe aus.

Parameters:
line - eine beliebige Zeile. Alle Umlaute werden HTML-gerecht aufbereitet.

printContent

protected abstract void printContent()
                              throws Exception
druckt den Inhalt aus, wird aufgerufen, wenn im template das $CONTENT$-Tag gefunden wird

Throws:
Exception

printMenu

protected void printMenu()
druckt das Menü am Kopf der Seite aus, wird aufgerufen, wenn im template das Tag $MENU$ gefunden wird.
Muss nur überschrieben werden, wenn $MENU$ interpretiert werden soll.


printTime

protected void printTime()
druckt die aktuelle Uhrzeit aus, wird aufgerufen, wenn im template das $TIME$-Tag gefunden wird


printTitle

protected abstract void printTitle()
druckt die Überschrift aus, wird aufgerufen, wenn im template das $TITLE$-Tag gefunden wird


processRequest

protected void processRequest()
                       throws IOException
Hier wird der Request komplett abgearbeitet und alle Ausgaben erzeugt. Beim Auffinden bestimmter Zeichenfolgen im Template werden die entsprechenden Methoden aufgerufen, die von den abgeleiteten Klassen überschrieben werden können bzw. müssen.

Throws:
IOException


Copyright © 2008 MvC Systemsoftware.