首页 > Java > java教程 > 如何从 Spring MVC 控制器操作重定向到外部 URL?

如何从 Spring MVC 控制器操作重定向到外部 URL?

Linda Hamilton
发布: 2024-11-29 14:47:10
原创
294 人浏览过

How to Redirect to an External URL from a Spring MVC Controller Action?

从 Spring MVC 中的控制器操作重定向到外部 URL

尝试从 Spring MVC 中的控制器操作重定向到外部 URL 时,了解默认“redirect:”语法的限制非常重要。默认情况下,Spring 重定向到应用程序上下文路径中的 URL。

重定向到内部 URL

如第一个代码片段所示:

@RequestMapping(method = RequestMethod.POST)
public String processForm(...) {
    String redirectUrl = "yahoo.com";
    return "redirect:" + redirectUrl;
}
登录后复制

此代码尝试重定向到 URL“yahoo.com”,但缺少有效的协议(例如,http:// 或https://)。因此,Spring 将其解释为内部 URL 并重定向到应用程序上下文路径中的“yahoo.com”。

使用协议重定向到外部 URL

到重定向到带有协议的外部 URL,可以使用以下方法:

@RequestMapping(method = RequestMethod.POST)
public String processForm(...) {
    String redirectUrl = "http://www.yahoo.com";
    return "redirect:" + redirectUrl;
}
登录后复制

通过在URL,Spring 正确地将用户重定向到外部网站。

重定向到没有协议的外部 URL

要使用 Spring MVC 重定向到没有协议的外部 URL,需要两个存在替代方案:

方法1:

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public void method(HttpServletResponse httpServletResponse) {
    httpServletResponse.setHeader("Location", projectUrl);
    httpServletResponse.setStatus(302);
}
登录后复制

此方法手动设置响应中的“Location”标头和相应的 HTTP 状态代码 (302) 以触发重定向。

方法2:

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public ModelAndView method() {
    return new ModelAndView("redirect:" + projectUrl);
}
登录后复制

此方法使用“ModelAndView”类创建重定向响应指定的 URL。

以上是如何从 Spring MVC 控制器操作重定向到外部 URL?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板