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,所以刷新页面时会依次执行前后两个控制器.

相关文章推荐

拦截器实现未登录跳转

下面用实际登陆跳转举例1、写自己的拦截器implements HandlerInterceptor,实现跳转去执行拦截内容并传,执行拦截之后的URI@Component public class Lo...

为什么我们创业失败了和选择创业公司的思考

作为技术专栏,第一篇文章居然是和技术无关! 不过,人生还长,博主会陆续梳理很多技术,分享给大家。 先分享一个博主创业失败的故事,往往失败的故事更有启发性和趣味性,不是么? 这篇文章会从一...

CSDN日报20170721——《为什么我们创业失败了和选择创业公司的思考》

这篇文章会从一个技术合伙人角度分享创业失败的感受,和从一个技术合伙人的角度分享一些创业公司选择的观点。

面试归来——梳理社招面试以及浅述对程序员职业生涯的看法

原谅我是一个后知后觉的人,已经在新的岗位工作了两个月,才写这篇文章。 本文会先讲述博主一个月的面试经历,梳理一下技术面试,浅述关于程序员职业生涯的一些看法。 从创业到再就业 大概4个月以前,终止创...

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

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

DWZ ajax提交表单后重定向整个页面

dwz.ajax.js里的处理ajax返回的方法navTabAjaxDone默认好像不能重定向整个页面,只能重定向tab,因为修改密码后,要让用户重新登录,必须重向定整个页面,所以,小改了一下:fun...

安全测试之未验证的重定向(redirectUrl)和转发

首先说一下我个人理解的重定向和转发的表象区别: redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL。(重定向是在客户端完成的) 转发是服务器请...

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

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

Spring MVC 中的 forward 和 redirect

Spring MVC 中,我们在返回逻辑视图时,框架会通过 viewResolver 来解析得到具体的 View,然后向浏览器渲染。假设逻辑视图名为 hello,通过配置,我们配置某个 ViewRes...

Spring MVC 中的 forward 和 redirect

Spring MVC 中,我们在返回逻辑视图时,框架会通过viewResolver来解析得到具体的 View,然后向浏览器渲染。假设逻辑视图名为hello,通过配置,我们配置某个 ViewResolv...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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