spring mvc 请求转发和重定向

转载 2016年08月30日 22:41:17

请求重定向与请求转发的比较,HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有很大的区别。

1.RequestDispatcher.forward方法只能将请求转发给同一个Web应用中的组件,HttpServletResponse.sendRedirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序的资源,甚至是使用绝对URL重定向到其他站点的资源。对于sendRedirect如果传递的URL以”/”开头,他是相对于整个Web站点的根目录;对于forward如果传递的URL以”/”开头,它是相对于当前Web应用程序的根目录。

2.sendRedirect对浏览器做出的响应是重新发出对另外一个URL的访问请求,forward在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果

3.forward的调用者与被调用者之间共享相同的request对象和response对象,他们属于同一个访问请求和响应过程;sendRedirect的调用者与被调用者使用各自的request和response对象,属于两个独立的访问请求和响应过程

请求重定向以redirect:开头,请求转发以forward:开头; 
样例如下:

@RequestMapping(value="/users")
@Controller
public class UserController {

    @RequestMapping(value="/queryuser",method = RequestMethod.GET)
    public String queryuser(Model model) throws Exception {
        return "forward:/users/uc";
    }

    @RequestMapping(value="/uc",method = RequestMethod.GET)
    public String quer(Model model) throws Exception {

        return "redirect:/#/home";
    }

     @RequestMapping(value = "/save", method = RequestMethod.GET)  
        public ModelAndView saveUser(HttpServletRequest request, HttpServletResponse response) throws Exception {  
            ModelAndView mv = new ModelAndView("forward:/users/uc");//默认为forward模式  
//        ModelAndView mv = new ModelAndView("redirect:/#/home");//redirect模式  
            return mv;  
        } 
} 

spring mvc 重定向和请求转发

1. 需求背景     需求:spring MVC框架controller间跳转,需重定向。有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示。 本来以为挺简单的...
  • u013755987
  • u013755987
  • 2015年03月20日 15:46
  • 4499

spring mvc 请求转发和重定向

请求重定向与请求转发的比较,HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但...
  • u012373815
  • u012373815
  • 2016年08月03日 14:01
  • 8836

spring mvc 请求转发和重定向

spring mvc3中的addFlashAttribute方法 url: http://www.software8.co/wzjs/java/2943.html   记得在spring mvc...
  • jackpk
  • jackpk
  • 2014年02月12日 16:15
  • 342653

Spring MVC 转发和重定向

本文介绍Spring MVC中转发和重定向的区别。 转发和重定向 开始Java EE时,可能会对转发(forward)和重定向(redirect)这个两个概念不清楚。本文先通过代码实例和运行结果图片感...
  • webzhuce
  • webzhuce
  • 2017年01月15日 21:03
  • 6888

SpringMVC入门之十一:跨重定向请求传递数据

问题概述通常,当我们处理完POST请求之后,出于安全的考虑(防止用户刷新或后退而重新执行危险的POST请求),会将请求重定向,在前面,我们借助了“redirect:”来实现这一功能。”redirect...
  • zhoucheng05_13
  • zhoucheng05_13
  • 2017年02月24日 18:04
  • 735

SpringMvc 重定向或者请求转发 请求路径地址

最近在做单用户登录,在拦截器用了请求转发携带参数到登录页面去,路径地址第一次请求不到。...
  • tianluke1234
  • tianluke1234
  • 2017年07月12日 15:01
  • 351

SpringMVC请求转发与重定向以及视图与数据的返回

项目配置的viewResolver
  • qq_33082731
  • qq_33082731
  • 2017年07月12日 14:07
  • 2529

Springmvc 在同一个controller和不同的controller中进行重定向redirect和转发forward:

redirect  forward 在同一个controller之间进行重定向:redirect 1、我们的请求在同一个controller之间进行重定向具体代码如下: 2、实例:   前台代码:...
  • QH_JAVA
  • QH_JAVA
  • 2015年04月03日 08:56
  • 22406

Servlet 请求转发和重定向

servlet请求转发与重定向
  • hxm_Code
  • hxm_Code
  • 2016年01月20日 13:49
  • 2001

Spring MVC 系列(四)——Spring MVC 与Ajax交互及重定向操作

一、Spring MVC 与Ajax交互 一般情况下,Controller中方法返回值类型有两种 1、String 直接跳转到某View界面 2、Void 不需要进行页面跳转,直接访...
  • qq_24084925
  • qq_24084925
  • 2016年09月08日 12:40
  • 980
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring mvc 请求转发和重定向
举报原因:
原因补充:

(最多只允许输入30个字)