2012-05-11 26 views
3

我開始學習Spring MVC的昨天,那麼我想,在Spring MVC中(或其他框架可能),我們可以有很多的servlet在一個Web應用程序。
如果有任何http請求,Servlet將具有匹配的url模式。另一方面,我們可以使用@RequestMapping爲http請求執行映射。
所以問題是爲什麼,何時以及在哪種情況下我們應該使用多個servlet?
對此最佳做法是什麼?

謝謝。爲什麼,在什麼情況下,我們應該在spring mvc中使用多個servlet而不是單個servlet?

回答

2

通常與Spring MVC的,你宣佈在web.xml中像下面這樣的一個servlet:

<servlet> 
    <servlet-name>ActivityReplicator</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>ActivityReplicator</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

這個servlet將負責處理每一個請求到應用程序,並把它們分派到正確的控制器。

使用單一的servlet限制了具有在web.xml要做的配置。 Spring控制器專門用於處理來自DispatcherServlet的重定向。正如Nathan解釋的那樣,控制器配置起來不那麼複雜。

我建議在你的應用程序中發現的每個域控制器。例如,一個用戶管理控制器,另一個用於論壇帖子管理。您可以使用Spring閱讀Restfull控制器,以瞭解要實現多少個控制器。

+0

所以,我應該使用單獨的servlet呢? 但是,它仍然不清楚(對我來說),爲什麼不使用多個servlet。 – guiltry

+0

@guiltry:你不使用多個servlet因爲Spring MVC的調度的servlet可以使用控制器,而是和控制器處理這種痛苦要少得多。 –

+0

使用單個servlet限制必須在web.xml中完成的配置。 Spring控制器專門用於處理來自DispatcherServlet的重定向。正如Nathan解釋的那樣,控制器配置起來不那麼複雜。 –

0

,如果你想要的東西,諸如開發API RESTful服務是與像新澤西,而不是Spring MVC中的冗長外實現更容易,您可以有多個servlet。在這種情況下,您將有一個使用Jersey的API服務的servlet,以及一個處理前端網站的Spring Servlet。

相關問題