forward和redirect請求方式


之前一直對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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM