2011-05-03 55 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