请求转发:

客户首先发送一个请求到服务器端,服务器端发现匹配的servlet,并指定它去执行,当这个servlet执行完之后,它要调用getRequestDispacther()方法,把请求转发给指定的student_list.jsp,整个流程都是在服务器端完成的,而且是在同一个请求里面完成的,因此servlet和jsp共享的是同一个request,在servlet里面放的所有东西,在student_list中都能取出来,因此,student_list能把结果getAttribute()出来,getAttribute()出来后执行完把结果返回给客户端。整个过程是一个请求,一个响应。

重定向:

客户发送一个请求到服务器,服务器匹配servlet,servlet处理完之后调用了sendRedirect()方法,立即向客户端返回这个响应,响应行告诉客户端你必须要再发送一个请求,去访问student_list.jsp,紧接着客户端收到这个请求后,立刻发出一个新的请求,去请求student_list.jsp,这里两个请求互不干扰,相互独立,在前面request里面setAttribute()的任何东西,在后面的request里面都获得不了。可见,在sendRedirect()里面是两个请求,两个响应。(服务器向浏览器发送一个302状态码以及一个location消息头,浏览器收到请求后会向再次根据重定向地址发出请求)

请求转发:request.getRequestDispatcher("/test.jsp").forword(request,response);

重定向:res

区别:

1、请求次数:重定向是浏览器向服务器发送一个请求并收到响应后再次向一个新地址发出请求,转发是服务器收到请求后为了完成响应跳转到一个新的地址;重定向至少请求两次,转发请求一次;

2、地址栏不同:重定向地址栏会发生变化,转发地址栏不会发生变化;

3、是否共享数据:重定向两次请求不共享数据,转发一次请求共享数据(在request级别使用信息共享,使用重定向必然出错);

4、跳转限制:重定向可以跳转到任意URL,转发只能跳转本站点资源;

5、发生行为不同:重定向是客户端行为,转发是服务器端行为;

使用:

1、可以利用request的域对象的特点,由源组件向其中存放写数据;
2、可以让用户访问到存放在WEB-INF目录中的目标资源;
3、重定向的速度比转发慢,因为浏览器还得发出一个新的请求,所以如果在使用转发和重定向都无所谓的时候建议使用转发;
4、因为转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外一个WEB站点上的资源的情况,这个时候就只能使用重定向了。

ponse.sendRedirect("/test.jsp")

转载自:https://www.cnblogs.com/kingofjava/p/10761679.html

重定向和转发的区别?相关推荐

  1. struts result type redirect 重定向和转发的区别

    我们在使用struts2进行配置struts.xml的时候,<result>中有个tyep属性用来配置跳转类型 默认不写时tyep="dispatcher",我们可以根 ...

  2. 重定向和转发的区别+使用情景

    重定向和转发的区别: // 重定向 response.sendRedirect("xxx.jsp或者servlet"); // 转发 request.getRequestDispa ...

  3. javaweb重定向和转发的区别

    JavaWeb学习随记 重定向与转发的区别(面试题) 相同点 页面都会实现跳转 不同点 请求转发的时候,url不会产生变化 重定向时候,url地址栏会发生变化 简单的重定向代码: resp.sendR ...

  4. 重定向与转发的区别与应用

    一.重定向与转发的区别 转发过程: 客户端浏览器发送http请求 → web服务器接受此请求 → 调用内部的一个方法在容器内部完成请求处理和转发动作 → 将目标资源发送给客户. //java代码示例 ...

  5. JSP重定向和转发的区别

    一.重定向和转发的区别 response.sendRedirect()――重定向 它是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个 ...

  6. springmvc - 重定向与转发的区别

    重定向与转发的区别: 1.重定向访问服务器两次,转发只访问服务器一次. 2.转发页面的URL不会改变,而重定向地址会改变 3.转发只能转发到自己的web应用内,重定向可以重定义到任意资源路径. 4.转 ...

  7. mark一下总是记混的重定向与转发的区别

    forward内部跳转 和redirect重定向跳转的区别 1).从地址栏显示来说  forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发 ...

  8. 详解java重定向和转发的区别

    重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程. 与之相反,重定向方式的含义是第一个页面通知浏览器发送 ...

  9. 重定向和转发的区别及应用

    重定向 重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程. 与之相反,重定向方式的含义是第一个页面通知浏 ...

  10. 关于重定向和转发的区别

    请求转发 1请求 2请求 3响应 4响应 客户端 服务A 服务B 请求重定向转发 1请求 2响应 3请求 4响应 客户端 服务A 服务B 上面两个图是重定向和转发实际中的执行流程图,根据流程图看区别与 ...

最新文章

  1. [原创] Neo.Geo 视频帧浏览器开发日志
  2. Android10.0 Binder通信原理(二)-Binder入门篇
  3. 堆排序时间复杂度_堆排序算法
  4. POST请求||带参数的POST请求
  5. Bash shell - 2
  6. eclipse为什么导入不了awt_为什么选择javafx?
  7. layui结合ajax实现下拉菜单联动效果
  8. 关于mysql的cpu占用高的问题
  9. 回顾丨2021数据库大咖讲坛(第6期)视频PPT互动问答
  10. 8cm等于多少像素_没诚意!红米Note 8 4800万像素是假的?网友:看看realme Q吧
  11. 绝大部分人都错误的把赚钱或者人生都放在依靠外界
  12. 升级http到https
  13. 【转载】WEB架构师成长之路
  14. 来尝个鲜,Python3.8几大新功能体验,冲鸭!
  15. 滑动平均_善杰告诉您初中物理学滑动变阻器的各种作用
  16. 群晖NAS与Windows系统实现共享文件夹同步方案
  17. javascript学习指南,javascript自学要多久
  18. Highcharter绘制中国地图
  19. 马尔可夫随机场 MRF
  20. linux 安装Elasticsearch

热门文章

  1. 计算机专业简历文案,文案个人简历范文
  2. Avro根据avsc文件生成java类
  3. MaxCompute客户端常用命令
  4. qq音乐分享查找对方账号java_RxJava的一些入门学习分享
  5. 腾讯2021年营收依然稳居互联网大厂前列,是真的到了“大而不能倒”的程度吗?
  6. #今日论文推荐# 西湖大学工学院姜汉卿课题组提出一种全新的微流体操控方法,可实现“样本进结果出”的即时检测
  7. 计算机电缆24awg,RS485总线(通讯)电缆1x2x24AWG
  8. 为什么qq空间留不了言,又创建/删不了相册?
  9. 【教程】如何用龙门代理公布器刷淘宝拍拍流量
  10. java zxing 一维码_Zxing 生成条形码(一维码)