首頁  >  文章  >  Java  >  SpringMVC轉送和重新導向有什麼區別?

SpringMVC轉送和重新導向有什麼區別?

零下一度
零下一度原創
2017-06-28 10:13:371818瀏覽

在servlet中,轉發和重定向是由request和response完成的。兩者之間的差異請看我之前的文章。那麼在springMVC中是如何完成的呢?

/**轉發**/ 

@RequestMapping("/login.do")

public String login(HttpServletRequest request,HttpServletResponse response){

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

return "forward:/index.do"; //forward在跳轉後可以取到message值

}

index.do為另外一個path,也就是RequestMapping中的值。

@RequestMapping("/index.do")

public String index(HttpServletRequest request,HttpServletResponse response){

##return "welcome";

# }

/**重定向**/

@RequestMapping("/logout.do")

public String logout(HttpServletRequest request,HttpServletResponse response){

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

return "redirect:/register.do"; //redirect在跳轉後無法取到message值

}

register.do為另外一個path,也就是RequestMapping中的值。

@RequestMapping("/register.do")

public String register(HttpServletRequest request,HttpServletResponse response){

return "register";

}

另外forward跳轉後網址列URL不會改變而redirect會改變

當我們使用重定向時,在後台傳到頁面的參數全部遺失,除非放在session中。所以在springMVC有解決方式如下:

@RequestMapping(“/update.do”)

public String update( RedirectAttributes redirectAttributes) {

redirectAttributes.FlashAttribute(" message", "操作成功");

return "redirect:/admin/user";

}

在重定向的頁面中,可以取得到message的值,這是由於spring將message放入session中了。

以上是SpringMVC轉送和重新導向有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn