社区
Java EE
帖子详情
response.sendRedirect和request.getRequestDispatcher().forward什么时候用哪个?
JarvisZhang87
2009-05-21 09:10:39
如题。
...全文
1540
18
打赏
收藏
response.sendRedirect和request.getRequestDispatcher().forward什么时候用哪个?
如题。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
梦里人
2010-09-10
打赏
举报
回复
受教!UP....
esft
2009-06-25
打赏
举报
回复
up
daerqwert
2009-05-31
打赏
举报
回复
2种的区别楼上的已经说得很清楚了。在什么地方用就是看自己的需求了。具体问题具体分析。
popeyeWong
2009-05-29
打赏
举报
回复
response.sendRedirect是重定向
request.getRequestDispatcher().forward是请求转发
Nalanchuixue
2009-05-28
打赏
举报
回复
1,response.sendRedirect是重定向
2,request.getRequestDispatcher().forward是请求转发
重定向的时候只能通过?后来传值!且只能传一个值;
forward转发是你可一通过request对象来传递一个object类型的值
这就要看你的具体需求了!比如传一个数组或者是个javabean时就需要使用forward了!
个人理解!
zm_hs
2009-05-26
打赏
举报
回复
注意哦。在做删除操作时,千万不能用forward
sutku
2009-05-26
打赏
举报
回复
[Quote=引用 9 楼 yefan00 的回复:]
引用 2 楼 lgq_0714 的回复:
Servlet中的两种跳转方法:
方法一:response.sendRedirect("../success.jsp")
利用这个方法如果跳转前有request.setAttribute("a","b")的话,那么参数是传不到success.jsp,因为它在客户端重定向到success.jsp了,本质上跳了2次。所以参数失效,使用这个的时候会发现浏览器的URL地址发生了变化。
方法二:RequestDispatcher rd = getServletContext().getRequestDispatcher("/login.jsp")…
[/Quote]
支持!!!
icebergzx
2009-05-26
打赏
举报
回复
简单的说,sendRedirect 可以跨站点的
getServletContext().getRequestDispatcher("/login.jsp").forward(request,response) 不可跨站的,只能在本站点内跳转
如楼上的兄弟所说,sendRedirect 后request原先所有的参数和属性丢失,而request.getRequestDispatcher().forward 会保持原先request的参数和数据,向下进一步处理。
云霄飞车
2009-05-23
打赏
举报
回复
[Quote=引用 2 楼 lgq_0714 的回复:]
Servlet中的两种跳转方法:
方法一:response.sendRedirect("../success.jsp")
利用这个方法如果跳转前有request.setAttribute("a","b")的话,那么参数是传不到success.jsp,因为它在客户端重定向到success.jsp了,本质上跳了2次。所以参数失效,使用这个的时候会发现浏览器的URL地址发生了变化。
方法二:RequestDispatcher rd = getServletContext().getRequestDispatcher("/login.jsp"); rd.forward(request,respon…
[/Quote]
顶哈。。。
dinghun8leech
2009-05-22
打赏
举报
回复
response.sendRedirect=把地址发送到浏览器端,让浏览器再请求,这是地址栏变的原因
request.getRequestDispatcher().forward=服务端的控制权转向,等于从一个servletClass跳到另一个servletClass或jsp继续运行,最后才返回所有的结果,所以地址栏不会变
request中attribute与parameter的有效期是在一次请求后,而实际使用第一种情况后发生了再次请求,所以是attribute与parameter丢失的原因。
效率上讲1肯定不如2,但有时候你必须得用1,其他时候用2即可。
_BennyTian
2009-05-22
打赏
举报
回复
最简单的区别:
一个地址栏会变
一个地址栏不变
2:
一个能保持同一个 request
一个保存不了
qq306850549
2009-05-22
打赏
举报
回复
request.getRequestDispatcher().forward
建议用这个
jiangnan_net
2009-05-22
打赏
举报
回复
response.sendRedirect("/*.*")想想参数
request.getRequestDispatcher().forward(request,response)想想参数
知道了吧。。
Study_Work_2009
2009-05-22
打赏
举报
回复
这也有具体情况具体分析,一般用forward就可以
ty_seven
2009-05-22
打赏
举报
回复
一般用forward就行了,但是有时为了防止误刷新需要用redirect
lgq_0714
2009-05-21
打赏
举报
回复
Servlet中的两种跳转方法:
方法一:response.sendRedirect("../success.jsp")
利用这个方法如果跳转前有request.setAttribute("a","b")的话,那么参数是传不到success.jsp,因为它在客户端重定向到success.jsp了,本质上跳了2次。所以参数失效,使用这个的时候会发现浏览器的URL地址发生了变化。
方法二:RequestDispatcher rd = getServletContext().getRequestDispatcher("/login.jsp"); rd.forward(request,response); 利用这个方法跳转,参数可以被正确传送,而且效率比第一种高,IE的URL地址不变。
myairland
2009-05-21
打赏
举报
回复
response.sendRedirect是重定向
request.getRequestDispatcher().forward是请求转发
第一种方法request里的值会丢掉
http://blog.csdn.net/sky840505/archive/2009/01/05/3714909.aspx
response
_
send
Redirect
和
request
_get
Request
Dispatcher
()_
forward
的区别.
跳转方式 http://localhost:8080/Test应用 运用
forward
方法只能重定向到同一个Web应用程序中的一个资源。而
send
Redirect
方法可以让你重定向到任何URL。 表单form的action="/uu";
send
Redirect
("/uu");表示相对于服务器根路径。如http://localhost:8080/Test应用(则提交至http://localhost:8080/uu);
Forward
代码中的"/uu"则代表相对与WEB应用的路径。如http://localhost:8080/Test应用(则提交至http://localhost:8080/Test/uu);
JSP中5种跳转foward,
request
等等的详细区别
JSP中5种跳转foward,
request
等等的详细区别
很经典的登录回选。
if (session.getAttribute("person") == null) { if (null !=
request
.getQueryString()){ // session.setAttribute("
redirect
Url",
request
.get
Request
URL().append("?").append(
request
.getQueryString()).toString()); String url =
request
.getParameter("url"); URLEncoder.encode(URLDecoder.decode(url,"iso-8859-1"), "iso-8859-1"); session.setAttribute("
redirect
Url",url); } else{ session.setAttribute("
redirect
Url",
request
.get
Request
URL() .toString());}
response
.
send
Redirect
(
request
.getContextPath() + "/login.jsp"); }else{
request
.get
Request
Dispatcher
("fall.jsp").
forward
(
request
,
response
); }
jsp和servlet中实现页面跳转的方式实例总结.docx
jsp和servlet中实现页面跳转的方式实例总结.docx
response
对象:页面跳转.pptx
response
对象 页面跳转
Java EE
67,550
社区成员
225,864
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章