我想在服务器端重定向页面(使用spring),但URL应该保持不变。
例如:如果用户尝试http://www.example.com/page1,我想在浏览器中呈现http://www.example.com/page2的内容,但网址仍应指向http://www.example.com/page1。
我尝试了301,302,307重定向,但所有网页网址都更改为http://www.example.com/page2。
无论如何要实现这个目标吗?
答案 0 :(得分:2)
这是一个术语问题。您要找的是forward
而不是redirect
。如果你有兴趣,你可能想看看它,例如在这里:http://www.javapractices.com/topic/TopicAction.do?Id=181。
至少有两种方法可以做到这一点:
繁体,RequestDispatcher
也可以在Spring WebMVC应用程序之外使用。
public class MyController extends AbstractController {
@Override
protected void handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
throws Exception {
request.getRequestDispatcher("/new/path").forward(request, response);
}
}
Spring WebMVC表示法:
public class MyController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
throws Exception {
return new ModelAndView("forward:/new/path");
}
}