- 浏览: 253658 次
- 性别:
- 来自: 上海
最新评论
-
fjdingsd:
目前基于REST的Java框架不包括Jersey吗
Hello REST!!! -
qq690388648:
不错,说的很好!
Restlet实战(十四)如何在Restlet得到Servlet request和Session -
zhuanbiandejijie:
唉... 你09年就接触Restlet了.15年我才开始看Re ...
Hello REST!!! -
zmjiao:
client.options( 这个是那个包下面的? rest ...
Restlet实战(十八)Restlet如何产生WADL -
shihezichen:
对于最近很多人都在讨论的, 使用REST时就不应该掺杂事务的看 ...
Restlet实战(二十六)事务 (Transaction)
文章列表
在Restlet实战(十七)如何保护确定的资源 中我给出一个如何保护确定资源的解决方案,大致是override类Guard中的doHandle方法,然后加入我们自己的判断逻辑。在结尾,我也提出了自己的疑问:判断那些Uris需要认证保护应该由Restlet来完成,而不是由开发者自己写逻辑代码。
本篇文章将结合一个示例介绍如何解决上述问题。此示例将对/customers, /customers/{customerId}这两个Uris进行保护认证,而对/users不作任何认证校验。
大致思路是: 创建两个Router,其中一个router attach我们创建的Guard,这个Guar ...
- 2009-07-16 16:18
- 浏览 4001
- 评论(1)
先说明本篇文章要实现的功能,仍然做一些假设,当前系统是基于Restlet的企业信息管理系统,而关于企业员工的管理,已经有人力资源系统,那么需求是人资系统可以实时查看企业信息管理系统中的人员资料是否与自己系统中的资料,这就涉及到Get操作,而另外,如果人员资料在人资系统中改变或者新增加员工,则需要通知企业信息管理系统去做相应的维护。
下文将演示一个人资系统从企业信息管理系统取用户的操作,以及员工信息改变,而通知企业管理信息系统做相应变更的功能。实际变成过程中,基于上述描述,我们用HttpClient来模拟人资系统,通过get和put xml来实现我们想要的功能。
1. 从企业信息管 ...
- 2009-07-15 21:34
- 浏览 4362
- 评论(0)
现在究竟REST是否需要WADL这种东西,有很多争论,有人说不需要,给出的理由是,如果客户端根据WADL来编写了客户端,那将来服务改变了怎么办;有人说需要,但是基于特定的形式,比如APP。众说纷纭吧。
先不管了。看看Restlet里面是如何支持WADL的。Restlet里提供了一组类:WadlComponent, WadlApplication, WadlResource等,如果想了解的更多,可以到org/restlet/ext/wadl下查看。
转入正题,要想我们的基于Restlet的Web提供Wadl,首先需要改变Resource类,之前每个Resource类都继承于org. ...
- 2009-07-11 21:57
- 浏览 9840
- 评论(1)
在面向资源的架构中,资源的保护的重要性不言而喻,且不说对那些资源进行新增、修改、删除的操作,就是get,有时候敏感资源也不是响应任何的请求。
但有时候我们要面临这样一种情况:对所有资源的部分资源进行认证 ...
- 2009-07-11 21:55
- 浏览 3434
- 评论(1)
其实在Web应用中Filter对大家来说一点都不陌生,比如说在我之前项目的架构中,就使用filter做过Session是否失效、设定页面字符集、设置本地化,如:
设定本地化的Filter代码:
Cookie cookie = WebUtil.getCookie(req, INFOSYSCoreStatics.LOCALE_KEY);
Locale locale = null;
if(cookie == null){
locale =request.getLocale();
}else{
new Locale(cookie.getValue(), "&quo ...
- 2009-07-11 21:13
- 浏览 5740
- 评论(3)
首先还是设定一个应用场景,看看用restlet如何实现。
很多信息系统的某一个功能点的流程通常都是这样,首先进入一个列表页面,点击页面上的新增按钮,则进入新增页面,新增数据成功后,或者回到当前页面或者回到列表页面,这要看具体是怎么要求的。
下面就以Customer为例来模式实现这个流程。
需要说明的是,Restlet是使用Freemarker模板作为页面的展示而不是Jsp。在开始修改资源以及其它代码之前,我们需要费点功夫把FreeMarker集成进去,不是说Restlet已经集成FreeMarker了吗?我们还需要做什么工作?别急,且听我一一道来:
从官方给出的 ...
- 2009-07-10 13:51
- 浏览 5376
- 评论(5)
如果你现在已经有一个web系统,而为了一些需求,你集成了restlet来提供Restful web service,那么如何在restlet里面获取放到HttpServletRequest和Session里面的值呢?
可以利用ServletCall类来达到目的,我们可以在Resource的init方法里面加入一些代码:
@Override
public void init(Context context, Request request, Response response) {
super.init(context, request, response);
if( ...
- 2009-07-09 16:39
- 浏览 11525
- 评论(1)
看到这个题目,或许你会问,你之前的很多文章不都是与servlet有关吗?这不是重复吗?
No,假设你现在正在用MVC的framework,如Struts,Spring MVC等来建造一个Web系统,但是当前需求要求你的代码能灵活的与另外的一个系统对接。那么你想到了使用Restlet来构建Restful web service。因此,你想在你的servlet里面使用restlet。
场景是这样,但是理解起来其实很简单,如果和在servlet里面使用restlet。
首先拷贝一份Restlet里面关于ServletConverer的API doc里面的说明的代码:
...
- 2009-07-09 14:47
- 浏览 4525
- 评论(0)
本篇文章将讲解三种不同值的获取方法。
1.从Web Form中获取值
如果看过此系列文章中的Restlet实战(七)-提交和处理Web Form 对此应该有一定的印象,简单把代码贴过来加深印象:
@Override
public boolean allowPost( ...
- 2009-07-07 15:06
- 浏览 6952
- 评论(0)
上篇文章结合了Restlet的源码分析了Restlet-spring的配置文件,并提出了相关的问题,本篇将对这一问题做一个测试解答。
首先修改一下Spring的配置文件:
<bean id="restRoute" class="org.restlet.ext.spring.SpringRouter">
<property name="attachments">
<map>
<entry key="/customers">
&l ...
- 2009-07-04 23:56
- 浏览 6170
- 评论(3)
在Restlet实战(四)与Spring集成给出了Restlet如何与Spring进行集成。下面就结合Restlet的源码分析一下Spring配置文件。
在Spring的配置文件中,我们能看到这样的代码:
<entry key="/customers">
<bean class="org.restlet.ext.spring.SpringFinder">
<lookup-method name="createResource" bean="customersResourc ...
- 2009-07-03 17:04
- 浏览 8294
- 评论(0)
首先对所有的请求进行安全检验和认证,后面会给出对固定的URL进行安全认证的情况。对Restlet1.1.5来说,需要借助于Guard类来完成。
说一下大概的思路,建立一个Guard,并把它直接attach到Componet,当请求过来以后,会首先路由到这个Guard,如果通过认证,则路由到对应URL的Resource,否则,拦截掉。
首先修改Spring的配置文件:
<bean id="component" class="org.restlet.ext.spring.SpringComponent">
<p ...
- 2009-07-02 21:26
- 浏览 7186
- 评论(2)
我们设定一个场景:一个信息系统是基于Rest风格的,另外与一套CRM系统通信,当CRM中维护的Customer资料有变动或者创建一个新的Customer,则与信息系统通信,来更新或者创建信息系统的Customer。
基于上述我们假设的场景,下面从代码上来看看如何在Restlet里面实现Basic 认证。假设认证发生在当一个request是为了修改Customer信息。仍旧基于此系列前面文章的代码,在Customer Resource里面我们加一段代码:
@Override
public void init(Context context, Request request, ...
- 2009-07-02 17:45
- 浏览 5677
- 评论(1)
本节演示如何使用Restlet通过提交Web Form来创建一个Customer。
首先创建一个customer.jsp作为测试form提交文件
<html>
<head>
<script>
function doSubmit(){
document.forms[0].submit();
}
</script>
</head>
<body>
<form name="form1" action="<%=request.getConte ...
- 2009-07-02 15:49
- 浏览 7055
- 评论(0)