response.sendRedirect(url)与request.getRequestDispatcher(url).forward(request,response)的区别
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)的区别相关推荐
- forward 和 redirect 的区别?
forward 和 redirect 的区别? 浏览器 url 地址显示不同 服务端通过 forward 返回,浏览器 url 地址不会发生变化:服务器通过 redirect 返回,浏览器会重新请求, ...
- 让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别
JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...
- JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,respon 区别
JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...
- JSP中页面跳转response.sendRedirect()和request.getRequestDispatcher()的区别
Java Web开发中,采用MVC模式的时候,在控制器完成模型的调用之后会选择界面对用户响应,用常有2种方式 1,通过response对象的sendRedirect方法重定向: response.se ...
- redirect与forward跳转的区别
2019独角兽企业重金招聘Python工程师标准>>> Servlet 跳转 redirect与forward跳转的区别 Servlet: 当然,在servlet中,一般跳转都发生在 ...
- Servlet中forward和redirect的区别(转)
forward方式:request.getRequestDispatcher("/somePage.jsp").forwardrequest, response); re ...
- request.getRequestDispatcher().forward(request,response)和response.sendRedirect()的区别
在进行web开发时,跳转是最常见的,今天在这里来学习下2种跳转: 第一种是request.getRequestDispatcher().forward(request,response): 1.属于转 ...
- request的setAttribute()用法及request.sendRedirect 与 request.getRequestDispatcher.forward 的区别
request.setAttribute()怎么用的? JSP1代码 String [] test=new String[2]; test[0]="1"; test[1]=&quo ...
- request.getRequestDispatcher(login_success.jsp).forward(request,response);的含义
request.getRequestDispatcher("login_success.jsp")取得一个RequestDispatcher,一个请求分发器对象,它的方法forwa ...
最新文章
- AD回收站功能的使用
- parquet to mysql_在hive中使用parquet (CDH4.3)
- Win10 下使用 ionic 框架开发 android 应用之搭载开发环境
- 2019ICPC(南昌) - Hello 2019(动态规划+线段树维护矩阵)
- java 学生信息的增删改查_学生信息的增删改查(java)
- Python3实现汉诺塔问题
- 蔚来难迎“第二增长曲线”?
- Exploit Kit攻击工具包流量锐减96%!这段时间究竟发生了什么?
- Visio使用遇到的问题
- IOS: Xcode报 Undecleared selector Warning错误的解决方法
- logrotate日志转储
- 项目:心肺复苏按压仪+沁恒赤兔ch32v307+嵌入式开发
- TeamTalk 单服务端配置
- 锁定计算机的软件,易通电脑锁(控制上网时间必备软件)
- C语言数据结构:链表-顺序表:初始化及操作
- 今日卢布美元汇率换算
- Vue 状态管理与与SSR详解
- uefi装完系统后无法引导_不重装系统修改引导方式为UEFI模式
- Outlook创建不了Skype会议的解决方案
- linux 命令 打开png,Linux:优化和压缩JPEG和PNG图片的命令行工具
热门文章
- 小学校园计算机兴趣小组,小学计算机兴趣小组活动记录文本.doc
- 单片机如何关掉蜂鸣器_【开源】蜂鸣器怎样实现类似高级冰箱上很清脆“叮叮”声......
- 华为鸿蒙os2.0更新,鸿蒙OS2.0更新了吗?更新方法、更新包大小、使用体验等都来了...
- mysql消息订阅与发布_消息发布与订阅
- Pull解析Xml文件
- [spring]spring boot项目实例
- [深度学习]大白话之卷积神经网络
- 加速网站速度的最佳做法_(2)把样式表放在顶部
- 唯一的确定一棵二叉树
- javaWeb企业分布式、互联网、云开发平台-Jeesz