没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一、名词解释
1 Rest Web Services
Representational State Transfer,具象状态传输。
REST 中最重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识。客
户端应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集。
RESTful Web 服务是使用 HTTP 和 REST 原理实现的 Web 服务。通常,RESTful Web
服务应该定义以下方面:
Web 服务的基/根 URI,比如 http://host/<appcontext>/resources。
支持 MIME 类型的响应数据,包括 JSON/XML/ATOM 等等。
服务支持的操作集合(例如MPOST、GET、PUT(或MDELETE)。
2 @注释说明
2.1 @Produces 表示返回的格式
表示返回的 格式
!"表示返回的 #$ 格式
%表示返回的纯文本格式
2.2 @ Consumes
$application/x-www-form-urlencoded窗体数据被编码为名称
/值对
@Consumes @Singleton @XmlRootElement@Provider
二、新建、初始化工程
1 下载 jar 包
http://download.java.net/maven/2/com/sun/jersey/jersey-archive/1.1.2-ea/jersey-archive-
1.1.2-ea.zip
2 新建 web 工程
使用 % &' 新建 () 工程*命名为 +, -,将上述下载 # 包导入 )
3 修改 web.xml
添加如下内容
<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>
com.sun.jersey.server.impl.container.servlet.ServletAdaptor
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
4 将工程部署至 tomcat
服务器生成 ,例如 http://localhost:8080/RestfulDemo
这个 是服务的最基本的 ,后面的服务都是基于这个地址添加路径组合,例如
http://localhost:8080/RestfulDemo /H ello W orld RS
三 、 使 用 jersey 开 发 简 单 的 rest web
services
1 @GET
1.1 服务端
package com.cn;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
@Path("/H ello W orld RS ") // 本服务的访问路径,与工程路径组合使用
public class HelloWorldRS {
Map<String,String> map = new HashMap<String,String>();
public HelloWorldRS() {
map.put("1","A");
map.put("2","B");
map.put("3","C");
}
@GET //表明是一个GET方法
@Path("/sayHelloByGET") //调用的时候要加入此路径,精确指定调用的函数
@Produces("text/html") // 输出参数的类型
public String sayHelloByGET(
@QueryParam("from")String fromValue, //客户端传来的参数key为"from"
@Context HttpServletRequest request) {
System.out.println(fromValue);
return map.get(fromValue);
}
1.2 调用 1.1get 服务的客户端
package com.client;
import javax.ws.rs.core.*;
import com.sun.jersey.api.client.*;
import com.sun.jersey.core.util.*;
public class JerseyClientGet {
//基础的服务url 包含工程名+服务类的@path
String url =
"http://localhost:8080/RestfulDemo/HelloWorldRS";
public static void main(String[] args) {
new JerseyClientGet().go();
}
public void go() {
Client client = Client.create();
// /sayHelloByGET为某精确函数的@path
WebResource webResource =
client.resource(url+"/sayHelloByGET");
// 设定要帶的参数
MultivaluedMap queryParams = new MultivaluedMapImpl();
queryParams.add( "from" , "3" ) ; //from是个key,服务端要根
据"from"获得"3",类似map
//调用@GET服务时使用如下方法
String str =
webResource.queryParams(queryParams).get(String.class);
System.out.println(str);
}
}
如果调用服务端的函数是@GET,则要用上述红颜色的.get
方法
剩余19页未读,继续阅读
资源评论
Colinsanity
- 粉丝: 0
- 资源: 27
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功