@javax.ws.rs Webservice注解

Posted 鬼王呵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@javax.ws.rs Webservice注解相关的知识,希望对你有一定的参考价值。

用于webservice。

1.路径

@javax.ws.rs.Path

标识要请求的资源类或资源方法的uri路径。
例,@Path("animal"),表示下一层路径是animal时要处理的事务。
@Path("species")这种带大括号的表示方法,表示下一层路径会被参数化,配合@PathParam("species")使用可以赋值给函数的参数。

对于代码:

[java] view plain copy
  1. @Path("animal")  
  2. public class Animal   
  3.     public String species,name;  
  4.     public int age;  
  5.     public static Animal animal=new Animal();  
  6.       
  7.     @GET  
  8.     @Path("species")  
  9.     @Produces(MediaType.APPLICATION_JSON)  
  10.     public Animal wsAnimal(@PathParam("species") String species,  
  11.             @QueryParam("name") String name,  
  12.             @QueryParam("age"int age  
  13.             )  
  14.         animal.species=species;  
  15.         animal.name=name;  
  16.         animal.age=  age==0?2:age;  
  17.         return animal;  
  18.       
  19.   

效果见图1-1:


图 1-1 @Path 用法示例


2.从报文数据到方法参数

@javax.ws.rs.PathParam

将uri中指定的路径参数绑定到资源方法参数,资源类的字段,或资源类的bean属性。

@javax.ws.rs. QueryParam

将http请求的Query参数赋值给函数的参数。

@javax.ws.rs.DefaultValue

设置@QueryParam参数的默认值。如果@QueryParam没有接收到值,就使用默认值。比如:

[java] view plain copy
  1. public String fun(@DefaultValue("description"@QueryParam("desc") String desc)...  
@javax.ws.rs. FormParam

将http请求的Form表单中的参数赋值给函数的参数。

@avax.ws.rs.Context

用于获取环境信息。一个获取客户端ip的例子见下:

[java] view plain copy
  1. @Path("util")  
  2. public class Util   
  3.       
  4.     @Path("getClientIp")  
  5.     @GET  
  6.     @Produces(MediaType.TEXT_PLAIN)  
  7.     public String getClientIp(@Context HttpServletRequest request)  
  8.         return request.getRemoteAddr();  
  9.       
  10.   

3.http方法

@javax.ws.rs.GET
表示此方法响应一个HTTP GET请求。

@javax.ws.rs.POST
表示此方法响应一个HTTP POST请求。

@javax.ws.rs.PUT

通常用来更新数据。

@javax.ws.rs.DELETE

通常用来删除数据。

4.返回数据类型

@javax.ws.rs.Produces
设置Http返回报文,报文体的内容类型。
取值为 javax.ws.rs.core.MediaType.XXX。常用的有:

MediaType. APPLICATION_JSON
MediaType. TEXT_PLAIN

以上是关于@javax.ws.rs Webservice注解的主要内容,如果未能解决你的问题,请参考以下文章

在 jdk 中找不到 javax.ws.rs 包

使用 javax.ws.rs.core.Application 实现通用 JAX-RS Web 服务

找不到类型的上下文数据:javax.ws.rs.core.UriInfo

javax.ws.rs.client.WebTarget 可选查询参数

javax.?ws.?rs

如何从 javax.ws.rs.core.Response 响应中检索 JSON 响应?