首頁 > Java > java教程 > 如何從 Spring MVC 控制器操作重新導向到外部 URL?

如何從 Spring MVC 控制器操作重新導向到外部 URL?

Linda Hamilton
發布: 2024-11-29 14:47:10
原創
358 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板