Difference requestDispatcher.forward and response.sendRedirect.

王朝java/jsp·作者佚名  2006-01-22
窄屏简体版  字體: |||超大  

引言

在使用response的过程中经常会遇到跳转页面的事情,这个时候有两种情况供你选择

1。就是调用

ServletContext.getRequestDispatcher(java.lang.String).forward(request ,

response) ;

2。就是调用response.setRedirect(),可是这两个方法有什么不同呢?

看看TSS上关于这个问题的解释:

Difference request.forward() and response.sendRedirect .

Posted by: Kapil Israni on August 24, 2000 in response to Message #2253 1

replies in this thread

i suppose u r talking bout requestDispatcher.forward() here.

well basically both method calls redirect u to new resource/page/servlet.

the difference between the two is that sendRedirect always sends a header

back to the client/browser. this header then contains the

resource(page/servlet) which u wanted to be redirected. the browser uses

this header to make another fresh request. thus sendRedirect has a overhead

as to the extra remort trip being incurred. its like any other Http request

being generated by ur browser. the advantage is that u can point to any

resource(whether on the same domain or some other domain). for eg if

sendRedirect was called at www.mydomain.com then it can also be used to

redirect a call to a resource on www.theserverside.com.

where as in case of forward() call, the above is not true. resources from

the server, where the fwd. call was made, can only be requested for. but

the major diff between the two is that forward just routes the request to

the new resources which u specify in ur forward call. that means this route

is made by the servlet engine at the server level only. no headers r sent

to the browser which makes this very eficient. also the request and

response objects remain the same both from where the forward call was made

and the resource which was called.

i hope i have hit ur question right.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航