欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Restlet 2.2中Restlet类的分析

程序员文章站 2023-12-30 09:20:22
...

org.restlet.Restlet 有三个重要的方法: 一、fireContextChanged(Restlet restlet, Context context) 这个方法是在一个Restlet 使用构造函数 Restlet(Context context) 以及调用 setContext()方法的时候被触发的,目的是将当前生产的Restlet实例作为child加

org.restlet.Restlet 有三个重要的方法:


一、fireContextChanged(Restlet restlet, Context context)

这个方法是在一个Restlet 使用构造函数 Restlet(Context context) 以及调用 setContext()方法的时候被触发的,目的是将当前生产的Restlet实例作为child加到context中。

因为每个restlet 在操作之前,都要把和它相关的 context 放置到当前线程池中,这样实际上就把 restlet 也一起放了进去。在任何需要的地方,可以把context取出,同时也就得到了restlet。


二、createFinder( Class extends org.restlet.resource.ServerResource> resourceClass)

在很多的子类中都会用到这个方法。当需要把一个resource 绑定/连接 到一个组件上的时候,就需要Finder来封装。

在一个REST 组件上,通过Finder 可以找到 ServerResource 。实际上就是通过Component或者是Application找到对应的资源uri 。


三、public void handle(Request request, Response response)

这个方法本来是Restlet实现的父类Uniform中就的方法,但是由于没有@Override 声明,所以默认的不覆写父类的方法。

这也是为什么Restlet声明为 abstract class 的原因。

这个方法把 response 加入当前线程池 Response,如果有context,则context也进入 Context 当前线程池。

然后,启动这个Restlet 。

如果启动出现异常或者启动失败,则把response的状态设置为系统错误,返回。

返回后,状态服务会检查response的状态,然后向客户端返回相应的代码: 2xx , 3xx ,4xx , 5xx 。


关于返回客户端的错误代码可参见之前的一篇文章,http的状态码说明


http://blog.csdn.net/teamlet/article/details/5713441

上一篇:

下一篇: