restlet session问题

restlet中是不提畅使用session的,所以restlet更适合做无状态的服务,如果象购物车这样的业务该怎么样呢,实际上restlet也不是完全不能

实现session,在API中有一个org.restlet.data.Cookie类,我们可以借助cookie来实现。

public class SessionTestResource extends Resource {

private ShopCart chart1 = null;

 

@Override

public void init(Context context, Request request, Response response) {

// TODO Auto-generated method stub

super.init(context, request, response);

String token = request.getCookies().getFirstValue("tsession");

if (token == null) {

chart1 = new ShopCart();

chart1.setToken("chart1");

token = chart1.getToken();

response.getCookieSettings().add(

new CookieSetting("tsession", token));

chart1.add();

centers.add(token, chart1);

} else {

chart1 = centers.getchart(token);

chart1.add();

}

}

public SessionTestResource() {

getVariants().add(new Variant(MediaType.TEXT_PLAIN));

}

public SessionTestResource(Context context, Request request,

Response response) {

super(context, request, response);

}

@Override

public Representation getRepresentation(Variant variant) {

String count=""+chart1.getCount();

Representation representation = new StringRepresentation(count,

MediaType.TEXT_PLAIN);

return representation;

}

}

可以看到非常简单,由于用spring来管理resource路由,需要一个无参数的construct,所以不能在构造函数中完成,所以在init方法中完成,如果 cookie被禁止的话,可能只有把状态放在URL中了,初期想法,不是很成熟,大家一起来讨论吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值