Rest第一个实验

17 篇文章 0 订阅
3 篇文章 0 订阅

这些天在看一本叫做《REST实战》的书,觉得内容有点难明白的,好像十分的抽象的。虽然有了HTTP的基础,但是,还是觉得很抽象,模糊得很。
决定做一个实验,体验一下REST实实在在摸得到的感觉。开始寻找第一感觉,记录第一次的感性认识。
如下步骤进行:
1.寻找指导
冲浪去寻找答案,如下网址有助于入门:
(1).http://www.restlet.org/documentation/1.0/tutorial
(2). http://wiki.restlet.org/docs_2.0/13-restlet/21-restlet/378-restlet.html

2.下载restlet包
寻找一个工具包,如下两个地方有很多,上一个新一点(2.0),下一个旧一点(1.0)。
(1)http://www.restlet.org/downloads/
(2)http://webscripts.softpedia.com/script/Development-Scripts-js/Restlet-45528.html

3.布置环境(myeclipse+jdk6.0)
对下载的工具包进行解压,包很多,还分了很多个文件夹来的。在文件夹里面的包也有用的。如果不用会报错。
打开myeclipse,创建一个web project。引入工具包中的所的包,包括里面的子文件夹的包。

4.用官网的代码来测试

import org.restlet.Component;
import org.restlet.Restlet;
import org.restlet.data.MediaType;
import org.restlet.data.Protocol;
import org.restlet.data.Request;
import org.restlet.data.Response;

public class TestMain {
	public static void main(String[] args) throws Exception {
		// Create a new Restlet component and add a HTTP server connector to it
		Component component = new Component();
		component.getServers().add(Protocol.HTTP, 8182);

		// Create a new tracing Restlet
		Restlet restlet = new Restlet() {
		@Override
		public void handle(Request request, Response response) {
		// Print the requested URI path
			String message = "Resource URI  : " + request.getResourceRef()
						+ '\n' + "Root URI      : " + request.getRootRef()
						+ '\n' + "Routed part   : "
						+ request.getResourceRef().getBaseRef() + '\n'
						+ "Remaining part: "
						+ request.getResourceRef().getRemainingPart();
			response.setEntity(message, MediaType.TEXT_PLAIN);
		   }
		};
		// Then attach it to the local host
		component.getDefaultHost().attach("/trace", restlet);
		// Now, let's start the component!
		// Note that the HTTP server connector is also automatically started.
		component.start();
	}

}

 5.执行
在浏览器输入如下的东西,会有如下的显示


 6.用servlet来试一试
(1)创建一个资源resource

import org.restlet.Context;
import org.restlet.data.MediaType;
import org.restlet.data.Request;
import org.restlet.data.Response;
import org.restlet.resource.Representation;
import org.restlet.resource.Resource;
import org.restlet.resource.StringRepresentation;
import org.restlet.resource.Variant;

public class TestResource extends Resource {
	public TestResource(Context context, Request request, Response response) {
		super(context, request, response);
		getVariants().add(new Variant(MediaType.TEXT_PLAIN));
	}

	@Override
	public Representation getRepresentation(Variant variant) {
		Representation representation = new StringRepresentation(
				"Success, Great!", MediaType.TEXT_PLAIN);
		return representation;
	}
}

 (2)一个应用类application

import org.restlet.Application;
import org.restlet.Context;
import org.restlet.Restlet;
import org.restlet.Router;
public class TestApplication extends Application {
    public TestApplication(Context pc) {
        super(pc);
    }
    @Override
    public synchronized Restlet createRoot() {
        Router r = new Router(getContext());
        r.attachDefault(TestResource.class);
        return r;
    }
}

 (3)配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    
  <context-param>
  	<param-name>org.restlet.application</param-name>
  	<param-value>TestApplication</param-value>
  </context-param>
  
  <servlet>
  	<servlet-name>RestletServlet</servlet-name>
  	<servlet-class>com.noelios.restlet.ext.servlet.ServerServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>RestletServlet</servlet-name>
  	<url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>

 (4)浏览器查看结果情况



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值