1. 程式人生 > >forward和redirect請求方式

forward和redirect請求方式

esp 記憶 lan ansi sys enc tro doctype url

之前一直對forward和redirect有點疑問,現在練習一下加深點記憶,理解理解,forward是一次請求,在一個request範圍內,而redirect是二次請求

實例:

@Controller
public class ForwardController {
    @RequestMapping("/makeDataForward2.html")
    public String makeDataResponse(Model model,HttpServletRequest request) {
        //在model和request中保存屬性
        model.addAttribute("modelData", "model data");
        
//得到完整路徑 System.out.println("request.getRequestURL()"+request.getRequestURL()); //得到除去ip地址的路徑 System.out.println("request.getRequestURI()"+request.getRequestURI()); request.setAttribute("requestData", "reuqest data"); //正常響應 return "success"; }
//請求轉發 @RequestMapping("/makeDataForward.html") public String makeDateForward(Model model,HttpServletRequest request) { //在model和request中保存屬性 model.addAttribute("modelData", "model data"); request.setAttribute("requestData", "reuqest data"); //請求轉發過去後值也傳遞過去了 return
"forward:toSuccessPage.html"; } @RequestMapping("/makeDataRedirect.html") public String makeDataRedirect(Model model, HttpServletRequest request) { //在model和request中保存屬性 model.addAttribute("modelData", "model data"); request.setAttribute("requestData", "reuqest data"); //重定向 return "redirect:toSuccessPage2.html"; } @RequestMapping("/toSuccessPage.html") public String toSuccessPage() { return "success"; } @RequestMapping("/toSuccessPage2.html") public String toSuccessPage2(@ModelAttribute("modelData") String modelData) { //@ModelAttribute("modelData") //可以獲取重定向傳遞過來的頁面的model值,這樣在前端就可以獲取了 //如果沒有這個參數,頁面就獲取不到值 return "success"; } @RequestMapping("/toSuccessPage3.html") //RedirectAttributes可以向url傳遞參數,包括中文 public String toSuccessPage3(RedirectAttributes redirectAttributes) { redirectAttributes.addAttribute("param", "王"); return "redirect:/WEB-INF/jsp/success.jsp?method=號"; } }

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    model中數據:${modelData}
    <br/>
    <br/>
    request中數據:${requestData }
    <br/>
</body>
</html>

forward和redirect請求方式