2011-05-03 56 views
5

如果你看一下Java EE FrontController序列图,该控制器将请求委托Dispatcher和文档说:的Java EE FrontController Vs的Spring的DispatcherServlet

调度员负责视图管理和导航, 管理选择要呈现给用户的下一个视图,并且提供用于对该资源进行矢量控制的机制。

在Spring MVC中,DispatcherServlet充当FrontController(如由Craig墙在书提到的),以及这个servlet将请求委托给其他控制器,进而调用相应的服务类(处理请求)和然后再次将ModelAndView的实例返回到DispatcherServlet

所以大概这是何等的要求通常旅行:

客户端 - >的DispatcherServlet - >控制器 - >服务 - > DAO

如果你比较Java EE FrontController模式序列图本流程中,看来DispatcherServlet是不是真正的FrontController。

你对此有何评论?

回答

10

我会说DispatcherServlet会填充前端控制器和调度程序。但是,不是直接将委派给视图的DispatcherServlet委托给另一个控制器。这使您能够更好地将演示文稿与业务逻辑分开。在“纯粹的”前端控制器范例中,您可能必须为视图添加一些业务逻辑。

简而言之,DispatcherServlet实现了与Front Controller模式相同的目标。但它通过允许您向调度程序添加另一层控制器而稍微偏离了它。我认为这是一件好事。

+0

是的。这个清楚的东西。 – Vicky 2011-05-03 16:39:11