Thread View: be.comp.programming
6 messages
6 total messages
Started by Zubke
Sun, 21 Mar 2004 09:24
Java Servlets Probleem
Author: Zubke
Date: Sun, 21 Mar 2004 09:24
Date: Sun, 21 Mar 2004 09:24
33 lines
2591 bytes
2591 bytes
Hoi, Ik zit met een vervelend probleem. We zijn momenteel aan het werken om een kleine website te maken voor een klachtenbehandeling in Java servlets. Nu zijn er een aantal dingen waar we geen rekening mee gehouden hebben. Dat is ook iets wat absoluut stom is van ons. Eventjes de technische omgeving schetsen. We werken met apache webserver en apache jserv. Als databank gebruiken we oracle. We hebben ten eerste geen jsp's gemaakt, enkel servlets. Nu het echte probleem is dat we voor elke package een controller gemaakt hebben en van die controller hebben we een singleton pattern gemaakt, waarvan we het object terugkrijgen dmv een statische methode getController(). Nu was ons gedacht dat die voor elke gebruiker die aanlogde 1 object ging aanmaken, dus als drie gebruikers ingelogd zij dat er drie verschillende objecten bestaan van dat singleton. Blijkbaar niet dus! want de twee andere gebruikers krijgen ineens alle rechten van de laatst ingelogde gebruiker. Omdat we dit veel te laat opgemerkt hebben komen we dus nu echt in tijdsnood. Weet iemand misschien een oplossing die vrij snel te verwezenlijken is. Het probleem is dus dat we elke keer een gebruiker inlogd een instantiatie moeten maken van elke controller en dat we aan die controller nog moeten aankunnen die voor die gebruiker geldt. Iemand een idee hoe we dit misschien toch nog eenvoudig kunnen oplossen. Als er nog dingen niet duidelijk zijn wil ik altijd wel antwoorden. Alvast duizend maal bedankt. Groeten, Jo
Re: Java Servlets Probleem
Author: Daniel Tryba
Date: Sun, 21 Mar 2004 10:44
Date: Sun, 21 Mar 2004 10:44
18 lines
1970 bytes
1970 bytes
In nl.comp.programmeren Zubke <zubkejv@hotmail.com> wrote: > Nu het echte probleem is dat we voor elke package een controller gemaakt > hebben en van die controller hebben we een singleton pattern gemaakt, > waarvan we het object terugkrijgen dmv een statische methode > getController(). Nu was ons gedacht dat die voor elke gebruiker die aanlogde > 1 object ging aanmaken, dus als drie gebruikers ingelogd zij dat er drie > verschillende objecten bestaan van dat singleton. Blijkbaar niet dus! want > de twee andere gebruikers krijgen ineens alle rechten van de laatst > ingelogde gebruiker. IMHO kan dat heel simpel. IPV de data "direct" in de singleton op te slaan, bevat de singletop een Map als storage voor je object. Als key dien je iets unieks te gebruiken wat gekoppeld is aan de ingelogde gebruiker, dus bv het sessionid. -- Daniel Tryba
Re: Java Servlets Probleem
Author: VoodooChile
Date: Sun, 21 Mar 2004 11:02
Date: Sun, 21 Mar 2004 11:02
57 lines
3987 bytes
3987 bytes
Zubke wrote: > Hoi, > > Ik zit met een vervelend probleem. We zijn momenteel aan het werken om een > kleine website te maken voor een klachtenbehandeling in Java servlets. Nu > zijn er een aantal dingen waar we geen rekening mee gehouden hebben. Dat is > ook iets wat absoluut stom is van ons. Eventjes de technische omgeving > schetsen. We werken met apache webserver en apache jserv. Als databank > gebruiken we oracle. We hebben ten eerste geen jsp's gemaakt, enkel > servlets. > > Nu het echte probleem is dat we voor elke package een controller gemaakt > hebben en van die controller hebben we een singleton pattern gemaakt, > waarvan we het object terugkrijgen dmv een statische methode > getController(). Nu was ons gedacht dat die voor elke gebruiker die aanlogde > 1 object ging aanmaken, dus als drie gebruikers ingelogd zij dat er drie > verschillende objecten bestaan van dat singleton. Blijkbaar niet dus! want > de twee andere gebruikers krijgen ineens alle rechten van de laatst > ingelogde gebruiker. > > Omdat we dit veel te laat opgemerkt hebben komen we dus nu echt in > tijdsnood. Weet iemand misschien een oplossing die vrij snel te > verwezenlijken is. Het probleem is dus dat we elke keer een gebruiker inlogd > een instantiatie moeten maken van elke controller en dat we aan die > controller nog moeten aankunnen die voor die gebruiker geldt. Iemand een > idee hoe we dit misschien toch nog eenvoudig kunnen oplossen. > > Als er nog dingen niet duidelijk zijn wil ik altijd wel antwoorden. > > Alvast duizend maal bedankt. > > Groeten, > > Jo > > > > kijk eens in de hibernate manual wat ze daar doen met ThreadLocals? En ipv per thread een controller een controller per sessie (in src.jar moet je ThreadLocal code wel vinden, copy paste naar SessonLocal.java en dan aanpassen ofzo. http://www.hibernate.org/42.html vergeet niet dat waar hier gesproken wordt over een sessie dat dit een Hibernate Session is, en niet een Session van een ingelogde user. Dus threadLocal maakt een session per request, niet per usersession (hopelijk is dit een beetje duidelijk uitgelegd). Dus dit is ongeveer het systeem, maar je moet niet per thread opslaan, maar per usersession...en dan zou het moeten werken. eneuhm, static Controller is voor iedereen dezelfde, dat is toch elementaire java...jammer dat zoiets stom je hele project blokkeert. Wat zitten securitygegevens trouwens in de controller te doen? Wat is er mis met die gegevens in de usersession te stoppen (en serverside nog te double checken)? Ik denk niet dat ik je design goed snap...
Re: Java Servlets Probleem
Author: Zubke
Date: Sun, 21 Mar 2004 11:07
Date: Sun, 21 Mar 2004 11:07
35 lines
2711 bytes
2711 bytes
"Daniel Tryba" <news_be.comp.programming@canopus.nl> schreef in bericht news:c3jrn1$9vn$1@news.tue.nl... > In nl.comp.programmeren Zubke <zubkejv@hotmail.com> wrote: > > Nu het echte probleem is dat we voor elke package een controller gemaakt > > hebben en van die controller hebben we een singleton pattern gemaakt, > > waarvan we het object terugkrijgen dmv een statische methode > > getController(). Nu was ons gedacht dat die voor elke gebruiker die aanlogde > > 1 object ging aanmaken, dus als drie gebruikers ingelogd zij dat er drie > > verschillende objecten bestaan van dat singleton. Blijkbaar niet dus! want > > de twee andere gebruikers krijgen ineens alle rechten van de laatst > > ingelogde gebruiker. > > IMHO kan dat heel simpel. IPV de data "direct" in de singleton op te > slaan, bevat de singletop een Map als storage voor je object. Als key > dien je iets unieks te gebruiken wat gekoppeld is aan de ingelogde > gebruiker, dus bv het sessionid. > > -- > > Daniel Tryba > Dank je Daniel voor je snel antwoord. Ik was ook al zo'n beetje in die richting aan het denken. Maar kan je het sessionId ook opvragen zonder dat je het HttpServletRequest object hebt? Ik zit dan weer te denken om het sessionId op te slaan in een coockie. Maar misschien is er ook een andere manier om altijd aan het sessionId te raken. En kan je ook de tijd instellen dat het sessionId actief moet blijven, omdat de gebruikers niet graag ineens uitgelogd willen zijn als ze hun middagpauze genomen hebben. mvg, Jo
Re: Java Servlets Probleem
Author: VoodooChile
Date: Sun, 21 Mar 2004 14:08
Date: Sun, 21 Mar 2004 14:08
54 lines
3213 bytes
3213 bytes
Zubke wrote: > "Daniel Tryba" <news_be.comp.programming@canopus.nl> schreef in bericht > news:c3jrn1$9vn$1@news.tue.nl... > >>In nl.comp.programmeren Zubke <zubkejv@hotmail.com> wrote: >> >>>Nu het echte probleem is dat we voor elke package een controller gemaakt >>>hebben en van die controller hebben we een singleton pattern gemaakt, >>>waarvan we het object terugkrijgen dmv een statische methode >>>getController(). Nu was ons gedacht dat die voor elke gebruiker die > > aanlogde > >>>1 object ging aanmaken, dus als drie gebruikers ingelogd zij dat er drie >>>verschillende objecten bestaan van dat singleton. Blijkbaar niet dus! > > want > >>>de twee andere gebruikers krijgen ineens alle rechten van de laatst >>>ingelogde gebruiker. >> >>IMHO kan dat heel simpel. IPV de data "direct" in de singleton op te >>slaan, bevat de singletop een Map als storage voor je object. Als key >>dien je iets unieks te gebruiken wat gekoppeld is aan de ingelogde >>gebruiker, dus bv het sessionid. >> >>-- >> >> Daniel Tryba >> > > > Dank je Daniel voor je snel antwoord. Ik was ook al zo'n beetje in die > richting aan het denken. Maar kan je het sessionId ook opvragen zonder dat > je het HttpServletRequest object hebt? Ik zit dan weer te denken om het > sessionId op te slaan in een coockie. Maar misschien is er ook een andere > manier om altijd aan het sessionId te raken. En kan je ook de tijd instellen > dat het sessionId actief moet blijven, omdat de gebruikers niet graag ineens > uitgelogd willen zijn als ze hun middagpauze genomen hebben. > > mvg, > > Jo > > String key = request.getSession().getId(); moet je natuurlijk wel ergens een sessie creeren... String key = request.getSession(true).getId(); zorgt ervoor dat er een sessie aangemaakt wordt als die nog niet voorkomt in de SessionContext.
Re: Java Servlets Probleem
Author: Stefan Arentz
Date: Thu, 25 Mar 2004 22:28
Date: Thu, 25 Mar 2004 22:28
14 lines
1398 bytes
1398 bytes
"Zubke" <zubkejv@hotmail.com> writes: ... > Het probleem is dus dat we elke keer een gebruiker inlogd > een instantiatie moeten maken van elke controller en dat we aan die > controller nog moeten aankunnen die voor die gebruiker geldt. Hopelijk ontcijfer ik je enorm kromme zinnen correct :) Waarom is het een probleem om voor elke 'hit' een controller te maken? Heb je een concreet performance probleem? Is dit premature optimalisatie? S.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads