Czy każde żądanie HTTP uzyskuje dostęp do tego samego obiektu serwletu, ale do innego wątku? lub czy tworzy nowy wątek i nową instancję Servlet?Czy każde żądanie uzyskuje dostęp do tego samego obiektu serwletu?
Odpowiedz
Kontener użyje tej samej instancji serwera serwletów, jeśli serwlet nie implementuje SingleThreadModel
. W przeciwnym razie nie ma gwarancji, że zostanie uderzony ten sam obiekt Servlet
. Kontener może tworzyć więcej instancji servletu, jeśli uzna to za konieczne. Ale prośby przychodzą na różne tematy, niekoniecznie nowo utworzone (jak wspomniał Sanjay).
Od specyfikacją Servlet 3.0:
Dla serwletu nie gościł w środowisku rozproszonym (domyślnie), kontener serwletów musi wykorzystać tylko jedną instancję za deklaracją serwletu. Jednak w przypadku serwletu implementującego interfejs SingleThreadModel, kontener serwletu może utworzyć instancję wielu instancji, aby obsłużyć duże obciążenie żądania i przekształcić do żądań szeregowych do określonej instancji.
...
Ogólnie pojemnik Web obsługuje jednoczesnych żądań do tego samego serwletu autorem równoczesne wykonanie metody usługi na różnych wątkach.
Każde żądanie HTTP tworzy nowy wątek, ale uzyskuje dostęp do tej samej instancji Serwletu.
EDYCJA: W przypadku jednego węzła serwera, będziesz mieć tę samą instancję Servlet na tym węźle. W przypadku równoważenia obciążenia/wielu serwerów, zazwyczaj będziesz mieć jedną instancję na maszynę wirtualną Java.
Jestem prawie pewien, że tak naprawdę nie * twórz * nowy wątek zawsze; bardziej jak podnosi wolny wątek z istniejącej puli wątków. –
@ SanjayT.Sharma Masz rację, często jest to robione w ten sposób (ze względu na wydajność), ale jest to szczegół implementacji kontenera serwera aplikacji/serwletu i twój kod nie powinien na tym polegać. –
- 1. Czy ta wielokrotność uzyskuje dostęp do tego samego obiektu między punktami określającymi dobrze zdefiniowane zachowanie?
- 2. Dostęp Muti do tego samego pliku tekstowego
- 3. Używanie tego samego kontrolera na różnych elementach do odnoszenia się do tego samego obiektu
- 4. Unikanie wielu odniesień do tego samego obiektu w Django ORM
- 5. Python wielu wątków uzyskujących dostęp do tego samego pliku
- 6. Redbean, wiele osób wiele do wielu używających tego samego obiektu
- 7. Kiedy wskaźniki do tego samego obiektu są takie same?
- 8. Do zmiennej prywatnej można uzyskać dostęp z innego obiektu tego samego typu?
- 9. Kiedy mogę porównać wskaźniki do tego samego obiektu w C++?
- 10. Axios uzyskuje dostęp do pól nagłówka odpowiedzi
- 11. użyć tego samego obiektu blokady w dwóch różnych blokach kodu?
- 12. Jak wywołać funkcje obiektu wewnątrz tego samego obiektu?
- 13. Google Guice & Jersey wiele wzorców adresów URL do tego samego serwletu podczas stosowania filtrowania pakietów
- 14. Przesyłanie dwóch lub więcej formularzy do tego samego serwletu w JSP
- 15. Ładowarka Angular 2 na każde żądanie http:
- 16. automatycznie ładuj nowych odbiorców na każde żądanie.
- 17. Czy moduły w nancyfx zostały rzeczywiście utworzone na każde żądanie?
- 18. "NSString stringWithFormat:" - Czy uzyskasz dostęp do tego samego parametru wiele razy?
- 19. Czy dwie aplikacje na tym samym koncie Heroku mogą uzyskać dostęp do tego samego serwera RedisToGo?
- 20. Czy bezpieczny jest dostęp do tego samego pliku przez kilka FileInputStream?
- 21. Dostęp do pliku w folderze WebContent z serwletu
- 22. Wywołanie zsynchronizowanej metody z metody zsynchronizowanej, obu tego samego obiektu.
- 23. Wysyłanie tego samego, ale zmodyfikowanego obiektu przez ObjectOutputStream
- 24. Jak sprawdzić, czy dwie zmienne odnoszą się do tego samego obiektu w Pythonie?
- 25. Zmuszanie goroutines do tego samego wątku
- 26. Dlaczego gcc movl do tego samego rejestru?
- 27. Android/Java: uzyskiwanie dostępu do tego samego SQLite DB obiektu z wielu działań
- 28. Kątowa 2 trasa do tego samego komponentu
- 29. C++ porównanie wskaźnika podstawy vs pochodzącej z tego samego obiektu
- 30. javascript: różne konstruktory dla tego samego typu obiektu
Dlaczego nie utworzyć instancji serwletu na żądanie? –
możliwy duplikat [Jak działają serwlety? Tworzenie, zmienne sesji i wielowątkowość] (http://stackoverflow.com/questions/3106452/how-do-servlets-work-instantiation-session-variables-and-multithreading) – BalusC