基于HTTP的DataSnap session管理

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;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值