SendRedirect和forward的区别
来源:互联网 发布:淘宝开店哪里进货 编辑:程序博客网 时间:2024/05/17 00:57
(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对象,但是转发的过程是在服务器内部,因此地址栏中不会有地址的变化,也不需要客户端重新发送请求信息:
可以实现用户请求。
- forward和sendRedirect的区别
- forward和sendRedirect的区别
- forward和sendRedirect的区别
- sendredirect()和forward()的区别
- forward和sendRedirect的区别
- sendRedirect和forward的区别
- sendRedirect 和 forward 的区别
- SendRedirect和forward的区别
- sendRedirect()和forward的区别
- forward()和sendRedirect()的区别
- sendredirect()和forward()的区别
- forward和sendRedirect的区别
- sendredirect()和forward()的区别
- sendredirect()和forward()的区别
- sendRedirect和forward的区别
- sendRedirect和forward区别
- sendRedirect和forward区别
- forward和sendRedirect区别
- JDBC连接数据库
- Android 电源管理 -- wakelock机制 2013-12-17 11:26:06
- ios充电所需时间
- openfire 插件开发
- memcpy,strcpy
- SendRedirect和forward的区别
- Android wakelock 学习总结第二篇
- 关于2进制直接转16进制
- [FAQ09542] [Power]待机电流问题,如何查找wakelock
- 转载Android wakelock 学习总结第一篇
- linux中解压xxx.gz文件,不是xxx.tar.gz文件
- 名流私照泄露,iCloud真的安全吗?
- print_color.h
- zebra关于线程管理的相关函数的简要功能介绍