一些基础的这一篇: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
指定返回类型,另一个重要作用是指定编码,如果有中文问题的时候记得在这里加上编码