uses System.StrUtils, Datasnap.DSSession, SessionStoreObjectUI;
function TServerMethods1.EchoString(Value: string): string;
begin
Result := Value;
end;
function TServerMethods1.ReverseString(Value: string): string;
begin
Result := System.StrUtils.ReverseString(Value);
end;
//客户端调用http storeobject方法存储session key
function TServerMethods1.StoreObject(key, a, b, c: string): string;
var
Session: TDSSession;
Inst: TMySessionClass;
Dest: String;
begin
Session := TDSSessionManager.GetThreadSession;
if Assigned(Session) then
begin
Inst := TMySessionClass.Create;
Inst.a := a;
Inst.b := b;
Inst.c := c;
Session.PutObject(key, Inst);
//return the URL wish Session ID in it for
//testing getting the session data back
Dest := ‘http://localhost:8080/datasnap/rest/TServerMethods1/GetObject/‘ + key + ‘?sid=‘ + Session.SessionName;
Form3.SetThenText(Dest);
Exit(Dest);
end;
Result := ‘Failed to add the object to the session‘; end;
//客户端调用http getobject获得session内容
procedure TServerMethods1.GetObject(key: string; out a, b, c: string);
var
Session: TDSSession;
Inst: TMySessionClass;
begin
Session := TDSSessionManager.GetThreadSession;
if Assigned(Session) then
begin
Inst := TMySessionClass(Session.GetObject(key));
if Assigned(Inst) then
begin
a := Inst.a;
b := Inst.b;
c := Inst.c;
Exit;
end;
end;
a := ‘Failed to load data for key: ‘ + key;
end;