|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjavax.servlet.GenericServlet
javax.servlet.http.HttpServlet
com.google.gwt.user.server.rpc.RemoteServiceServlet
RemoteCalcMod
public class RemoteCalcMod
Ein Rechner mit Stack-Architektur (model, remote).
Ein Objekt dieser Klasse stellt die Serverseite einer GWT-
(Google-Webtoolkit-) AJAX-Anwendung dar. Die Client-Seite lässt sich
beispielsweise durch die Klasse
RemoteCalcGWT darstellen,
nachdem jene Java-Quelle (von GWT) in JavaScript übersetzt wurde.
Die (Web-) Anwendung ist ein ganzzahliger Stackrechner. Es gibt vier
Stackregistern — x, y, z und t —
genau wie bei den berühmten HP-Taschenrechnern. Dezimale und hexadezimale
Darstellung werden unterstützt.
Ein Objekt dieser Klasse stellt die reine Statusmaschine (model, Automat)
eines solchen Stackrechners dar und bedient sich dazu jeweils eines
CalcMod-Objekts.
Die (Tasten-) Eingaben für Ziffern, Enter und Operationen gehören nicht
zum (RemoteCalcMod-) Objekt. Sie sind über öffentliche Methoden
ansteuerbar. Damit ist ein beliebig gestalteter Controller
einsetzbar.
Auf einer Demo-Seite kann
man sich dies alles anschauen.
Hinweis 1:
Dieses Server- / Servlet-Beispiel mit einem Stackrechner ist nicht ganz
so trivial wie die sonst üblichen Einstiegsbeispiele, die einen
festen oder leicht berechenbaren String liefern — und
dies nicht nur wegen des session management. Das Beispiel ist für viele
Zwecke (Fernsteuerung, Fernabfrage) so als Vorbild / Ausgangspunkt
einsetzbar. Die Sitzungsverwaltung kann ggf. (bei reiner
Abfragefunktion beispielsweise) leicht weggelassen werden.
Hinweis 2:
Diese Klasse "wohnt" nicht in dem Paket, in der sie vom
Zusammenhang her hingehörte; das wäre hier nämlich
de.a_weinert.gwt.server. Wegen Tomcat's Servlet-Ladeproblemen aus Paketen
(zumindest bei 5.5) lebt sie stattdessen "flat" im unbenannten
/ anonymen Paket.
Hinweis 3:
Alle mit GWT-AJAX "asynchron" über Callback genutzte Methoden
liefern einheitlich String zurück. Der Wert ist immer die passende
Darstellung des X-Stackregister bzw. in Einschalt- und Fehlerzuständen
ein entsprechender Statustext.
Copyright 2007 Albrecht Weinert
RemoteCalcIntf,
RemoteCalcIntfAsync,
Serialized Form| Field Summary | |
|---|---|
static String |
CALC_MOD_KEY
Schlüssel für Standard- CalcMod-Objekt der Sitzung. |
static String |
VERS
Versionstext. |
protected String |
xText
X-Text. |
| Constructor Summary | |
|---|---|
RemoteCalcMod()
|
|
| Method Summary | |
|---|---|
String |
chgSign()
Ändern des Vorzeichens von x: x = -x. |
String |
chgXY()
Vertauschen von x und y. |
String |
clrAll()
Löschen von allen Registern. |
String |
clrX()
Löschen des X-Registers. |
String |
enter()
Push-Operation beziehungsweise Enter. |
String |
op2(char opSign)
Zweistellige Operation; x = x op y. |
protected CalcMod |
prepState()
Aktuellen Zustand liefern. |
String |
reset()
Rücksetzen in den Einschaltzustand. |
String |
rollDown()
Herunterrollen des Stack (t wird urspr. |
String |
setHex(boolean hex)
Hex-Dez-Umschaltung. |
String |
setX(long x)
Setzen des X-Registers auf einen Wert. |
String |
teilen2()
Division und Rest (ganzzahlig) x,y = (y / x), (x mod y). |
String |
zif(int zif)
Eingabe einer Ziffer (0..9; ..15). |
| Methods inherited from class com.google.gwt.user.server.rpc.RemoteServiceServlet |
|---|
doGetSerializationPolicy, doPost, doUnexpectedFailure, getSerializationPolicy, getThreadLocalRequest, getThreadLocalResponse, onAfterResponseSerialized, onBeforeRequestDeserialized, processCall, shouldCompressResponse |
| Methods inherited from class javax.servlet.http.HttpServlet |
|---|
doDelete, doGet, doHead, doOptions, doPut, doTrace, getLastModified, service, service |
| Methods inherited from class javax.servlet.GenericServlet |
|---|
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, init, log, log |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String VERS
public static final String CALC_MOD_KEY
CalcMod-Objekt der Sitzung.
protected String xText
| Constructor Detail |
|---|
public RemoteCalcMod()
| Method Detail |
|---|
protected CalcMod prepState()
CalcMod-Objekt der aktuellen Sitzungpublic String zif(int zif)
RemoteCalcIntfRemoteCalcIntf.enter() ausgeführt.
zif in interface RemoteCalcIntfpublic String op2(char opSign)
op2 in interface RemoteCalcIntfRemoteCalcIntf.op2(char)public String teilen2()
RemoteCalcIntfRemoteCalcIntf.chgXY() kann man beide Ergebnisse abwechselnd ins
x-Register bringen.
teilen2 in interface RemoteCalcIntfpublic String chgSign()
RemoteCalcIntf
chgSign in interface RemoteCalcIntfpublic String setHex(boolean hex)
RemoteCalcIntf
setHex in interface RemoteCalcIntfpublic String chgXY()
RemoteCalcIntf
chgXY in interface RemoteCalcIntfpublic String rollDown()
RemoteCalcIntf
rollDown in interface RemoteCalcIntfpublic String enter()
RemoteCalcIntf
enter in interface RemoteCalcIntfpublic String reset()
RemoteCalcIntf
reset in interface RemoteCalcIntfpublic String clrX()
RemoteCalcIntf
clrX in interface RemoteCalcIntfpublic String setX(long x)
RemoteCalcIntf
setX in interface RemoteCalcIntfpublic String clrAll()
RemoteCalcIntf
clrAll in interface RemoteCalcIntf
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||