考虑这种情况: -
我在像
@Context
HttpServletRequest request;
并在以下方法中使用它: -
@GET
@Path("/simple")
public Response handleSimple() {
System.out.println(request.getParameter("myname"));
return Response.status(200).entity("hello.....").build();
}
这很好但是当我尝试通过POST方法发送它并用@POST注释替换@GET时,我得到参数值null。
请建议我在哪里误会。
答案 0 :(得分:0)
您无需从请求中获取参数等。 JAX-RS impl。为你处理。
您必须使用参数注释将参数映射到方法参数。铸造转换等是自动完成的。
此处您的方法使用三种不同的方式来映射您的参数:
// As Pathparameter
@POST
@Path("/simple/{myname}")
public Response handleSimple(@PathParam("myname") String myName) {
System.out.println(myName);
return Response.status(200).entity("hello.....").build();
}
// As query parameter
@POST
@Path("/simple")
public Response handleSimple(@QueryParam("myname") String myName) {
System.out.println(myName);
return Response.status(200).entity("hello.....").build();
}
// As form parameter
@POST
@Path("/simple")
public Response handleSimple(@FormParam("myname") String myName) {
System.out.println(myName);
return Response.status(200).entity("hello.....").build();
}
有关Jersey的JAX-RS注释的文档,您可以在此处找到: https://jersey.java.net/documentation/latest/jaxrs-resources.html