services
Class Service

java.lang.Object
  extended by services.Service
Direct Known Subclasses:
AdminIndex, ChangeGroup, Config, ConfigLecture, ConfigSeries, CorrectionView, DownloadService, DozentIndex, EditUser, Error, ErrorRedirect, ExamManager, ForumService, GroupInfo, GroupManager, Info, Login, Logout, LostPwd, MultipleChoiceDescription, NewsManager, PublicFileArea, Redirect, SendMail, SimpleService, Statistics, StudentExam, StudentIndex, StudentSeries, StudentSeries_MC, StudentSeries_MCExecute, SubscribeStudent, SwitchIdentity, TutorIndex, UploadService, UserManager, VerifyPwd, VerifySubscription, WebServices, WSIncurAccount

public abstract class Service
extends java.lang.Object

Oberklasse aller konkreten Services. Sie enthält versch. Referenzen auf z.B. Kontext, RequestInfo, den Printwriter zur Ausgabe sowie eine Instanz des VarManager, auf die alle Services durch simple Vererbung sofort Zugriff haben. Wir unterscheiden zwischen normalen Services und DownloadServices. Beide können beliebigen ContentType zurückgeben mit dem Unterschied, dass erstere, falls sie text/html (wie die meisten) liefern, einen VarManager zum Variablenhandling bekommen sowie Header- und Footer-HTML. Der Response erfolgt dabei über einen Writer. DownloadServices verwenden immer einen ServletOutputStream und besitzen weder einen VarManager noch Header- und Footer (wie auch sonst? ;).

Author:
Thorsten Berger

Field Summary
static int SC_BAD_REQUEST
           
static int SC_FORBIDDEN
           
static int SC_INTERNAL_SERVER_ERROR
           
static int SC_METHOD_NOT_ALLOWED
           
static int SC_NOT_FOUND
           
 
Constructor Summary
Service(RequestInfo ri)
          Standardconstructor für HTML-Services.
Service(RequestInfo ri, java.lang.String content)
           
Service(RequestInfo ri, java.lang.String content, boolean isDownloadService)
          Constructor, der Content-Type entspr. übergebenem MIME-Type setzt.
 
Method Summary
 void addString(java.lang.String add)
          Kann ein Service implementieren, wenn er von aussen Nachrichten erhalten soll, die er in die Ausgabe einfügt.
static java.lang.String filterHtml(java.lang.String s)
          HTML aus String filtern
 java.lang.String getAndCheckParameter(java.lang.String p)
          Request Parameter (Query-Var) auslesen und HTML rausfiltern.
 java.lang.String getAndCheckParameter(java.lang.String p, boolean allowHTML)
          Request Parameter (Query-Var) auslesen und überprüfen.
 java.lang.String getAndCheckParameter(java.lang.String p, boolean allowHTML, int maxLength)
          Request Parameter (Query-Var) auslesen und überprüfen.
static java.lang.String getAndCheckParameter(java.lang.String p, boolean allowHTML, int maxLength, HttpServletRequest request)
          Request Parameter (Query-Var) auslesen und überprüfen.
 java.lang.String getContent()
          gesamte Ausgabe des (Text-)Service binäre Services schreiben direkt in den ServletOutputStream
 java.lang.String getContentType()
          Returniert gesetzten ContentType für Ausgabe.
 int getStatusCode()
          Liefert Status-Code des Service.
 VarManager getVM()
           
 void includeError(java.lang.String msg)
          Fehlerseite in Ausgabe eines Services einfügen.
 void includeInfo(java.lang.String msg)
          Infoseite in Ausgabe eines Services einfügen.
 boolean isDownloadService()
          Handelt es sich um einen Download-Service?
abstract  void processRequest()
          Eigentliche Ausführung des Services.
 void respondError()
           
 void respondError(int SC)
          Antwortet mit Fehler-Seite.
 void respondError(java.lang.String msg)
          Fehlerseite in Ausgabe enfügen.
 void respondWithHtmlService(Service s)
           
 void sendErrorRedirect()
          Deprecated.  
 void sendErrorRedirect(int SC)
          Deprecated.  
 void setTemplate(java.lang.String file)
          Kann ein Service implementieren, wenn ihm von aussen gesagt werden soll, welches Template er einzufügen hat.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SC_METHOD_NOT_ALLOWED

public static final int SC_METHOD_NOT_ALLOWED
See Also:
Constant Field Values

SC_BAD_REQUEST

public static final int SC_BAD_REQUEST
See Also:
Constant Field Values

SC_FORBIDDEN

public static final int SC_FORBIDDEN
See Also:
Constant Field Values

SC_NOT_FOUND

public static final int SC_NOT_FOUND
See Also:
Constant Field Values

SC_INTERNAL_SERVER_ERROR

public static final int SC_INTERNAL_SERVER_ERROR
See Also:
Constant Field Values
Constructor Detail

Service

public Service(RequestInfo ri)
Standardconstructor für HTML-Services.

Parameters:
ri - enthält aktuelles RequestInfo-Objekt

Service

public Service(RequestInfo ri,
               java.lang.String content)

