A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙宇 黑马帝   /  2011-8-15 20:21  /  4488 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在servlet中经常的使用到这两个对象,在request的getRequestDisapatch("url").forward(request,response);
和response中的sendRidect()都可以实现页面跳转的功能,既然都可以实现页面跳转,那么为什么要定义2个跳转方法,还是说它们有什么很大的区别;

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

11 个回复

倒序浏览
request的getRequestDisapatch("url").forward(request,response);
     转发,服务器端跳转,地址栏无变化,这时可以传request过去的,即可以存些东西放在request中,,传过去,,还能对
  response的响应页面作些事情,比如打印,,设置编码什么的,,

response.sendRidect();
    重定向,客户端跳转,地址栏变化,,这个相当于是一个新的会话了,,
[ 本帖最后由 石宗银 于 2011-08-15  21:59 编辑 ]

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 回答的不错

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-15 21:56:45
藤椅
有变化和无变化 有什么用啊?
回复 使用道具 举报
黑马网友  发表于 2011-8-15 21:59:21
板凳
地址栏变不变  作用好像不大吧?
回复 使用道具 举报
黑马网友  发表于 2011-8-15 22:00:07
报纸
forward只能重定向到同一个WEB应用中的一个资源,而sendRedirect可以重定向到任何URL
回复 使用道具 举报
黑马网友  发表于 2011-8-15 22:02:27
地板
怎么可能 只要URL正确   都可以做任何 页面的跳转
回复 使用道具 举报
黑马网友  发表于 2011-8-15 22:03:22
7#
因为在不同的请求之间request是不共享的,如果你还想在a.jsp继续用到该request,则不应该用重定向,而用转发:
request.getRequestDispatcher("a.jsp").forward(request,response)

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2 是这样的!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-15 22:08:55
8#
:handshake 嗯,同意楼上的意见,
回复 使用道具 举报
黑马网友  发表于 2011-8-15 22:10:52
9#
我也同意这个说法
回复 使用道具 举报
黑马网友  发表于 2011-8-16 12:39:27
10#
服务器端跳转<jsp:forward> 与客户端跳转(超链接,response.sendiRect(""))的区别:服务器端跳转地址栏不会发生变化,可以访问到request    session  application作用域中的属性,使用<jsp:param>传递参数,跳转语句后的内容不会执行。客户端跳转地址栏会发生变化,可以访问到session  application作用域中的属性,使用URL重写方式传递数据。先执行完所有的内容后再跳转。如果你使用客户端跳转,你传递的所有数据都会在地址栏中显示出来,如果你用网上银行的话,也许你输入你在银行卡密码时它就会在地址栏中显示出来,试问如果真是这样的话,你有什么感觉呢?

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2 很生动嘛!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-18 16:32:05
11#
getRequestDisapatch("url").forward(request,response)方法:
1.是在服务器端进行跳转的
2.地址栏不会改变
3.request是一样的,这样可以实现数据共享
4.客户端只发送一次请求

sendRidect()方法:
1.在客户端进行跳转
2.地址栏会改变
3.request是不一样的
4.客户端发送2次请求

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2 总结的不错哦!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-19 10:37:26
12#
那位大哥,大姐给我发一份web开发视频的PPT和源码,万分感谢    这是我的邮箱[email]847805430@qq.com[/email]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马