spring mvc中redirect/forward:url与拦截器的关系

转载 2012年03月28日 10:41:43
spring控制器最后返回一个ModelAndView(urlName),其中urNamel可以是一个视图名称,由视图解析器负责解析后将响应流写回客户端;也可以通过redirect/forward:url方式转到另一个控制器进行处理.
  1. redirect方式相当 于"response.sendRedirect()".这种方式外部特征就是浏览器地址栏最后显示的路径是转发后的新的路径.工作方式是这样的, 服务器端会首先发一个response给浏览器, 然后浏览器收到这个response后再发一个requeset给服务器, 然后服务器发新的response给浏览器. 这时页面收到的request是一个新从浏览器发来的.这种方式的结果是:
  • A.在转发前后有两个不同的request对象,转发前后的两个控制器在request上的参数(request.getParameter())和request属性(request.getAttribute())不能共享;
  • B.如果转发前后的两个控制器都配置在spring 拦截器范围内,这样拦截器会拦截前后两个request,即会拦截两次;
  • C.最后返回到浏览器后,因为地址栏显示的是转发后的url,所以刷新页面时只会执行后面的url映射的控制器.
  1. forward方式相当于 request.getRequestDispatcher().forward(request,response) .这种方式的外部特征是浏览器地 址显示的路径是转发前的路径.工作方式是这样,forward 发生在服务器内部,在前一个控制器处理完毕后,直接进入下一个控制器处理, 并将最后的response发给浏览器. 这种方式的结果是:
  • A.转发前后是同一个request,后一个控制器可共享前一个控制器的参数与属性;
  • B.因为是同一个request,拦截器只会拦截前一个url,如果前一个url在映射时未配置到拦截器拦截,则拦截后一个url,即只拦截一次;
  • C.最后返回到浏览器后,因为地址栏显示的是转发前的url,所以刷新页面时会依次执行前后两个控制器.

Spring MVC 中的 forward 和 redirect 的简单理解

forward 转发,如return "forward:/hello"; 浏览器的地址栏不会变,但是有视图返回来 redirect 重定向,如return "redirect:/hello"; 浏览...
  • lxn39830435731415926
  • lxn39830435731415926
  • 2015年06月10日 00:03
  • 11384

SpringMVC学习:redirect URL中的猫腻

在Eclipse里建了一个web project:SpringMVCCase,发布到 tomcat 里以后,所有的URL都长这样: http://localhost:8080/SpringMVCCas...
  • srmana
  • srmana
  • 2016年07月23日 22:00
  • 1877

SpringMVC return forward redirect疑问

我们都知道,在一般情况下,控制器方法返回的字符串都会被当做逻辑视图名来处理。 但是当字符串带有“forward”或者“redirect”前缀时,则对他们进行特殊处理。把“forward”与“redir...
  • lgh1992314
  • lgh1992314
  • 2017年05月07日 10:15
  • 699

SpringMVC 中Controller之间的 forward 和 redirect

一、forward mav.setViewName("forward:/res/op/gotoIndex.do");// 页面路径 return mav; 二、redirect m...
  • yh88356656
  • yh88356656
  • 2016年01月19日 12:16
  • 1201

spring mvc中redirect/forward:url与拦截器的关系

spring控制器最后返回一个ModelAndView(urlName),其中urNamel可以是一个视图名称,由视图解析器负责解析后将响应流写回客户端;也可以通过redirect/forward:u...
  • dac55300424
  • dac55300424
  • 2014年10月09日 15:41
  • 445

Spring MVC 中的 forward 和 redirect

Spring MVC 中的 forward 和 redirect         Spring MVC 中,我们在返回逻辑视图时,框架会通过 viewResolver 来解析得到...
  • zzjjiandan
  • zzjjiandan
  • 2014年02月19日 15:56
  • 96791

揭露forward和redirect的本质(区别)—老事重谈!

前言 forward和redirect,一个转发,一个重定向,我们再熟悉不过了。回忆大二学习JSP,servlet的时候很多书中和网上的都有很多关于两者区别的介绍,大多数都是那几点,包括Struts2...
  • chenleixing
  • chenleixing
  • 2015年04月13日 08:49
  • 8168

springMVC3学习(九)--redirect和forward跳转

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import ...
  • itmyhome
  • itmyhome
  • 2014年05月22日 23:21
  • 4310

spring mvc redirect/forward 表单重复提交

最近一直在用spring mvc,关于redirect forward和提交方面不是很通,整理一下。 spring mvc最后return 一个字符串,一般来说是webcontent 下面的一个页...
  • u010900754
  • u010900754
  • 2016年01月21日 11:10
  • 1616

Spring MVC中redirect到一个页面,同时带些信息过去进行显示,但是不通过Session方式及URL方式

如何在Spring MVC中redirect到一个页面,同时带些信息过去进行显示,但是不通过Session方式及URL方式?  想用跟正常的ModelAndView方式,但是用了Redire...
  • kjfcpua
  • kjfcpua
  • 2012年03月28日 10:37
  • 3661
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring mvc中redirect/forward:url与拦截器的关系
举报原因:
原因补充:

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