`

Restlet实战(十二)获取参数值

    博客分类:
  • REST
阅读更多

本篇文章将讲解三种不同值的获取方法。

 

1.从Web Form中获取值

 

 

 

    如果看过此系列文章中的Restlet实战(七)-提交和处理Web Form 对此应该有一定的印象,简单把代码贴过来加深印象:

 

Java代码  收藏代码
  1. @Override    
  2. public boolean allowPost() {     
  3.     return true;     
  4. }     
  5.     
  6. @Override    
  7.    public void acceptRepresentation(Representation entity) throws ResourceException {     
  8.     Form form = new Form(entity);     
  9.     Customer customer = new Customer();     
  10.     customer.setName(form.getFirstValue("name"));     
  11.     customer.setAddress(form.getFirstValue("address"));     
  12.     customer.setRemarks("This is an example which receives request with put method and save data");     
  13.          
  14.     customerDAO.saveCustomer(customer);     
  15. }  

 除了上面这样的方式获取Web Form外,实际上Web Form是POST 请求送到服务器的实体,所以也可以从Request中获得,我们对上述类做一修改。

 

Java代码  收藏代码
  1. @Override  
  2. public void init(Context context, Request request, Response response) {  
  3.     super.init(context, request, response);  
  4.       
  5.     Form form = request.getEntityAsForm();  
  6.     Customer customer = new Customer();  
  7.     customer.setName(form.getFirstValue("name"));  
  8.     customer.setAddress(form.getFirstValue("address"));  
  9. }  

 从方法调用顺序上讲,init方法调用在前,acceptRepresentation方法调用在后,有意思的是,如果这两个方法里面都有拦截取Form的代码,那么Restlet将抛出一个异常,内容如下:

 

Java代码  收藏代码
  1. java.lang.IllegalStateException:   
  2. The Web form cannot be parsed as no fresh content is available.   
  3. If this entity has been already read once, caching of the entity is required  

 

意思是Form已经被分析过一次,如果想再次用,建议cache这个form,呵呵,有意思。

 

 2. 从查询中获取值

 

 对Restlet实战(七)-提交和处理Web Form 中的index.jsp做一个简单的修改:

 

Html代码  收藏代码
  1. <form name="form1" action="<%=request.getContextPath()%>/resources/customers?query=test" method="post">  
  2.     Name:<input type="text" name="name"/><br>  
  3.     Address:<input type="text" name="address"/><br>  
  4.     <input type="button" value="Submit" onclick="doSubmit()"/>  
  5. </form>  

 在/resources/customers后面加了?query=test,修改CustomersResource的init方法来获取查询值:

 

Java代码  收藏代码
  1. @Override  
  2. public void init(Context context, Request request, Response response) {  
  3.     super.init(context, request, response);  
  4.       
  5.     Form form = request.getResourceRef().getQueryAsForm();  
  6.     for (Parameter parameter : form) {  
  7.         System.out.print("parameter " + parameter.getName());  
  8.         System.out.println("/" + parameter.getValue());  
  9.     }  
  10. }  

 方法我们不作过多的处理,只是验证是否能获取到值。

 

3. 从Cookie中获取值

 

cookie能直接从request中获得,返回的是一个cookie的对象集合,同上,在init方法里面添加如下代码:

 

Java代码  收藏代码
  1. for (Cookie cookie : request.getCookies()) {  
  2.     System.out.println("name = " + cookie.getName());  
  3.     System.out.println("value = " + cookie.getValue());  
  4.     System.out.println("domain = " + cookie.getDomain());  
  5.     System.out.println("path = " + cookie.getPath());  
  6.     System.out.println("version = " + cookie.getVersion());  
  7. }  

 

分享到:
评论

相关推荐

    Restlet实战(二十六)事务 (Transaction)

    本文将深入探讨RESTful服务中的事务处理,并以《Restlet实战(二十六)事务 (Transaction)》为例进行解析。 首先,我们要理解RESTful服务中的核心原则之一是无状态(Stateless)。这意味着每个客户端请求都包含处理...

    Java Restlet获取请求头实例

    Restlet 实现ServerResource类 列子有: 返回简单JSON类型 获取请求头,返回请求头 接收简单Json类型数据 将复杂对象使用Json格式返回

    RestletClient接口调试

    RestletClient是一款强大的接口调试工具,它为开发者提供了一个便捷的平台来测试、调试和分析RESTful Web服务。在Web应用程序开发过程中,接口调试是非常重要的一环,它可以帮助开发者验证API的功能,确保数据的正确...

    restlet

    RESTlet是一款开源框架,专为构建基于REST(Representational State Transfer)原则的Web服务和应用程序设计。REST是一种轻量级的架构风格,广泛应用于互联网应用的开发,它强调通过简单的HTTP方法(如GET、POST、...

    restlet2.1学习笔记项目代码

    Restlet是一个开源框架,专为构建RESTful(Representational State Transfer)Web服务而设计。REST是一种轻量级的架构风格,常用于构建可扩展、高性能的互联网应用程序。本项目是针对Restlet 2.1版本的学习笔记,...

    Restlet与Spring 集成

    这个方法接收请求参数,并通过`getResponse().setStatus()`设置状态码,通过`getResponse().setEntity()`设置返回的JSON值。 3. **配置Restlet与Spring**: - **restletContext.xml**:这是Restlet的配置文件,...

    org.restlet.jar

    org.restlet.jar

    Restlet开发的Basic认证

    Restlet是一个轻量级的Java Web服务开发框架,它提供了构建RESTful(Representational State Transfer)应用程序的工具和API。REST是一种架构风格,强调简洁、无状态和可缓存的网络交互,常用于构建高性能、高可用性...

    Restlet所需要的所有jar包

    Restlet是一款开源的Java框架,专门用于构建RESTful(Representational State Transfer)Web服务。REST是一种轻量级的架构风格,常用于构建高效、可扩展的网络应用程序。本压缩包包含Restlet框架运行所需的全部jar...

    restlet项目

    Restlet项目是一个开源框架,专门用于构建RESTful(Representational State Transfer)Web服务。REST是一种软件架构风格,它强调简洁、可扩展性和无状态性,是Web服务设计的主流方式。Restlet框架提供了全面的工具集...

    RESTLET开发

    ### RESTLET开发实例详解 #### 一、RESTLET框架简介 **RESTLET**是一个轻量级且全面的框架,旨在实现REST(Representational State Transfer)原则与Java类之间的映射。该框架支持广泛的REST式系统构建,不仅仅...

    restlet实现最简单的restful webservice

    Restlet是一款开源框架,专为构建RESTful Web服务和客户端应用程序设计。REST(Representational State Transfer)是一种轻量级的架构风格,广泛用于构建互联网应用,因为它提供了高效、分布式的系统设计原则。本文...

    Restlet开发实例

    Restlet是一款强大的开源框架,专为构建RESTful(Representational State Transfer)Web服务而设计。REST是一种轻量级的架构风格,广泛应用于Web应用程序的开发,以提高性能、可伸缩性和可维护性。本系列的开发实例...

    org.restlet-2.3.0.jar 最新版本

    《深入理解org.restlet-2.3.0.jar:Java RESTful开发的得力助手》 在Java开发领域,REST(Representational State Transfer)架构风格已经成为构建Web服务的主流选择,而org.restlet-2.3.0.jar则是实现RESTful API...

    RESTLET框架学习书籍

    ### RESTLET框架学习知识点 #### 一、RESTLET框架概览 - **RESTLET框架简介**:RESTLET是一个面向对象的Java开源框架,用于构建RESTful应用和服务。它旨在简化Web应用开发,允许开发者充分利用REST架构的优势。...

    Restlet Client-2.13.2

    Restlet Client插件是一款运行在chrome内核浏览器上的Web服务测试插件,该插件主要用于测试各种Web服务,能查看网站基本信息、浏览网页代码并能发送HTTP请求来测试网站Web服务,同时支持自动化API场景。用户在安装了...

    Restlet in action 英文 完整版

    ### Restlet in Action:开发Java中的RESTful Web API #### 一、概述 《Restlet in Action》是一本深入探讨如何使用Restlet框架来构建RESTful Web服务的书籍。本书由Jérôme Louvel、Thierry Templier和Thierry ...

Global site tag (gtag.js) - Google Analytics