zoukankan      html  css  js  c++  java
  • SpringMVC入门学习(六)----SpringMVC中的转发与重定向

    1、转发与重定向

    在SpringMVC中,如果当处理器对请求处理完毕后,在不是返回JSON数据的情况下,一般都会跳转到其它的页面,此时有两种跳转方式:请求转发与重定向。在SpringMVC中分别对应forward和redirect这两个关键字。

    关键字
    描述
    SpringMVC实现 原生servlet实现
    forward 表示转发 forward:"目标页面"(例如forward:"/WEB_INF/success.jsp") request.getRequestDispatcher("xx.jsp").forward()
    redirect 表示重定向 redirect:"目标页面" | redirect:"目标请求" response.sendRedirect("xxx.jsp")

    2、SpringMVC转发指令

    @RequestMapping("/forward")
    public String forward() {
        return "forward:/target.jsp";
    }
    

    表示方法执行完成后转发到/target.jsp

    3、SpringMVC重定向指令

    @RequestMapping("/redirect")
    public String redirect() {
        return "redirect:/target.jsp";
    }
    

    表示方法执行完成后重定向到/target.jsp。这里重定向中使用的路径和我们以前的写法不同,没有以Web应用名称开头,这是因为SpringMVC会替我们加上。

    @RequestMapping("/redirect")
    public String redirect() {
        return "redirect:/find";
    }
    

    表示方法执行完成后重定向到/find请求。

    4、使用原生对象完成转发

    @RequestMapping("/forward")
    public void forward2(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/target.jsp").forward(request, response);
    }
    

    注意:使用原生request对象执行转发后,handler方法的返回值就必须是void,意思是我们自己指定了响应方式,不需要SpringMVC再进行处理了。一个请求只能有一个响应,不能在handler方法里面给一个,然后SpringMVC框架再给一个。

    5、使用原生对象完成重定向

    @RequestMapping("/redirect")
    public void redirect2(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.sendRedirect(request.getContextPath()+"/target.jsp");
    }
    

    使用原生response对象执行重定向后,handler方法的返回值同样需要设置为void,原因同上。

    作者: 唐浩荣
    本文版权归作者和博客园共有,欢迎转载,但是转载需在博客的合适位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    StrUtils单元中的函数
    windows系统字体问题
    进程间通讯(模拟远程CMD)
    sql远程连接SQL(不能打开到主机的连接,在端口 1433:连接失败)
    在delphi中三个形式:ADODB_TLB ADOInt ADODB
    安装Ms SQL Server时提示:以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机。
    从Indy9升级到Indy10时IdTcpServer的变化
    如何实现调用DOS程序的时候的管道输入重定向!
    接口技术
    SysUtils单元函数
  • 原文地址:https://www.cnblogs.com/tanghaorong/p/14761550.html
Copyright © 2011-2022 走看看