首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RequestDispatcher.forward() vs HttpServletResponse.sendRedirect()

RequestDispatcher.forward() vs HttpServletResponse.sendRedirect()
EN

Stack Overflow用户
提问于 2010-01-12 14:24:44
回答 4查看 147.6K关注 0票数 130

forward()sendRedirect()在概念上的区别是什么

EN

回答 4

Stack Overflow用户

发布于 2010-01-12 14:26:41

RequestDispatcher接口允许您执行服务器端转发/包含,而sendRedirect()则执行客户端重定向。在客户端重定向中,服务器将发回302 (临时重定向)的HTTP状态代码,这会导致web浏览器对重定向位置处的内容发出全新的HTTP GET请求。相反,当使用RequestDispatcher接口时,对新资源的包含/转发完全在服务器端处理。

票数 22
EN

Stack Overflow用户

发布于 2010-01-12 14:39:54

这两种方法中的任何一种都可能是“更好的”,即更合适,这取决于你想要做什么。

服务器端重定向速度更快,因为您可以从不同的页面获取数据,而无需往返于浏览器。但是在浏览器中看到的URL仍然是原始地址,所以您在这里造成了一些不一致。

客户端重定向功能更多,因为它可以将您发送到完全不同的服务器,或者更改协议(例如,从HTTP到HTTPS),或者两者兼而有之。并且浏览器知道新的URL。但它需要在服务器和客户端之间进行额外的来回。

票数 5
EN

Stack Overflow用户

发布于 2013-01-08 14:54:30

SendRedirect()将在服务器之间搜索内容。它很慢,因为它必须通过发送内容的URL来贴近浏览器。然后,浏览器将为同一服务器或另一服务器中的内容创建一个新的请求。

我认为RquestDispatcher是用来搜索服务器中的内容的。它是服务器端的过程,并且比SendRedirect()方法更快。但问题是,它不会在浏览器中搜索所需的日期或内容,也不会要求浏览器更改URL选项卡中的URL。因此对用户造成的不便很小。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2047122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档