ホームページ  >  記事  >  Java  >  SpringMVC フォワーディングとリダイレクトの違いは何ですか?

SpringMVC フォワーディングとリダイレクトの違いは何ですか?

零下一度
零下一度オリジナル
2017-06-28 10:13:371769ブラウズ

サーブレットでは、転送とリダイレクトはリクエストとレスポンスによって行われます。両者の違いについては前回の記事をご覧ください。では、springMVC ではどのように行われるのでしょうか?

/**フォワード**/

@RequestMapping("/login.do")

public String login(HttpServletRequest request,HttpServletResponse response){

request.setAttribute("message", "hello");

return "forward:/index.do"; //forward はジャンプ後のメッセージ値を取得できます

}

index.do は、RequestMapping の値である別のパスです。

@RequestMapping("/index.do")

public Stringindex(HttpServletRequestリクエスト,HttpServletResponseレスポンス){

return "welcome";

}

/**リダイレクト**/

@RequestMapping( "/logout.do")

public String logout(HttpServletRequest request,HttpServletResponse response){

request.setAttribute("message", "hello");

return "redirect:/register.do"; requestMapping の値である、jump

}

register.do が別のパスになった後、メッセージ値を取得できません。

@RequestMapping("/register.do")

public String register(HttpServletRequest request,HttpServletResponse response){

return "register";

}

また、アドレスバーのURLは前方ジャンプ後に変更されませんただし、リダイレクト 変更されます

リダイレクトを使用すると、バックグラウンドでページに渡されたすべてのパラメーターは、セッションに配置されない限り失われます。したがって、 springMVC には次のような解決策があります:

@RequestMapping("/update.do")

public String update( RedirectAttributes redirectAttributes) {

redirectAttributes.addFlashAttribute("message", "Operation success");

return "redirect:/admin/user";

}

リダイレクトされたページで、メッセージの値を取得できます。これは、Spring がメッセージをセッションに入れるためです。

以上がSpringMVC フォワーディングとリダイレクトの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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