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

时间:2016-02-25 14:17:52

标签: java spring-mvc redirect url-redirection forward

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

比方说,网址是

的形式

获取http://192.168.2.0/user1/app/node-id/info

然后,

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

获取http://192.168.2.1/app/node-id/info

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

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

我能够在每个地方看到解决方案servlet的方式。 春天的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

Java servlet具有重定向和转发方法。它们之间的差异在here上解释,你可以使用它们如下;重定向更改URL但转发处理请求内部。

如果您想将用户重定向到远程网址,请检查this Q&A,并可能在不更改浏览器地址的情况下重定向,最简单的方法是使用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);
}

除了网址上的用户名,您还可以使用filters并根据需要重定向。要使用带过滤器的弹簧,请检查herehere