ďťż
 
proste pytanie na temat =?ISO-8859-2?Q?Servlet=F3w?= ďťż
 
proste pytanie na temat =?ISO-8859-2?Q?Servlet=F3w?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

proste pytanie na temat =?ISO-8859-2?Q?Servlet=F3w?=



intheshadow - 25-04-2006 00:03
proste pytanie na temat =?ISO-8859-2?Q?Servlet=F3w?=
  Witajcie,
czytam, czytam i czytam od dawna, ale teoria jedno, a praktyka drugie i
słabo rozumiem kilka zagadnień. Mam takie pytanie dotyczące pisania
aplikacji webowych:

1. Czy to, że domyślnie servlet działa w trybie wielowątkowym oznacza w
praktyce, że:
a) tworzonych jest tyle instancji servletu ile połączeń?
b) jeden serwlet obsługuje wiele połączeń?

2. W zależności od odpowiedzi na pytanie 1 :). Czy kolekcje użyte w
servlecie i w ogóle w klasach po stronie serwera (np JavaBean) muszą być
jakoś specjalnie wielowątkowo przystosowane?

Pytania moje dotyczą najbardziej typowej aplikacji webowej, w której np.
na podstawie requestów użytkownika generuje się tabelka z danymi itp.

P.S.
Sorry za lamerskość tego pytania, ale gnębi mnie to bardzo.

--
z pozdrowieniem
paweł





Brzezi - 25-04-2006 00:03

  pon, 24 kwi 2006 o 19:14 GMT, intheshadow napisał(a):

> 1. Czy to, że domyślnie servlet działa w trybie wielowątkowym oznacza w
> praktyce, że:
> a) tworzonych jest tyle instancji servletu ile połączeń?
> b) jeden serwlet obsługuje wiele połączeń?

b), gdy zmienisz na jednowatkowy, to rzadania zdaje sie ze sa obslugiwane
szeregowo

> 2. W zależności od odpowiedzi na pytanie 1 :). Czy kolekcje użyte w
> servlecie i w ogóle w klasach po stronie serwera (np JavaBean) muszą być
> jakoś specjalnie wielowątkowo przystosowane?

atrybuty obiektu musza byc przystosowane do dzialanie wielowatkowego, badz
traktowane w odpowiedni do tego sposob, zmienne lokalne nie wymagaja tego

Pozdrawiam
Brzezi
--
[ E-mail: brzezi@enter.net.pl ][ ]
[ Ekg: #3781111 ][ ]
[ LinuxUser: #249916 ][ ]




intheshadow - 25-04-2006 00:03

  Brzezi napisał(a):
> pon, 24 kwi 2006 o 19:14 GMT, intheshadow napisał(a):
>
>> 1. Czy to, że domyślnie servlet działa w trybie wielowątkowym oznacza w
>> praktyce, że:
>> a) tworzonych jest tyle instancji servletu ile połączeń?
>> b) jeden serwlet obsługuje wiele połączeń?
>
> b), gdy zmienisz na jednowatkowy, to rzadania zdaje sie ze sa obslugiwane
> szeregowo

Przede wszystkim dzięki za odpowiedź, byłem przekonany, że kontener
tworzy nową instancję servletu dla każdego klienta.

>> 2. W zależności od odpowiedzi na pytanie 1 :). Czy kolekcje użyte w
>> servlecie i w ogóle w klasach po stronie serwera (np JavaBean) muszą być
>> jakoś specjalnie wielowątkowo przystosowane?
>
> atrybuty obiektu musza byc przystosowane do dzialanie wielowatkowego, badz
> traktowane w odpowiedni do tego sposob, zmienne lokalne nie wymagaja tego

Szczerze nie bardzo rozumiem dlaczego atrybuty obiektów muszą być
przystosowane do wielowątkowości. Bo weźmy taki przykład:

Jest servlet(Controler), w którym jest kod:
....
BazaDanych db = (BazaDanych) getServletContext().getAttribute("db");
Czlowiek cz = db.getCzlowiek(); // tworzę obiekt dla konkretnego żądania
request.setAttribute("czlowiek", cz);
....
Następnie przekierowuje i wyświetlam obiekt "czlowiek" go w JSP.

Moje pytanie brzmi:
Czy zarówno klasa BazaDanych, jak i Czlowiek powinny być przystosowane
wielowątkowo?
Bo co do bazy danych to widzę, że jedna instancja jest dla wszystkich
wątków servletu, ale co do klasy czlowiek mam wątpliwości. Chodziło ci o
zmienne lokalne w jakim znaczeniu? Lokalne dla poszczególnych metod?

