java - RequestDispatcher.forward() 和 HttpServletResponse.sendRedirect() 有什么区别?

标签 java servlets redirect forward

RequestDispatcherforward()HttpServletResponsesendRedirect()方法有什么区别?
任何人都可以通过实时示例解释这些方法的示例和最佳用法吗?

最佳答案

重定向是一种发送回客户端的响应,而转发委托(delegate)完全在服务器端进行,转发操作的结果返回给客户端,就好像它仅来自原始 URL。

另一个区别是转发委托(delegate)只能用于应用程序内的资源,而重定向 命令可以将客户端浏览器重定向到当前域之外。

示例:

// Sends a temporary redirect to the HTTP client. Only absolute URLs are allowed.
ServletResponse.sendRedirect(String location);


// Delegates one HttpRequest to another dynamic or static resource
HttpRequest.getRequestDispatcher("example.jsp").forward(request, response);


// Includes/enriches current response with another dynamic or static resource
HttpRequest.getRequestDispatcher("example.html").include(request, response);


另一个很好的解释可以在这里找到:
Difference between sendRedirect() and forward()

关于java - RequestDispatcher.forward() 和 HttpServletResponse.sendRedirect() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7220241/

相关文章:

redirect - 语言切换器,使用symfony2.0重定向到当前页面

java - 如何将字符串短语中每个单词的首字母转换为大写?

java - 如何在 JSP 中基于另一个属性显示一个属性

java - 如何在 Tomcat 6 中配置永久 Servlet?

redirect - 如何在AngularJS中的http.get中进行重定向?

php - 使用 .htaccess [自定义 URL] 进行页面重定向

java - Spring 中是否有标准方法将带有 DELETE 请求的主体传递到 REST 端点?

java - 将数组列表转换为单个字符串

java - tomcat 上的 Grails 无限期等待

javascript - 如何使用 servlet 和 jsp 在浏览器上播放视频..并且视频存储在本地系统中,如 D :/video/sample. mp4