我需要根据网址中的用户名重定向网址。
比方说,网址是
的形式获取http://192.168.2.0/user1/app/node-id/info
然后,
它应该将此网址重定向到不同的服务器,例如
获取http://192.168.2.1/app/node-id/info
客户端应该不知道这个事实,它正被重定向。 他/她应该看到相同的网址,但响应应该来自Json或html格式的重定向网址。
我们可以通过请求转发执行。
我能够在每个地方看到解决方案servlet的方式。 春天的最佳方式是什么?
答案 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);
}