response.sendRedirect(url)跳转到指定的URL地址,产生一个新的request,所以要传递参数只有在url后加参数,如:
url?id=1。
request.getRequestDispatcher(url).forward(request,response)是直接将请求转发到指定URL,所以该请求能够直接获得上一个请求的数据,也就是说采用请求转发,request对象始终存在,不会重新创建。而sendRedirect()会新建request对象,所以上一个request中的数据会丢失。
更具体来说就是这样的:
redirect 会首先发一个response给浏览器, 然后浏览器收到这个response后再发一个requeset给服务器,然后服务器发新的response给浏览器。这时页面收到的request是一个新从浏览器发来的。
forward 发生在服务器内部, 在浏览器完全不知情的情况下发给了浏览器另外一个页面的response。这时页面收到的request不是从浏览器直接发来了,可能己经用request.setAttribute在request里放了数据.在转到的页面可直接用request.getAttribute获得数据。

运用forward方法只能重定向到同一个Web应用程序中的一个资源。而sendRedirect方法可以让你重定向到任何URL。

在asp.net里,Response.Redirect和Server.Transfer这二者的区别也如是。

转载于:https://www.cnblogs.com/buguge/p/9179264.html

response.sendRedirect(url)与request.getRequestDispatcher(url).forward(request,response)的区别相关推荐

  1. forward 和 redirect 的区别?

    forward 和 redirect 的区别? 浏览器 url 地址显示不同 服务端通过 forward 返回,浏览器 url 地址不会发生变化:服务器通过 redirect 返回,浏览器会重新请求, ...

  2. 让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别

    JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...

  3. JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,respon 区别

    JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...

  4. JSP中页面跳转response.sendRedirect()和request.getRequestDispatcher()的区别

    Java Web开发中,采用MVC模式的时候,在控制器完成模型的调用之后会选择界面对用户响应,用常有2种方式 1,通过response对象的sendRedirect方法重定向: response.se ...

  5. redirect与forward跳转的区别

    2019独角兽企业重金招聘Python工程师标准>>> Servlet 跳转 redirect与forward跳转的区别 Servlet: 当然,在servlet中,一般跳转都发生在 ...

  6. Servlet中forward和redirect的区别(转)

    forward方式:request.getRequestDispatcher("/somePage.jsp").forwardrequest, response);      re ...

  7. request.getRequestDispatcher().forward(request,response)和response.sendRedirect()的区别

    在进行web开发时,跳转是最常见的,今天在这里来学习下2种跳转: 第一种是request.getRequestDispatcher().forward(request,response): 1.属于转 ...

  8. request的setAttribute()用法及request.sendRedirect 与 request.getRequestDispatcher.forward 的区别

    request.setAttribute()怎么用的? JSP1代码 String [] test=new String[2]; test[0]="1"; test[1]=&quo ...

  9. request.getRequestDispatcher(login_success.jsp).forward(request,response);的含义

    request.getRequestDispatcher("login_success.jsp")取得一个RequestDispatcher,一个请求分发器对象,它的方法forwa ...

最新文章

  1. AD回收站功能的使用
  2. parquet to mysql_在hive中使用parquet (CDH4.3)
  3. Win10 下使用 ionic 框架开发 android 应用之搭载开发环境
  4. 2019ICPC(南昌) - Hello 2019(动态规划+线段树维护矩阵)
  5. java 学生信息的增删改查_学生信息的增删改查(java)
  6. Python3实现汉诺塔问题
  7. 蔚来难迎“第二增长曲线”?
  8. Exploit Kit攻击工具包流量锐减96%!这段时间究竟发生了什么?
  9. Visio使用遇到的问题
  10. IOS: Xcode报 Undecleared selector Warning错误的解决方法
  11. logrotate日志转储
  12. 项目:心肺复苏按压仪+沁恒赤兔ch32v307+嵌入式开发
  13. TeamTalk 单服务端配置
  14. 锁定计算机的软件,易通电脑锁(控制上网时间必备软件)
  15. C语言数据结构:链表-顺序表:初始化及操作
  16. 今日卢布美元汇率换算
  17. Vue 状态管理与与SSR详解
  18. uefi装完系统后无法引导_不重装系统修改引导方式为UEFI模式
  19. Outlook创建不了Skype会议的解决方案
  20. linux 命令 打开png,Linux:优化和压缩JPEG和PNG图片的命令行工具

热门文章

  1. 小学校园计算机兴趣小组,小学计算机兴趣小组活动记录文本.doc
  2. 单片机如何关掉蜂鸣器_【开源】蜂鸣器怎样实现类似高级冰箱上很清脆“叮叮”声......
  3. 华为鸿蒙os2.0更新,鸿蒙OS2.0更新了吗?更新方法、更新包大小、使用体验等都来了...
  4. mysql消息订阅与发布_消息发布与订阅
  5. Pull解析Xml文件
  6. [spring]spring boot项目实例
  7. [深度学习]大白话之卷积神经网络
  8. 加速网站速度的最佳做法_(2)把样式表放在顶部
  9. 唯一的确定一棵二叉树
  10. javaWeb企业分布式、互联网、云开发平台-Jeesz