ホームページ >Java >&#&チュートリアル >Spring MVCコントローラーアクションから外部URLにリダイレクトするにはどうすればよいですか?

Spring MVCコントローラーアクションから外部URLにリダイレクトするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-29 14:47:10307ブラウズ

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 へのリダイレクト

Toプロトコルを使用して外部 URL にリダイレクトするには、次のアプローチを使用できます。

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

を指​​定することにより、 URL 内のプロトコルを使用すると、Spring はユーザーを外部 Web サイトに正しくリダイレ​​クトします。

プロトコルを使用しない外部 URL へのリダイレクト

プロトコルを使用せずに外部 URL にリダイレクトするには、次を使用します。 Spring MVC には 2 つの代替手段があります:

メソッド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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。