繁体   English   中英

在Jersey POST处理程序中注入HttpServletRequest

[英]Injection of HttpServletRequest in Jersey POST handler

考虑这种情况:
我正在像这样的Rest Service中注入HttpServletRequest

@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。
请给我建议我去哪里。

您不需要从请求中获取参数等。 JAX-RS展示。 为您处理。

您必须使用参数注释将参数映射到方法参数。 转换转换等是自动完成的。

在这里,您的方法使用三种不同的方式来映射参数:

// 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM