快速业务通道

使用Jersey和Apache Tomcat构建RESTful Web服务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
act 示例进 行说明。

POST

通常通过填写表单创建新联系人。也就是说,HTML 表单将 POST 到服务器,服务器创建并维护新创建的联系人。清单 5 演示了该 操作的服务器端逻辑。

清单 5. 接受表单提交(POST)并新建一个联系 人

@POST  @Produces(MediaType.TEXT_HTML) @Consumes (MediaType.APPLICATION_FORM_URLENCODED) public void newContact (  @FormParam("id") String id,  @FormParam("name")  String name,  @Context HttpServletResponse servletResponse ) throws IOException {  Contact c = new Contact (id,name,new ArrayList<Address>());   ContactStore.getStore().put(id, c);  URI uri =  uriInfo.getAbsolutePathBuilder().path(id).build();   Response.created(uri).build();   servletResponse.sendRedirect("../pages/new_contact.html"); }

注意该示例的以下部分:

@Consumes:声明该方法使用 HTML FORM。

@FormParam:注入该方法的 HTML 属性确定的表单输入。

@Response.created(uri).build(): 构建新的 URI 用于新创建的联系 人(/contacts/{id})并设置响应代码(201/created)。您可以使用 http://localhost:8080/Jersey/rest/contacts/<id> 访问新联系人。

使用Jersey和Apache Tomcat构建RESTful Web服务(6)

时间:2011-06-12 IBM Yi Ming Huang

PUT

我使用 PUT 方法更新现有资源。但是,也可以通过更新实现 ,或者像清单 6 中的代码片段展示的那样创建一个资源。

清单 6. 接受 PUT 请求并创建或更新联系人

@PUT  @Consumes (MediaType.APPLICATION_XML) public Response putContact (JAXBElement<Contact> jaxbContact) {  Contact c =  jaxbContact.getValue();  return putAndGetResponse(c); } private Response putAndGetResponse(Contact c) {   Response res;  if(ContactStore.getStore().containsKey(c.getId ())) {  res = Response.noContent().build();  } else  {  res = Response.created(uriInfo.getAbsolutePath()).build ();  }  ContactStore.getStore().put(c.getId(), c);  return res; }

我还在本示例中包含了许多不同的概念 ,重点强调以下概念:

Consume XML:putContact() 方法接受 APPLICATION/XML 请求类型,而这种输入 XML 将使用 JAXB 绑定到 Contact 对 象。您将在下一节中找到客户端代码。

空响应带有不同的状态码:PUT 请求的响应没有任何内容,但是有不同的状态码。如果数据存储库中存在联系人 ,我将更新该联系人并返回 204/no content。如果没有新联系人,我将创建一 个并返回 201/created。

DELETE

实现 DELETE 方法非常简单。示 例请查看清单 7。

清单 7. 删除其 ID 确定的联系人

@DELETE   public void deleteContact() {  Contact c =  ContactStore.getStore().remove(contact);  if(c==null)   throw new NotFoundException("No such Contact."); }

使用Jersey和Apache Tomcat构建RESTful Web服务(7)

时间:2011-06-12 IBM Yi Ming Huang

表示形式

在上一节中,我介绍了几个表示形式类型。现 在我将简要浏览一遍并深入探讨 JAXB 表示形式。其他受支持的表示形式有 byte[]、InputStream、File 等。

String:纯文本。

Response: 一般 HTTP 响应,包含带有不同响应代码的定制内容。

Void:带有 204/no content 状态码的空响应。

Resource Class:将流程委托给该资 源类。

POJO:使用 @XmlRootElement 注释的 JavaBean,这让它成为一 个 JAXB bean,可以绑定到 XML。

POJO 集合:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号