我如何获取Jersey JaxRS中的所有查询参数?

我正在构build一个通用的Web服务,并需要将所有的查询参数获取到一个string,以供以后parsing。 我怎样才能做到这一点?

你可以通过@QueryParam("name")或者通过上下文访问所有参数来访问一个参数:

 @POST public Response postSomething(@QueryParam("name") String name, @Context UriInfo uriInfo, String content) { MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters(); String nameParam = queryParams.getFirst("name"); } 

关键是@Context jax-rs注释 ,它可以用来访问:

UriInfo,Request,HttpHeaders,SecurityContext,Providers

请求URI的未分析的查询部分可以从UriInfo对象获得:

 @GET public Representation get(@Context UriInfo uriInfo) { String query = uriInfo.getRequestUri().getQuery(); ... }