zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    css优先级
    常用CSS缩写语法总结
    老婆,同床不仅是老公生理的需要,更是心理的需要
    地震预测与概率(转)
    转载:如何研究系统的体系结构
    在RIA应用中,定义DTO作为工作划分的依据或接口
    需求分析应包含理解需求描述本身意思还包括给出解决方案
    今天规定了完成作业的时间,小东西到是按时完成了,基本上是吓写的,看来要严格要求了
    生活不能实验,结果只有一个,不要相信概率
    让人头疼的概率论游戏
  • 原文地址:https://www.cnblogs.com/ya-qiang/p/9393147.html
Copyright © 2011-2022 走看看