Java Jersey:在 Tomcat 上的 Rest 方法中获取客户端 IP

发布于 2024-11-09 19:01:15 字数 449 浏览 3 评论 0原文

我有一个在 tomcat 6 上运行的 Jersey Rest Web 服务。我有一个使用 Multipart 的 @Post 方法:

@Path("identify")   
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_XML)
    public String identifyReception(com.sun.jersey.multipart.MultiPart multiPart) throws Exception {

我想在该方法中获取客户端 IP 地址。我发现您可以在 Get 方法中使用 @Context HttpServletRequest 。但在 post 方法中我需要多部分输入参数。我还发现tomcat不支持Servlet规范...

还有其他方法可以做到吗?

I have a Jersey rest webservice that runs on tomcat 6. I have a @Post method that consumes Multipart:

@Path("identify")   
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_XML)
    public String identifyReception(com.sun.jersey.multipart.MultiPart multiPart) throws Exception {

I would like to get the client IP address inside this method. I found out that you can use @Context HttpServletRequest inside Get method. But in post method I need the multipart input argument. I have also found out that tomcat does not support Servlet specification...

Is there another way I can do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只有影子陪我不离不弃 2024-11-16 19:01:15

我发现你可以在 Get 方法中使用 @Context HttpServletRequest 。但在 post 方法中我需要多部分输入参数。

我不认为两者是相互排斥的。让您的方法接受两个参数(我认为它们的顺序并不重要)并用 @Context 注释其中之一。我相信无论是获取、发布还是其他方式,这都会起作用。您也可以只使用 @Context 注释字段,Jersey 会在调用您的 @GET 方法之前为您初始化它。

I found out that you can use @Context HttpServletRequest inside Get method. But in post method I need the multipart input argument.

I don't think the two are mutually exclusive. Let your method take two arguments (I don't think it matters what order they're in) and annotate one of them with @Context. I believe that will work whether it's a get, post, whatever. You could also just annotate a field with @Context and Jersey will initialize it for you before it calls your @GET method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文