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
