Her bir HTTP isteği aynı sunucu nesnesine ancak farklı bir iş parçacığına erişiyor mu? veya yeni bir iş parçacığı ve yeni bir Servlet Örneği oluşturuyor mu?Her biri aynı sunucu nesnesine erişim ister mi?
cevap
Kaplet, sunucu uygulamanız SingleThreadModel
uygulanmazsa aynı sunucu örneğini kullanır. Aksi takdirde, aynı Servlet
nesnesinin vurulduğunu garanti etmez. Kapsayıcı, gerekli gördüğü takdirde daha fazla sunucu örneği oluşturmakta serbesttir. Ancak istekler, mutlaka yeni oluşturulan (Sanjay'in bahsettiği gibi) değil, farklı konulara dayandırılıyor. Servlet 3.0 tarifhamesinden
: bir dağıtılmış bir ortamda (varsayılan) bulunan bir sunucu uygulaması için
, sunucu uygulaması kap sunucu uygulaması beyanı başına yalnızca bir örneği kullanmak gerekir. Ancak, SingleThreadModel arabirimini uygulayan bir sunucu için, sunucu kabı bir ağır istek yükünü işlemek ve belirli bir örneğe isteklerini serileştirmek için birden çok örneği başlatır.
...
Genellikle Web konteyner farklı parçacığı üzerinde hizmet yönteminin eşzamanlı yürütülmesi ile aynı servlet'dir eşzamanlı isteklerini işler.
Her HTTP isteği yeni bir iş parçacığı oluşturur, ancak aynı Servlet örneğine erişir.
DÜZENLEME: Bir sunucu düğümü durumunda, o düğümde aynı Servlet örneğine sahip olursunuz. Yük dengeleme/birçok sunucu durumunda genellikle Java VM başına bir örneğiniz olacaktır.
Gerçekten emin değilim * her zaman yeni bir iş parçacığı yaratın; Daha fazla mevcut bir iş parçacığı havuzundan ücretsiz bir iş parçacığı alır. –
@ SanjayT.Sharma Haklısınız, genellikle bu şekilde yapılır (performans nedenleriyle), ancak bu uygulama sunucusunun/servlet konteynerinin uygulama detayıdır ve kodunuz buna bağlı olmamalıdır. –
- 1. Erişim nesnesine/işaretçiye göre
- 2. GridViewColumn öğesinden GridViewColumnHeader nesnesine erişim
- 3. jQuery: Her biri 0
- 4. Her biri colorbar
- 5. Assembly.Load her zaman aynı montajı yükler mi?
- 6. Date.toString() çıkışı her zaman aynı biçimde mi?
- 7. Her biri farklı bir PYTHONPATH
- 8. Bir Session nesnesine erişim Razor _Layout.cshml
- 9. NodeJS oturum nesnesine en üst düzey erişim
- 10. Gönderilen SMS durumlarının her biri nasıl izlenir?
- 11. içerir, include_once, ister veya require_once?
- 12. Neden tfs her dosyanın üzerine yazmamı ister?
- 13. Çok Dişli aynı erişim C++
- 14. , başka biri myapp.meteor.com dağıtımımın üzerine yazabilir mi?
- 15. Her biri için XSL'deki güncelleştirme özniteliği
- 16. Python 20 takımları her biri 6bowlers
- 17. g: her biri grils layout şablonunda
- 18. Angularjs2 ile iyonik2 için her biri için
- 19. Backbone.js + Her biri için bir tutamaç
- 20. TCPSocket # her biri Ruby'de ne yineliyor?
- 21. özniteliği, erişim engellendi yerine kullanıcı oturum açmasını ister?
- 22. Google Dokümanlar komut dosyaları her zaman izin ister.
- 23. Bir .NET uzak sunucu nesnesine bağlanmanın en kolay yolu nedir?
- 24. Oturum anahtarı aracılığıyla istekler arasındaki pandalar veri çerçevesi nesnesine erişim
- 25. LAN ve uzaktan aynı svn sunucusuna erişim
- 26. SwiftyJSON aynı anahtar birden çok erişim
- 27. Döküm arayüzü somut uygulama nesnesine mi yoksa tersine mi?
- 28. RunWithElevatedPrivileges kullanırken erişim reddedildi mi?
- 29. Erişim değiştiricileri performansı etkiler mi?
- 30. JQuery tüm verileri almak uzun dinamik olarak oluşturulmuş listesine aynı sınıf tanımlayıcı ile her biri
Neden istek üzerine bir sunucu uygulamıyorsunuz? –
olası kopyası [Servlet nasıl çalışır? Örnekleme, oturum değişkenleri ve çoklu okuma] (http://stackoverflow.com/questions/3106452/how-do-servlets-work-instantiation-session-variables-and-multithreading) – BalusC