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

@javax.ws.rs Webservice註解

用於webservice。

1.路徑

@javax.ws.rs.Path

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

對於程式碼:

@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沒有接收到值,就使用預設值。比如:

public String fun(@DefaultValue("description") @QueryParam("desc") String desc){...}
@javax.ws.rs.FormParam

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

@avax.ws.rs.Context

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

@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