Spring MVC - 处理重定向

标签 spring spring-mvc redirect

我想在服务器端重定向页面(使用 spring),但 URL 应保持不变。

例如:如果用户尝试 http://www.example.com/page1 ,我想渲染 http://www.example.com/page2 的内容在浏览器中,但 URL 仍应指向 http://www.example.com/page1 .

我尝试了 301、302、307 重定向,但所有页面 URL 都更改为 http://www.example.com/page2 .

有什么办法可以实现这个目标吗?

最佳答案

这是一个术语问题。您要寻找的是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");
    }
}

关于Spring MVC - 处理重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20846667/

相关文章:

spring - Spark/Spring验证API依赖项冲突

java - 如何使用随机数据自动测试 RESTful Web 服务

java - 使用 AJAX 登录时 spring security 显示 403 错误

java - Entitymanager 为 null spring JPA 配置

带有非嵌入式 Tomcat 的 Spring Boot : loader constraint violation error

php - 为什么重定向 PHP 只得到白页?

java - Java EE Controller 上的Spring安全认证

java - 我可以在不提供 URL 中的端口的情况下访问我的 Spring Boot 应用程序吗?

jquery - 如何使用 jquery 选项卡重定向到另一个网页?

php - PHP 重定向 seo 友好吗?