想知道在實時環境中創建了多少個調度器sevlet實例。當有多個請求到達應用程序時。並且如果spring創建單例對象,那麼一個對象如何處理多個請求?當發生這種情況時會發生什麼許多人訪問該網站,因爲dispatcherServlet對象只有一個,所有請求都由同一個對象處理,不會造成任何性能問題?......請澄清它是否與這個概念混淆。或者建議我理解這本書?請求如何被dispacther servlet處理?
0
A
回答
1
正如M. Deinum所說,一個servlet來統治他們。我將嘗試提供對ServletDispatcher生命週期的非常一般的描述。
當請求離開它承載着從用戶信息的瀏覽器。這轉到DispatcherServlet前端控制器,它是將請求委託給其他組件的單個servlet。
DispatcherServlet的工作是將請求發送到右側控制器。由於應用程序可以有多個控制器DispatcherServlets獲得幫助,通過諮詢處理程序映射
- 決定將其發送到一個
的的DispatcherServlet將請求發送到目的地控制器,
控制器打包模型數據並標識顯示輸出的視圖的名稱並將其發送回分派rservlet。
的DispatcherServlet諮詢誰與的ViewResolver並查找其被設置爲顯示的數據的圖。
查看是通過使用模型數據生成輸出來實現的(例如通過JSP)。哪些被髮回給客戶端。
這一切都發生得很快(ms),這意味着可以在很短的時間內處理數千個請求。
+0
非常感謝您的精彩解釋。我對流程有了一些想法,但是如果dispactherServlet只有一個對象並且它會有一些內存位置,我會感到困惑。由於大量的應用程序來到應用程序,每個線程都會嘗試訪問相同的內存位置。所以它會被應用程序處理。它一次可以訪問多個線程嗎?它不會產生任何性能問題嗎?....提前致謝 –
相關問題
- 1. 多個請求處理servlet
- 2. Grails - Servlet 3.0異步請求處理
- 3. 使用Servlet來處理AJAX請求?
- 4. 處理多個帖子請求的Servlet
- 5. 在JSP中處理Ajax請求Servlet
- 6. GWT請求被處理,如JavaScript
- 7. 使用servlet處理多部分請求和正常請求
- 8. 」請求被中止:請求被取消。「同時處理PayPal IPN
- 9. 如何處理HTTP請求
- 10. SAML - 如何處理請求?
- 11. 如何處理REST請求?
- 12. servlet容器如何處理這個http請求?
- 13. 如何處理多個servlet請求以更新DB值
- 14. 如何處理多個文檔打開請求火的servlet
- 15. 如何分配線程來處理Servlet請求?
- 16. 容器在加載啓動之前如何處理servlet請求?
- 17. 如何處理servlet?
- 18. 請求處理
- 19. HttpServerRequest:請求被處理幾次
- 20. Chrome請求被卡在待處理中
- 21. 停止處理被終止的請求
- 22. $ http請求沒有被請求攔截器處理
- 23. 仍然無法處理代理servlet中的HTTPS請求
- 24. REST Idempotence實現 - 如何在請求已被處理時回滾?
- 25. 如何在Ember中的destroyRecord被調用時處理請求?
- 26. FastCGI請求處理
- 27. 處理Ajax請求
- 28. ASP.net請求處理
- 29. 處理POST請求
- 30. TDI_RECEIVE請求處理
一個servlet將它們全部統治......爲什麼單個實例無法處理多個請求,您只需確保它是線程安全的(即不共享狀態)即可。 –
感謝您的回答,但我仍然感到困惑不會有任何性能問題,當有很多人訪問網站和不同的線程,由cotainer創建所有指向相同dispacherServlet對象?...請澄清此 –
號爲什麼做你認爲這是一個問題,只要沒有狀態,一個對象完全有能力被多個線程使用(每個請求由不同的線程處理)。所以不會有任何問題(除非你添加'synchronized'方法等)。 –