標籤:環境 oar nts script 取值 ddr blog anim str
用於webservice。
1.路徑
@javax.ws.rs.Path
標識要請求的資源類或資源方法的uri路徑。
例,@Path("animal"),表示下一層路徑是animal時要處理的事務。
@Path("{species}")這種帶大括弧的表示方法,表示下一層路徑會被參數化,配合@PathParam("species")使用可以賦值給函數的參數。
對於代碼:
[java] view plain copy print?
- @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;
- }
- }
@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?
- 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?
- @Path("util")
- public class Util {
-
- @Path("getClientIp")
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- public String getClientIp(@Context HttpServletRequest request){
- return request.getRemoteAddr();
- }
- }
@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註解