当前位置: 首页 > news >正文

SendRedirect和forward的区别


(1)重定向是JSP中实现JSP/Servlet程序跳转至目标资源的方法之一,它的基本思想是:服务器将目标资源完整的URL通过HTTP

响应报头发送给客户端浏览器,浏览器接收到URL后更新至地址栏中,并将目标资源的URL提交给服务器。重定向使目标资源的

URL从服务器传到客户端浏览器,再从客户端通过HTTP请求传回服务器,其中有一定的网络时延。 


(2)实现JSP页面跳转的主要方法有转发跳转(forward)和重定向跳转(redirect), RequestDispatcher.forward()实现的是转发跳转,

response.sendRedirect()实现的是重定向跳转。 


两者的最大区别在于:


1.重定向是通过客户端重新发送URL来实现,会导致浏览器地址更新,而转发是直接在服务器端切换程序,

目标资源的URL不出现在浏览器的地址栏中;  

2.转发能够把当前JSP页面中的request、response对象转发给目标资源,而重定向会导致当前JSP页面的

request、response对象生命期结束,在目标资源中无法取得上一个JSP页面的request对象;


3.转发跳转直接在服务器端进行,基本上没有网络传输时延,重定向有网络传输时延。 


如果要实现服务器中两个Servlet程序间跳转,并且要使用request作用范围变量交换数据,应该优先

使用request转发跳转。用重定向实现程序跳转时,如果要求传递数据给目标资源,一个简单、可行的

方法是把数据编码在URL查询串中,例如:http://127.0.0.1:8080/exam.jsp?name=tom







案例分析:

(1)重定向 (sendRedirect):是将用户从当前的页面或servlet定向到另一个JSP页面或sevlet中;

上图中,我们第一次请求jsp1没有得到想要的数据,这样的话服务器就告诉客户端,你可以请求JSP2区获取你想要的数据,也就是有两次请求的过程,所以使用重定向的话地址栏中就会有变化。

也就是说重定向,不能将用户对当前页面或另一个servlet的请求转发给所指定的资源,因此重定向的目标也米娜或servlet对象无法使用request获取用户提交的数据。【8


(2)转发(requestDispatcher):就是讲用户对当前jsp页面或servle的对象请求转发给另一个jsp页面或servlet对象,但是转发的过程是在服务器内部,因此地址栏中不会有地址的变化,也不需要客户端重新发送请求信息:


可以实现用户请求。



相关文章:

  • Vim常用操作和快捷键技巧总结
  • 用JDBC编程的运行时错误及其解决大全
  • Myeclipse10.7连接SQL Server数据库技术
  • C++构造函数虚函数例题
  • Servlet过滤字符串的HTML特殊字符
  • PHP中print_r、var_export、var_dump区别
  • Jsp/Servlet根据请求参数自动填充Java对象:表单Bean
  • ORACLE 如何定位消耗资源的SQL
  • Servlet/Jsp实现当参数确实或缺失重新显示输入表单
  • Servlet/Jsp实现发送压缩Web页面 Gzip技术
  • Java内存区域与内存溢出
  • 如何删除鼠标右键菜单里的打开按钮
  • Struts2的s:date标签使用详解[转]
  • JSP隐含对象(1)
  • 二级指针的思考
  • 「面试题」如何实现一个圣杯布局?
  • 4. 路由到控制器 - Laravel从零开始教程
  • Ruby 2.x 源代码分析:扩展 概述
  • storm drpc实例
  • 测试开发系类之接口自动化测试
  • 关于 Cirru Editor 存储格式
  • 前端面试之闭包
  • 前端之Sass/Scss实战笔记
  • 如何优雅地使用 Sublime Text
  • 什么是Javascript函数节流?
  • 数据仓库的几种建模方法
  • 网络应用优化——时延与带宽
  • 我的业余项目总结
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • (1)(1.13) SiK无线电高级配置(五)
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (动态规划)5. 最长回文子串 java解决
  • (二)JAVA使用POI操作excel
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (三)Honghu Cloud云架构一定时调度平台
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四)模仿学习-完成后台管理页面查询
  • (转)EOS中账户、钱包和密钥的关系
  • (转)Mysql的优化设置
  • (转)创业家杂志:UCWEB天使第一步
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • ../depcomp: line 571: exec: g++: not found
  • .axf 转化 .bin文件 的方法
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net 调用php,php 调用.net com组件 --
  • .net/c# memcached 获取所有缓存键(keys)
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [AIGC] Redis基础命令集详细介绍
  • [BZOJ 4598][Sdoi2016]模式字符串