@javax.ws.rs Webservice註解
阿新 • • 發佈:2019-01-08
用於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沒有接收到值,就使用預設值。比如:
@javax.ws.rs.FormParampublic String fun(@DefaultValue("description") @QueryParam("desc") String desc){...}
將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