有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jersey:重定向到Jersey根目录之外

我一直在编写一个Jersey原型(JAX-RS)应用程序,并希望尝试使用一种事后重定向方法来处理application/x-www-form-urlencoded posts

我想在成功后重定向到一个托管在应用程序根目录下的html页面,但是我似乎无法从Jersey的servlet根目录中逃脱

以下是允许您创建新用户的资源示例:

我想要的URI:/jersey test/user。html

我得到的URI:/jersey test/r/user。html

@POST
@Consumes({MediaType.APPLICATION_FORM_URLENCODED})
public Response putUser(@Context UriInfo uriInfo, 
    MultivaluedMap<String, String> formParams) {

    // snip... do work and insert user here...

    URI uri = uriInfo.getBaseUriBuilder().path("user.html").build();
    return Response.seeOther(uri).build();
}

我的网站上的相关片段。xml:

<web-app ...>
  <display-name>jersey-test</display-name>
  ...
  <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    ...
  </servlet>
  ...
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/r/*</url-pattern>
  </servlet-mapping>
</web-app>

共 (1) 个答案

  1. # 1 楼答案

    按如下方式分配路径:

    URI uri = uriInfo.getBaseUriBuilder().path("../user.html").build();