Temat: Dlaczego GenericServlet jest serializowalny?
Pawel Dolega:
Rzeczywiscie jest to troche dziwne. Serwlety jako takie sa / powinny byc bezstanowe wiec serializowanie servletu dla load
Załóżmy taką sytuację. Serwlet startuje, w metodzie init tworzymy
sobie instancję klienta SOAP, wywołujemy jakąś czasochłonną usługę
Web. Po wywołaniu usługi, dostajemy jakiś obiekt transferowy.
Referencję do tego obieku trzymamy jako składową klasy przez cały
czas życia serwletu (nie potrzebujemy tej referencji w innych
serwletach, więc nie umieszczamy jej jako atrybut kontekstu serwletu). W metodzie doPost lub doGet, korzystamy z tych danych. Czy trzymanie stanu serwletu i serializacja nie ma tutaj sensu, np. gdy kontener serwletów ma bardzo mało pamięci do dyspozycji (np. urządzenia elektroniki domowej ?).
balancingu wydaje sie bzdura (prosze mnie poprawic jesli sie
Możesz uzasadnić dlaczego jest bzdurą ?
myle). Dodajmy do tego fakt, ze w J2EE 1.3 mogla byc wiecej niz jedna instacja servletu na JVM (np. w wypadku SingleThreadModel).
Mogą, albo nie mogą. Zależy od implementacji kontenera.
Albo wątki sekwencyjnie wywołują metodę service, albo faktycznie,
istnieje pula wątków dla modelu SingleThreadModel (który od j2ee 1.4 jest niezalecany w użyciu). Ale jeśli się nie mylę, jest to raczej stosowane w przypadkach, kiedy serwery/aplikacje są rozproszone.