Restlet 2.2中Restlet类的分析

来源:互联网 发布:linux系统字体设置 编辑:程序博客网 时间:2024/05/17 02:48

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




原创粉丝点击