Mam nadzieję, że za bardzo nie zamotałem :).

--
z pozdrowieniem
paweł




Brzezi - 25-04-2006 00:03

  pon, 24 kwi 2006 o 20:30 GMT, intheshadow napisał(a):

>> atrybuty obiektu musza byc przystosowane do dzialanie wielowatkowego, badz
>> traktowane w odpowiedni do tego sposob, zmienne lokalne nie wymagaja tego
>
> Szczerze nie bardzo rozumiem dlaczego atrybuty obiektów muszą być
> przystosowane do wielowątkowości. Bo weźmy taki przykład:

piszac obiekt, mialem na mysli obiekt servletu

> BazaDanych db = (BazaDanych) getServletContext().getAttribute("db");
> Czlowiek cz = db.getCzlowiek(); // tworzę obiekt dla konkretnego żądania
> request.setAttribute("czlowiek", cz);
> ...
> Następnie przekierowuje i wyświetlam obiekt "czlowiek" go w JSP.
>
> Moje pytanie brzmi:
> Czy zarówno klasa BazaDanych, jak i Czlowiek powinny być przystosowane
> wielowątkowo?

BazaDanych tak, poniewaz e jednej chwili kilka watkow moze miec do niej
dostep

a Czlowiek to zalezy, jezeli reprezentuje ona tylko dane pobrane z bazy
danych to nie

ogolnie mowiec, jezeli do jakiejsc zmienne moze miec dostep w jednej chwili
kilka watkow to musi on byc do tego przystosowana...

