为什么要用requestDispatcher来传递request,而不是只存入session?

Why use requestDispatcher to pass request instead of just storing in session?

如标题所示,我们使用 requestDispatcher forward() 方法来传递 requestScope object 是有原因的吗?是不是也可以利用响应中的 sessionScope 和 sendRedirect() 方法 object?

能否请您提供一些示例,说明何时一个比另一个更好?

  • 使用 Servlet 调度机制,许多服务组件(servlet、JSPs 等)的相同请求是 "processed"。

  • 使用重定向机制,您可以强制浏览器发出另一个请求。

这完全取决于您要实现的目标。

在典型的 MVC 上下文中,Servlet 代表控制器组件,例如,用于从持久层检索数据。 此数据是您的 JSP 用于将其呈现给用户的请求范围数据。 因此,当它不是会话范围的数据时,使其成为会话数据是没有意义的。