我開始學習Spring MVC的昨天,那麼我想,在Spring MVC中(或其他框架可能),我們可以有很多的servlet在一個Web應用程序。
如果有任何http請求,Servlet將具有匹配的url模式。另一方面,我們可以使用@RequestMapping爲http請求執行映射。
所以問題是爲什麼,何時以及在哪種情況下我們應該使用多個servlet?
對此最佳做法是什麼?
謝謝。爲什麼,在什麼情況下,我們應該在spring mvc中使用多個servlet而不是單個servlet?
3
A
回答
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
,如果你想要的東西,諸如開發API RESTful服務是與像新澤西,而不是Spring MVC中的冗長外實現更容易,您可以有多個servlet。在這種情況下,您將有一個使用Jersey的API服務的servlet,以及一個處理前端網站的Spring Servlet。
相關問題
- 1. 爲什麼我們需要在Servlet的情況下實現單線程模型?
- 2. 爲什麼我們在java中使用web服務而不是jsp-servlet技術?
- 3. 爲什麼我應該避免在servlet中使用InheritableThreadLocal?
- 4. 在什麼情況下,我們應該實現Iprincipal和IIdentity
- 5. 在什麼情況下我們應該選擇maven?
- 6. 爲什麼wicket在Web.xml而不是Servlet中使用Filter?
- 7. 爲什麼'這'不是它在這種情況下應該是什麼?
- 8. 在什麼情況下,表單方法應該是GET,它應該是什麼情況POST
- 9. 在什麼情況下我們必須使用localstorage而不是cookies?
- 10. 爲什麼我們使用接口和抽象類,在什麼情況下應該使用abract類和接口
- 11. 有什麼情況下,我應該使用in運算符而不是hasOwnProperty()?
- 12. 在什麼情況下應該使用AUTOINCREMENT而不是默認的ROW ID?
- 13. 我們應該在什麼情況下爲int/BOOL/float等設置屬性
- 14. 我應該在什麼情況下使用模塊和課程
- 15. 我應該在什麼情況下使用Ebean或EbeanServer?
- 16. 如果多個請求涉及單個servlet,會發生什麼情況..?
- 17. 什麼是objc_setAssociatedObject()以及在什麼情況下應該使用它?
- 18. 在什麼情況下CGI比Servlet更快?
- 19. 在VB.NET中,爲什麼我應該使用Select而不是If?
- 20. 什麼是Spring中的Dispatcher Servlet?
- 21. 在什麼情況下我們應該使用函數簽名void *(*)()?
- 22. 在什麼情況下,超類不應該是抽象的?
- 23. 爲什麼我應該使用XMLLIst而不是簡單的XML?
- 24. 在什麼情況下,我應該使用_作爲swift中的參數
- 25. 在什麼情況下我想要處理ChartArea.AxisViewChanging而不是ChartArea.AxisViewChanged?
- 26. 爲什麼apache servlet是單身人士?
- 27. 爲什麼我應該在這個例子中使用__new__而不是__init__?
- 28. 在PrintWriter的情況下,爲什麼我應該在循環中沖洗而不是在循環之後沖洗?
- 29. 爲什麼我們在Spring MVC中使用Model類(model.addAttribute())?
- 30. 爲什麼我們甚至在Spring MVC中使用模型類?
所以,我應該使用單獨的servlet呢? 但是,它仍然不清楚(對我來說),爲什麼不使用多個servlet。 – guiltry
@guiltry:你不使用多個servlet因爲Spring MVC的調度的servlet可以使用控制器,而是和控制器處理這種痛苦要少得多。 –
使用單個servlet限制必須在web.xml中完成的配置。 Spring控制器專門用於處理來自DispatcherServlet的重定向。正如Nathan解釋的那樣,控制器配置起來不那麼複雜。 –