Service

public Service(RequestInfo ri,
               java.lang.String content,
               boolean isDownloadService)
Constructor, der Content-Type entspr. übergebenem MIME-Type setzt.
Falls dieser "text/html" oder "text/plain" wird java.io.PrintWriter outWriter initialisiert,
andernfalls javax.servlet.ServletOutputStream outStream, was nur für Download von Binärdateien notwendig ist. Wenn content=null, so wird nur RequestInfo und Kontext initialisiert, den Content-Type muss der Service dann zur Laufzeit setzen (um evtl. auch Fehlermeldungen, z.B. FileNotFound, ausgeben zu können). Braucht er aber auch nicht unbedingt, denn es gibt ja sendErrorRedirect(SC).

Parameters:
ri - akt. RequestInfo-Objekt
content - MIME-Type der Antwort an Client
Method Detail

getContent

public java.lang.String getContent()
gesamte Ausgabe des (Text-)Service binäre Services schreiben direkt in den ServletOutputStream

Returns:

processRequest

public abstract void processRequest()
Eigentliche Ausführung des Services.


getContentType

public java.lang.String getContentType()
Returniert gesetzten ContentType für Ausgabe. Null, falls noch nicht gesetzt.

Returns:
ContentType

addString

public void addString(java.lang.String add)
Kann ein Service implementieren, wenn er von aussen Nachrichten erhalten soll, die er in die Ausgabe einfügt.

Parameters:
add - der Ausgabe hinzuzufügender String

setTemplate

public void setTemplate(java.lang.String file)
Kann ein Service implementieren, wenn ihm von aussen gesagt werden soll, welches Template er einzufügen hat.

Parameters:
HTML-Template -

getStatusCode

public int getStatusCode()
Liefert Status-Code des Service.

Returns:
numerischer StatusCode, normalerweise 200 (OK)

respondError

public void respondError(int SC)
Antwortet mit Fehler-Seite. Damit das funktioniert darf entweder noch kein Content-Type gesetzt sein oder der muss auf "text/html" gestzt sein. Weiterhin darf kein OutStream geöffnet sein... sonst gibt's später Probs wenn der UebManager den OutWriter öffnen will...

Parameters:
SC - numerischer Statuscode

respondError

public void respondError()

respondError

public void respondError(java.lang.String msg)
Fehlerseite in Ausgabe enfügen. Funktioniert insb. auch bei Download-Services, wenn diese noch nicht OutStream geöffnet haben.

Parameters:
msg - Fehlermeldung

respondWithHtmlService

public void respondWithHtmlService(Service s)

sendErrorRedirect

public void sendErrorRedirect(int SC)
Deprecated. 

Redirect zu Error-Service senden. Notwendig für Download-Services, da sonst der URL-Pfad nicht stimmt.

Parameters:
SC - Status-Code

sendErrorRedirect

public void sendErrorRedirect()
Deprecated. 

Redirect zu Error-Service mit allg. Fehlermeldung.


includeError

public void includeError(java.lang.String msg)
Fehlerseite in Ausgabe eines Services einfügen.

Parameters:
msg - Fehlermeldung

includeInfo

public void includeInfo(java.lang.String msg)
Infoseite in Ausgabe eines Services einfügen.

Parameters:
msg - Infomeldung

getAndCheckParameter

public java.lang.String getAndCheckParameter(java.lang.String p)
Request Parameter (Query-Var) auslesen und HTML rausfiltern. Maximale Stringlänge: 256 Zeichen

Parameters:
p - Parameter
allowHTML - HTML erlauben oder rausfiltern?
Returns:
Parameter-Wert

getAndCheckParameter

public java.lang.String getAndCheckParameter(java.lang.String p,
                                             boolean allowHTML)
Request Parameter (Query-Var) auslesen und überprüfen. Maximale Stringlänge: 256 Zeichen

Parameters:
p - Parameter
allowHTML - HTML erlauben oder rausfiltern?
Returns:
Parameter-Wert

getAndCheckParameter

public java.lang.String getAndCheckParameter(java.lang.String p,
                                             boolean allowHTML,
                                             int maxLength)
Request Parameter (Query-Var) auslesen und überprüfen.

Parameters:
p - Parameter
allowHTML - HTML erlauben oder rausfiltern?
Returns:
Parameter-Wert

getVM

public VarManager getVM()
Returns:
VarManager des Service

getAndCheckParameter

public static java.lang.String getAndCheckParameter(java.lang.String p,
                                                    boolean allowHTML,
                                                    int maxLength,
                                                    HttpServletRequest request)
Request Parameter (Query-Var) auslesen und überprüfen.

Parameters:
p - Parameter
allowHTML - HTML erlauben oder rausfiltern?
maxLength - max. Länge des Parameter-Werts
request - Request-Instanz
Returns:
Parameter-Wert

filterHtml

public static java.lang.String filterHtml(java.lang.String s)
HTML aus String filtern

Parameters:
s -
Returns:
String ohne HTML-Tags

isDownloadService

public boolean isDownloadService()
Handelt es sich um einen Download-Service?

Returns:
Download-Service?