Url 根据Java中的用户名重定向

Url redirection according to the user name in Java

我需要根据 url 中的用户名重定向 url。

假设,url 是

的形式

得到http://192.168.2.0/user1/app/node-id/info

然后,

它应该将此 url 重定向到不同的服务器,例如

得到http://192.168.2.1/app/node-id/info

客户端应该不知道这个事实,它正在被重定向。 He/She 应该看到相同的 url,但响应应该来自 Json 或 html 格式的重定向 url。

我们可以通过请求转发来执行。

在我能够看到解决方案 servlet 方式的每个地方。 spring 最好的方法是什么?

Java servlet 有重定向和转发方法。 here 中解释了它们之间的区别,您可以按如下方式使用它们;重定向更改 url 但转发在内部处理请求。

如果您想将用户重定向到远程 url 检查 this Q&A and maybe to redirect without changing browser's address, the easy way is reading it with url 并将其写入 servlet 上的响应

private void redirect(ResponsePage aDestinationPage, HttpServletResponse aResponse) throws IOException {
    String urlWithSessionID = aResponse.encodeRedirectURL(aDestinationPage.toString());
    aResponse.sendRedirect( urlWithSessionID );
}

private void forward(ResponsePage aResponsePage, HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletException, IOException {
    RequestDispatcher dispatcher = aRequest.getRequestDispatcher(aResponsePage.toString());
    dispatcher.forward(aRequest, aResponse);
}

除了 url 地址上的用户名,您还可以使用 filters and redirect them as your wish. For using spring with filter please check here and here