抢分题

chjx1982 2008-04-18 05:32:53
请问这两个有什么区别
response.sendRedirect(url);
request.getRequestDispatcher(url).forward(request, response);
以前我在serlvet里用
request.getRequestDispatcher(url).forward(request, response);
现在我换成了
response.sendRedirect(url);
会不会对程序有影响.
...全文
90 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chjx1982 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hyxd2 的回复:]
我也提一下吧,当使用request.getRequestDispatcher(url).forward(request, response);
页面地址显示的是http://....../你页面提交的地址


而使用response.sendRedirect(url)
页面地址显示的是http://....../url
而且响应的值要放在session以上的容器里。

所以我想在这里问一下在使用request.getRequestDispatcher(url).forward(request, response);的时候能不能让页面的地址栏显示的地址和用
response.sendRed…
[/Quote]
这种思想可不可以实现呢.
zhtige 2008-04-18
  • 打赏
  • 举报
回复
学习~~
evoloyeu 2008-04-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fengyezaihong 的回复:]
引用 1 楼 zigzagsoft 的回复:
1.request.getRequestDispatcher()是请求转发,前后页面共享一个request ;
response.sendRedirect()是重新定向 前后页面不是一个request .
2.RequestDispatcher.forward()是在服务器端运行;
HttpServletResponse.sendRedirect()是通过向客户浏览器发送命令来完成.
所以RequestDispatcher.forward()对于浏览器来说是“透明的”;
而HttpServletResponse.sendRedirect()则不是。
3.ServletCon…
[/Quote]好好看看这个
Shine_Panda 2008-04-18
  • 打赏
  • 举报
回复
可能有:
如果你在servlet 中写了
request.setAttribute();等代码.
然后在页面上获得这个值.
如果是用 response.sendRedirect(url); 就能获得这个值.
lz 可以参看一下重定向和转发的区别.
hyxd2 2008-04-18
  • 打赏
  • 举报
回复
我也提一下吧,当使用request.getRequestDispatcher(url).forward(request, response);
页面地址显示的是http://....../你页面提交的地址


而使用response.sendRedirect(url)
页面地址显示的是http://....../url
而且响应的值要放在session以上的容器里。

所以我想在这里问一下在使用request.getRequestDispatcher(url).forward(request, response);的时候能不能让页面的地址栏显示的地址和用
response.sendRedirect(url)一样。这样就不用把有些不必要的值也放在session里面了
街头小贩 2008-04-18
  • 打赏
  • 举报
回复
dc学习
fengyezaihong 2008-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zigzagsoft 的回复:]
1.request.getRequestDispatcher()是请求转发,前后页面共享一个request ;
response.sendRedirect()是重新定向 前后页面不是一个request .
2.RequestDispatcher.forward()是在服务器端运行;
HttpServletResponse.sendRedirect()是通过向客户浏览器发送命令来完成.
所以RequestDispatcher.forward()对于浏览器来说是“透明的”;
而HttpServletResponse.sendRedirect()则不是。
3.ServletContext.getRequ…
[/Quote]

补充点:如果你request.setAr.....("ddd");设置的话。就不能用了response.sendRedirect(url);
了否则在转发到的页面中用request.getA.....("ddd");
原因上面已经解释的很清楚了!
zigzagsoft 2008-04-18
  • 打赏
  • 举报
回复
1.request.getRequestDispatcher()是请求转发,前后页面共享一个request ;
response.sendRedirect()是重新定向 前后页面不是一个request .
2.RequestDispatcher.forward()是在服务器端运行;
HttpServletResponse.sendRedirect()是通过向客户浏览器发送命令来完成.
所以RequestDispatcher.forward()对于浏览器来说是“透明的”;
而HttpServletResponse.sendRedirect()则不是。
3.ServletContext.getRequestDispatcher(String url)中的url只能使用绝对路径;
而ServletRequest.getRequestDispatcher(String url)中的url可以使用相对路径。
因为ServletRequest具有相对路径的概念;而ServletContext对象无次概念。

只要注意使用方法对业务需求的影响,就不会有多少问题。

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