一些基礎的這一篇:Java Jersey2使用總結講的蠻清楚,結合使用過程中的幾個小地方再總結一下。
先看一個完整的例子:
@Path("/user")
public class Post {
@GET
@Path("{userid}")
@Produces("application/json;charset=utf8")
public String getPosts(@PathParam("userid") String userid, @DefaultValue("20") @QueryParam("limit") int limit){
……
}
@GET
@Path("{postID:[0-9]*_[0-9]*}")
@Produces("text/html")
public String getPost(@PathParam("postID")String postID){
……
}
}
@Path
代表了資源訪問路徑,也就是url中?前的路徑,可以對類和方法都加上@Path參數。
使用默認值
如實例所示,使用默認值很簡單,在前面加上@DefaultValue("20")
就可以了,該參數只接受字符串類型,因此雖然我們的最終參數是整形,這裏仍然使用了引號作爲字符串傳遞,後邊自己會做格式轉換。使用正則表達式接受指定路徑
如上例,訪問getPosts()方法的url可以是/user/userid?limit=10
或者/user/userid
;訪問個體Post()
方法的url可以使/user/postID
。在這裏使用了正則表達式將二者區分,userid形如3434343
,而postid形如34343_343434
,如果發現有下劃線,那麼就會調用getpost(),否則調用getposts().
@Produces
指定返回類型,另一個重要作用是指定編碼,如果有中文問題的時候記得在這裏加上編碼