1. 程式人生 > >【轉】@javax.ws.rs Webservice註解

【轉】@javax.ws.rs Webservice註解

.get tracking 技術 center int 綁定 客戶 資源 csdn

用於webservice。

1.路徑

@javax.ws.rs.Path

標識要請求的資源類或資源方法的uri路徑。
例,@Path("animal"),表示下一層路徑是animal時要處理的事務。
@Path("{species}")這種帶大括號的表示方法,表示下一層路徑會被參數化,配合@PathParam("species")使用可以賦值給函數的參數。

對於代碼:

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


效果見圖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 print?
  1. public String fun(@DefaultValue("description") @QueryParam("desc") String desc){...}
public String fun(@DefaultValue("description") @QueryParam("desc") String desc){...}

@javax.ws.rs.FormParam

將http請求的Form表單中的參數賦值給函數的參數。

@avax.ws.rs.Context

用於獲取環境信息。一個獲取客戶端ip的例子見下:

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

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註解