forward()
和sendRedirect()
在概念上的区别是什么
发布于 2010-01-12 14:26:41
RequestDispatcher
接口允许您执行服务器端转发/包含,而sendRedirect()
则执行客户端重定向。在客户端重定向中,服务器将发回302
(临时重定向)的HTTP状态代码,这会导致web浏览器对重定向位置处的内容发出全新的HTTP GET
请求。相反,当使用RequestDispatcher
接口时,对新资源的包含/转发完全在服务器端处理。
发布于 2010-01-12 14:39:54
这两种方法中的任何一种都可能是“更好的”,即更合适,这取决于你想要做什么。
服务器端重定向速度更快,因为您可以从不同的页面获取数据,而无需往返于浏览器。但是在浏览器中看到的URL仍然是原始地址,所以您在这里造成了一些不一致。
客户端重定向功能更多,因为它可以将您发送到完全不同的服务器,或者更改协议(例如,从HTTP到HTTPS),或者两者兼而有之。并且浏览器知道新的URL。但它需要在服务器和客户端之间进行额外的来回。
发布于 2013-01-08 14:54:30
SendRedirect()
将在服务器之间搜索内容。它很慢,因为它必须通过发送内容的URL来贴近浏览器。然后,浏览器将为同一服务器或另一服务器中的内容创建一个新的请求。
我认为RquestDispatcher
是用来搜索服务器中的内容的。它是服务器端的过程,并且比SendRedirect()
方法更快。但问题是,它不会在浏览器中搜索所需的日期或内容,也不会要求浏览器更改URL选项卡中的URL。因此对用户造成的不便很小。
https://stackoverflow.com/questions/2047122
复制相似问题