web-app : sesja = wątek ??

Oglądasz archiwalną wersję wątku "web-app : sesja = wątek ??" z forum pl.comp.lang.java



gandalf - 3 Kwi 2002, 13:55
Witam.

Mam takie pytanko :
- czy w aplikacji uruchomionej pod Tomcatem (o ile to, że jest to Tomcat ma
tu jakieś znaczenie) każda nowa sesja jest uruchamiania jako osobny wątek ?
czy też może w ramach sesji może zostać uruchomionych wiele wątków ?
- czy da się wewnątrz metody init serwleta dostać do obiektu sesji ?

Pozdrawiam,
Arek




Rafal Smyka - 4 Kwi 2002, 02:24




- czy w aplikacji uruchomionej pod Tomcatem (o ile to, że jest to Tomcat
ma
tu jakieś znaczenie) każda nowa sesja jest uruchamiania jako osobny wątek
?
czy też może w ramach sesji może zostać uruchomionych wiele wątków ?



Generalnie, każdy request to wątek, czyli w ramach sesji będzie
uruchomionych wiele wątków.

- czy da się wewnątrz metody init serwleta dostać do obiektu sesji ?



Sesja związana jest z requestem, przeglądarką. W czasie inicjalizacji
servleta sesja nie istnieje.



mm - 4 Kwi 2002, 05:11

Witam.

Mam takie pytanko :
- czy w aplikacji uruchomionej pod Tomcatem (o ile to, że jest to Tomcat ma
tu jakieś znaczenie) każda nowa sesja jest uruchamiania jako osobny wątek ?
czy też może w ramach sesji może zostać uruchomionych wiele wątków ?
- czy da się wewnątrz metody init serwleta dostać do obiektu sesji ?

Pozdrawiam,
Arek



Prtokol HTTP ( a jego uzywasz do komunikcaji z twoim web serverem)  
jest protkolem bez stanowym. Oznacza to gdy wysylane sa kolejne request
do serwera w bezposredni sposob nie jest nigdzie pamietany jakaka kolwiek
informacja o tym co sie dzialo wczesniej.

Barzdo czesto w aplikacjach webowych istnieje jedak koniecznosc
prowadzenia pewnego "rejestru histori" gdie beda przechwywane jakies
informacje pozwalajace przechowywac jakies istotne informacje z poprzednich
requestow.

Rejestr ten nosi nazwe sesji i jest ona powiazana z jednym konkretnym
klientem i z wieloma requestami wyslanymi przez tego klienta.

Istnieja dwa zasadnicze typy przechowywania informacj sesyjnych:
 # po stronie klient ( z wieloma ograniczeniami i rzadko uzywany)
 # po stronie serwera ( tak jak to sie dzieje w przypadku Servletow
              i obiektow klasy HttpSession)

Jesli sesja a dokladniej jej stan przechowywana jest po stronie serwera
to oczywisie web server musi poradzic sobie z obslgiwaniem wielu sesji
z wieloma klientami. Dlatego kadza sesja ma swoj unikalny identyfikator,
ktory przysylany jest z kazdym requetstem.

Identyfikator ten moze byc przechowywany w Cookies lub bezposrednio dposiany
do
paramatrow requestow.

Tomcat np domyslnie uzywa Cookies do przechowywania informacji na temat
identyfiaktora
sesji.

Pomysl roniez o tym ze sesji moze byc bardzo wiele np pare tysiecy.
Wiec Web Server zwykle nie moze trzymac ich wszytkich w pamici.
Wiec wymaga to zaimplementowana skopmlokwanego mehcnizmu zarzadzania
sesjami i np zapisywania sesji pomiedzy requestami na dysku.

Co sie zas tyczy watkow to sytacja ma sie nastepujaco:
Requesty sa obslugiwane przez watki.
Ale nie dla kazdego requestu tworzony jest nowy watek.
Poprostu nie zawsze oplaca sie stowrzyc nowy watek i ich ilosc jest zwykle
ograniczona

Mala uwaga jeli wtoj Twoj Servlet bedzie implementowal
interface "SingleThreadModel"
to web server nie "wpusci"dwoch watkow do twojego servleta.
Mozesz sobie roniez sam synchronizowac pewne metody w Servlecie.
Powoduje to ze wzajemne relacje pomiedzy requestem a threadem sa zwykle dosc
skomplkowane
i raczej czy lepszy serwer tym mniej liniowe.

Podsumowujac Sessja powiazana jest z klientem choc jest przechowyana po
stronie serwera.
sesja jest uzywana jest podczas wielu requestow o tego samego klienta a te
obslugiwane sa przez watki. Zarzedzanie watkami nalezy do web serwera i jesli
nie
zalezy ci na synchronizacji watkow etc to raczej nie powinienes sie martwic
tym jak
to sie odbywa.

mm



Marcin Sciesinski - 4 Kwi 2002, 09:59




Witam.

Mam takie pytanko :
- czy da się wewnątrz metody init serwleta dostać do obiektu sesji ?



Metoda init serwera jest odpalana tylko przy zaladowaniu Servletu a nie dla
kazdego klienta wchodzacego na strone.

Pozdrawiam,
Marcin Sciesinski




gandalf - 5 Kwi 2002, 04:27
Wskażcie mi proszę, jakiś artykuł, dokumentację, cokolwiek gdzie znajdę opis
tego typu problemów.

Pozdrawiam,
Arek


Eclipse WTP - projekt zwykły w projekt web
Netbeans Web Application i nie wyświetla żadnego komponentu Woodstock na stronie
Ant i kopiowanie do katalogu /WEB-INF/classes
Eclipse i Visual Editor dla web (html, jsp...)
  • pielegniarki opieka kielce
  • czemu po moim routerze jest getaway a potem
  • kretynskie smsy od roznych reklamodawcow
  • smieszne teksty historie
  • drzewka do kupienia
  • katowice awf fizjoterapia egzaminy
  • java;warcaby
  • tunezyjski aar 1066 1820
  • o symbianie na powaC2 nie czyli
  • Zbieranina wiadomości z for dyskusyjnych || Indeks