在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中文網其他相關文章!