Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

klijent + server + tomcat + JSP

[es] :: Java :: klijent + server + tomcat + JSP

[ Pregleda: 2053 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

lukeguy
Novi Sad

Član broj: 46545
Poruke: 470
80.93.253.*



+8 Profil

icon klijent + server + tomcat + JSP06.10.2006. u 12:12 - pre 213 meseci
radim zadatak koji se svodi na to da se kreira klijent/server mail aplikacija koja će imati web interfejs. sve se radi pomoću Jave.

radio sam ovako. server vrti glavnu petlju u kojoj poziva accept() i čeka klijenta. kad se javi klijent, server kreira za njega reader i writer thread kojima prepušta dalju interakciju sa korisnikom (prosleđuje se socket), a server se opet vraća na accept() i čeka sledećeg klijenta. reader nit servera parsira komande iz klijenta i obrađuje ih pomoću metoda statičke klase ClientUtils (koju sam sam napravio).

ja sam već napravio server i klijent deo (oba rade kao konzolne aplikacije, poput telneta) i tu je sve ok. ali sam se zaglavio kod servleta i JSP-a. protokol je tako organizovan da klijent mora prvo da se uloguje (šalje "login <username>"). server ga doda u listu ulogovanih korisnika (ako je uspešan login) i tek tada klijent može da lista poruke, šalje ih itd. dakle, postoji jedna konekcija i ona traje od kako se pokrene klijent, pa sve dok se klijent aplikacija ne završi.

ono što me buni jeste mehanizam povezivanja iz servleta. pretpostavljam da svaki zahtev kreira novu konekciju. i kako onda da pamtim koji je korisnik ulogovan i koji korisnik traži komande od servera? ovako kako je urađeno mi se čini da bi servlet morao svaki put da šalje login pre bilo kog drugog zahteva, pošto kad završi obradu će ga server automatski izlogovati.

kako da implementiram praćenje korisnika? da li da menjam kod servera, pa da on šalje nekakve cookie-je ili šta? stvarno sam zaglavljen, a bliži se deadline. :)

hvala svima!
 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
*.finsoft.co.yu.



+7 Profil

icon Re: klijent + server + tomcat + JSP06.10.2006. u 17:03 - pre 213 meseci
Ne bi bilo lose da procitas neki tekst/knjigu o Web aplikacijama, servletima.
Evo ti ideje za pocetak. Kad se korisnik prvi put uloguje (prodje proveru user/pass) kreiraj neki objekat tipa User (ako user ima neke atribute koji se dobiju pri loginu, ime, prezime, prava pristupa,...) ili najobicniji String (recimo username), pa ga stavi u sesiju.

Code:


User korisnik = new User(username, ime, prezime,...);
HttpSession session = request.getSession();
session.setAttribute("USER", korisnik);



Posle za svaki novi request proveri postojanje user objekta u sesiji, pa ako ga ima, znaci da je korisnik vec ulogovan i pustis ga da radi, ako nema, onda znaci da je novi pa ga odbijes ili redirektujes na login stranu ili sta vec.

Code:


HttpSession session = request.getSession ();
User korisnik = (User) session.getAttribute ("USER");
if (korisnik != null) {
   // ulogovan
   ...
} else {
   // nije ulogovan
   ...
}



kad se korisnik izloguje pocistis objekat iz sesije


Code:


session.removeAttribute ("USER");



 
Odgovor na temu

lukeguy
Novi Sad

Član broj: 46545
Poruke: 470
80.93.253.*



+8 Profil

icon Re: klijent + server + tomcat + JSP06.10.2006. u 19:19 - pre 213 meseci
ovo što si mi napisao je zapravo veza između JSP-a i servleta (doduše ja sam mislio da koristim beans). ono što mene muči jeste veza između servleta i mog mail servera. (očigledno koristim MVC.) :)

zapravo, nije mi jasan mehanizam povezivanja servleta sa serverom. trenutno je situacija takva da server prihvati konekciju sa klijenta. jedan klijent - jedna konekcija (jedan socket). i za svakog klijenta se kreira objekat koji posle logovanja se smešta u listu ulogovanih korisnika. kada klijent zatraži npr. listanje poruka, server vidi da li je on ulogovan i eventualno izlista poruke.

ovo sve radi sve dotle dok je klijent pokrenut. čim klijent završi rad, nestaje socket i server ga automatski izloguje. i tu nastaje problem! jer svaka veza servleta i mail servera traje samo toliko dok servlet ne preuzme podatke. ili ja grešim.

za sada mi deluje da je jedino rešenje (osim menjanja samog servera) da servlet pre bilo koje komande klijenta šalje "login", što stvara nepotrebni overhead.
 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
212.200.221.*



+7 Profil

icon Re: klijent + server + tomcat + JSP07.10.2006. u 02:22 - pre 213 meseci
Najbolje bi bilo da kompletnu logiku iz servera prebacis u servlet. Ako bas neces da diras server, onda mora da se budzi.
 
Odgovor na temu

lukeguy
Novi Sad

Član broj: 46545
Poruke: 470
80.93.253.*



+8 Profil

icon Re: klijent + server + tomcat + JSP07.10.2006. u 12:47 - pre 213 meseci
hvala puno na odgovoru! :) i ja sam dosta mozgao i ovo je jedino što mi je palo na pamet da bi moglo. videću šta mi od toga dvoje odnosi manje vremena, pa ću se odlučiti za tu varijantu.
 
Odgovor na temu

[es] :: Java :: klijent + server + tomcat + JSP

[ Pregleda: 2053 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.