Pozdrawiam
Brzezi
--
[ E-mail: brzezi@enter.net.pl ][ Ta sygnatura zostala automagicznie ]
[ Ekg: #3781111 ][ wygenerowana programem Signify v1.14. ]
[ LinuxUser: #249916 ][ Po ten i inne super programy, ]
[ zajrzyj na http://www.debian.org/ ]





intheshadow - 25-04-2006 00:03

  Brzezi napisał(a):
> pon, 24 kwi 2006 o 20:30 GMT, intheshadow napisał(a):
>
>>> atrybuty obiektu musza byc przystosowane do dzialanie wielowatkowego, badz
>>> traktowane w odpowiedni do tego sposob, zmienne lokalne nie wymagaja tego
>> Szczerze nie bardzo rozumiem dlaczego atrybuty obiektów muszą być
>> przystosowane do wielowątkowości. Bo weźmy taki przykład:
>
> piszac obiekt, mialem na mysli obiekt servletu
>

To już mi się rozjaśniło wiele.

>> BazaDanych db = (BazaDanych) getServletContext().getAttribute("db");
>> Czlowiek cz = db.getCzlowiek(); // tworzę obiekt dla konkretnego żądania
>> request.setAttribute("czlowiek", cz);
>> ...
>> Następnie przekierowuje i wyświetlam obiekt "czlowiek" go w JSP.
>>
>> Moje pytanie brzmi:
>> Czy zarówno klasa BazaDanych, jak i Czlowiek powinny być przystosowane
>> wielowątkowo?
>
> BazaDanych tak, poniewaz e jednej chwili kilka watkow moze miec do niej
> dostep
>
> a Czlowiek to zalezy, jezeli reprezentuje ona tylko dane pobrane z bazy
> danych to nie
>
> ogolnie mowiec, jezeli do jakiejsc zmienne moze miec dostep w jednej chwili
> kilka watkow to musi on byc do tego przystosowana...

Ok, dzięki za pomoc. Pozmieniam tylko w BazaDanych metody na
synchronized, bo wszystkie pola są static final i sprawa załatwiona.

Apropos ciekawy wątek na temat Twojej osoby. Ale dobrą renomę masz IMHO
zasłużoną. Pozdrawiam.

--
z pozdrowieniem
paweł




Brzezi - 25-04-2006 00:03

  pon, 24 kwi 2006 o 21:01 GMT, intheshadow napisał(a):

> Ok, dzięki za pomoc. Pozmieniam tylko w BazaDanych metody na
> synchronized, bo wszystkie pola są static final i sprawa załatwiona.

to ze klasa musi byc "multi thread safe" nie oznacza, ze kazda metoda musi
byc synchronized, przewaznie jest to bledem, powinno sie synchornizowac jak
najmniejszy kawalek kodu, jedynie ten niezbedny, no i do tego nie wszystko
musi byc zsynchronizowane... :)

Pozdrawiam
Brzezi
--
[ E-mail: brzezi@enter.net.pl ][ brzezi:~# uptime ]
[ Ekg: #3781111 ][ 21:05:58 up 11:01, 4 users, load ]
[ LinuxUser: #249916 ][ average: 0.85, 1.65, 1.93 ]




intheshadow - 25-04-2006 00:03

  Brzezi napisał(a):
> pon, 24 kwi 2006 o 21:01 GMT, intheshadow napisał(a):
>
>> Ok, dzięki za pomoc. Pozmieniam tylko w BazaDanych metody na
>> synchronized, bo wszystkie pola są static final i sprawa załatwiona.
>
> to ze klasa musi byc "multi thread safe" nie oznacza, ze kazda metoda musi
> byc synchronized, przewaznie jest to bledem, powinno sie synchornizowac jak
> najmniejszy kawalek kodu, jedynie ten niezbedny, no i do tego nie wszystko
> musi byc zsynchronizowane... :)

Hmm, w zasadzie klasa ma dostarczać metody dostępowe do bazy danych
(wzorzec DAO bodajże), więc chyba faktycznie nie trzeba ich
synchronizować, bo każda i tak ma swoje własne Connection. No tak,
zapomniałem, że nadmierna synchronizacja znacznie spowalnia aplikację.

--
z pozdrowieniem
paweł




Rep - 25-04-2006 00:03

  Użytkownik "Brzezi" <usunto.brzezi@enter.net.pl> napisał w wiadomości
news:slrn.pl.e4q4mn.6uu.usunto.brzezi@localhost.lo caldomain...
> pon, 24 kwi 2006 o 19:14 GMT, intheshadow napisał(a):
>
>> 1. Czy to, że domyślnie servlet działa w trybie wielowątkowym oznacza w
>> praktyce, że:
>> a) tworzonych jest tyle instancji servletu ile połączeń?
>> b) jeden serwlet obsługuje wiele połączeń?
>
> b), gdy zmienisz na jednowatkowy, to rzadania zdaje sie ze sa obslugiwane
> szeregowo
>

Tzn. nigdy nie bedzie sytuacji, w ktorej dwa watki beda jednoczesnie
wykonywac metode service(). Bedzie to zagwarantowane na dwa sposoby, albo
wlasnie szeregowo, albo bedzie stworzony servlet pool.




intheshadow - 26-04-2006 01:23

  Rep napisał(a):
> Użytkownik "Brzezi" <usunto.brzezi@enter.net.pl> napisał w wiadomości
> news:slrn.pl.e4q4mn.6uu.usunto.brzezi@localhost.lo caldomain...
>> pon, 24 kwi 2006 o 19:14 GMT, intheshadow napisał(a):
>>
>>> 1. Czy to, że domyślnie servlet działa w trybie wielowątkowym oznacza w
>>> praktyce, że:
>>> a) tworzonych jest tyle instancji servletu ile połączeń?
>>> b) jeden serwlet obsługuje wiele połączeń?
>> b), gdy zmienisz na jednowatkowy, to rzadania zdaje sie ze sa obslugiwane
>> szeregowo
>>
>
> Tzn. nigdy nie bedzie sytuacji, w ktorej dwa watki beda jednoczesnie
> wykonywac metode service(). Bedzie to zagwarantowane na dwa sposoby, albo
> wlasnie szeregowo, albo bedzie stworzony servlet pool.
>
>
>
Dzięki za wyjaśnienie.

--
z pozdrowieniem
paweł
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO Czy zna (obsługuje) ktoś program Iso Draw ? MYSQL - kodowanie w ISO-PL strona plus baza w iso do utf-8 Kodowanie: z iso na utf Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8 =?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?= =?iso-8859-2?q?Informatyka,_Java,_EJB,_Ajax,_Spring=2E_Czy=BF by_to_koniec_=B6wiata,_czy_te=BF_nasze_uczelnie_b= EAd=B1_uczy=B3y_w_ko=F1cu!_czego_praktycznego_=2E= 2E=2E=2E?= =?iso-8859-2?q?Ati_Mobility_Radeon_X300_W_Notebooku_Jak_Zwi=E Akszy=E6_Ilo=B6=E6_Grafiki_Poprzez_Wsp=F3=B3dziele nie_Z_Ramu=3F=3F=3F?= pytanie o zapytanie z having count = count z innej kolumny
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • sulimczyk.pev.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com