gpt4 book ai didi

spring - Java EE FrontController 与 Spring 的 DispatcherServlet

转载 作者:行者123 更新时间:2023-12-04 10:57:09 25 4
gpt4 key购买 nike

如果您查看 Java EE FrontController在序列图中,Controller 将请求委托(delegate)给 Dispatcher,文档说:

A dispatcher is responsible for view management and navigation, managing the choice of the next view to present to the user, and providing the mechanism for vectoring control to this resource.



在 Spring MVC 中, DispatcherServlet充当 前端 Controller (正如 Craig Walls 在书中提到的),这个 Servlet 将请求委托(delegate)给其他 Controller ,这些 Controller 依次调用适当的服务类(用于处理请求),然后返回 ModelAndView 的实例至 DispatcherServlet再次。

所以大致这就是请求通常的传播方式:

客户端 -> DispatcherServlet -> Controller -> 服务 -> DAO

如果将此流程与 Java EE FrontController 进行比较模式序列图,看来 DispatcherServlet不是真正的 FrontController。

你对此有什么看法?

最佳答案

我会说 DispatcherServlet 填充了前端 Controller 和调度程序的角色。然而,DispatcherServlet 不是直接委托(delegate)给 View ,而是委托(delegate)给另一个 Controller 。这使您能够更好地将演示文稿与业务逻辑分开。在“纯”前端 Controller 范式中,您可能必须在 View 中添加一些业务逻辑。

简而言之,DispatcherServlet 实现了与前端 Controller 模式相同的目标。但它确实与它略有不同,它允许您向调度程序添加另一层 Controller 。我认为这是一件好事。

关于spring - Java EE FrontController 与 Spring 的 DispatcherServlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5872400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com