java - 请求调度器转发和 servlet 链接之间的区别

标签 java servlets request response

request dispatcher的forward方法和servlet chaining的概念有什么区别?

例子

RequestDispatcher rd= req.getRequestDispatcher("pathToServlet");
rd.forward(req,resp);

这样做是在不涉及客户端(浏览器)交互的情况下转发请求。但是我们可以使用 Servlet Chaining 实现同样的效果吗?如果可以,那有什么区别?

最佳答案

没有什么不同。 “Servlet 链接”只是在黑暗的 J2EE 1.1/1.2 时代创造的一个术语,当时 servlet 过滤器还不存在。事实上,它基本上是使用 RequestDispatcher#forward() 从一个 servlet 转发到另一个 servlet 的方法(并确保响应尚未提交,否则会导致 IllegalStateException).

自从 J2EE 1.3(Servlet 2.3,已经超过 十年 了!)servlet filters被引入,这使得这个过程变得更加干净和容易。从那时起,“Servlet chaining”就不受欢迎了,通常被标记为“糟糕的设计”。如今,您最终希望只拥有一个前端 Controller servlet 和多个业务模型。

关于java - 请求调度器转发和 servlet 链接之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13844481/

相关文章:

servlets - 在基于 servlet 的应用程序中放置以及如何读取配置资源文件?

java - 服务器遇到意外情况,无法满足请求。 HTTP 500

java - 具有 IP 验证且仅允许用户投票的机制 : problem in getting user IP address with two app servers and apache in front

java - 构建具有安全性的 Java 桌面应用程序的最佳方式

java - 如何将obj传递给jsp并循环创建多个div?

jsp - 如何从 taglib JSP 页面获取 servlet session 属性

rejectUnauthorized 为 false 的 Node.JS 请求

javascript - 如何通过函数返回来自 cy.request 的响应

java - 在 RDBMS 中保存 REST API JSON

java - 如何在屏幕底部显示对话框