Accéder à request dans une classe

Accéder à request dans une classe - Java - Programmation

Marsh Posté le 02-06-2005 à 14:29:24    

Bonjour,
 
Besoin d'un petit coup de main...
(Eclipse + Tomcat)
 
J'ai d'un côté une JSP qui appelle une méthode statique, disons page.jsp :
 

Citation :

out.print(Utilisateur.getNom());


 
J'ai donc aussi une classe Utilisateur, disons Utilisateur.java :
 

Citation :


public class Utilisateur{
   public static String getNom()
   {
     return "toto";
   }
}


 
 
Evidemment, je ne veux pas que ça renvoie "toto" mais un objet String (en réalité un objet bien + complexe mais bon) qui est en session !
Mon problème c'est d'accéder à request dans ma classe Utilisateur et plus précisément dans la méthode getNom. Comment c'est qu'on fait donc ??? (il est évidemment hors de question de mettre request en paramètre :P vu qu'au final je veux que cette fonction soit utilisée par un tag)
 
Merci d'avance.

Reply

Marsh Posté le 02-06-2005 à 14:29:24   

Reply

Marsh Posté le 02-06-2005 à 14:35:53    

Problème de conception?? non?  
Ou alors j'ai pas tout compris

Reply

Marsh Posté le 02-06-2005 à 14:46:17    

Plus tôt dans l'appli, je mets un objet en session :
 

Citation :


request.getSession().setAttribute("Nom", "toto" );


 
Si je faisais tout dans le JSP qui affiche le nom, je pourrais faire un  
 

Citation :


out.print((String)request.getSession().getAttribute("Nom" ));


 
Or, le but c'est de pouvoir faire ça au sein d'une classe qui elle n'accède pas directement à request. Comment donc accéder à request dans ma classe Utilisateur ?

Reply

Marsh Posté le 02-06-2005 à 14:49:19    

Bah tu passe par un setters de la classe  :??:  
J'ai pas du bien comprendre

Reply

Marsh Posté le 02-06-2005 à 14:57:28    

A la base je suis surtout dev ASP/PHP je débute en Java donc il est très possible que je m'y prenne mal...
 
Il n'empêche que j'ai une variable en session et que je veux pouvoir y accéder dans une classe... Je veux que la méthode ailler chercher cette info, je ne veux pas que dans chaque JSP on doive aller chercher cette variable et la passer en paramètre de ma méthode...
 
Donc ma question est : une classe java peut-elle accéder aux objets request, response, etc ?

Reply

Marsh Posté le 02-06-2005 à 15:01:02    

Moi je penserais pour un problème de conception

Reply

Marsh Posté le 02-06-2005 à 15:05:22    

Bah explique moi comment tu fais en java pour écrire une classe dont l'une des méthodes, statique, aille récupérer une variable mise en session... (sachant que cette classe n'est pas une servlet si j'ai bien compris ce qu'est une servlet)

Reply

Marsh Posté le 02-06-2005 à 15:06:39    

bah avec un setter
 
Edit : c'est quoi une servlet pour toi?


Message édité par cesarr89 le 02-06-2005 à 15:07:08
Reply

Marsh Posté le 02-06-2005 à 15:13:03    

J'ai cru comprendre qu'une servlet était une classe qui faisait un extends de HttpServlet et qui donc connait implicitement request et response dès lors qu'on l'appelle par un formulaire ou une URL. Ce qui n'a rien à voir avec mon cas.
 
Donc je dois utiliser un setter. As tu un exemple de code, je vois pas très bien à quoi ça va me servir à récupérer un truc qui est en session... ?

Reply

Marsh Posté le 02-06-2005 à 15:18:13    

bah dans ta classe Utilisateur du début tu rajoute:
 
public setNom(String nom){
   this.nom = nom;
}
 

Reply

Marsh Posté le 02-06-2005 à 15:18:13   

Reply

Marsh Posté le 02-06-2005 à 15:31:03    

Bien sûr.
C'est ce que j'ai fait, c'est en fait mon objet Utilisateur qui est en session.
Maintenant, je veux au sein d'une fonction, pourvoir accéder à mon utilisateur et ainsi pour voir faire un getNom(). Le problème reste entier : accéder à un objet qui est en session depuis une classe qui ne connait pas directeent l'objet request !

Reply

Marsh Posté le 02-06-2005 à 15:35:27    

bah dans la méthode tu mets un parametre et au lieu de passer la request, tu passe l'objet utilisateur

Reply

Marsh Posté le 02-06-2005 à 16:34:51    

cesarr89 a écrit :

bah dans la méthode tu mets un parametre et au lieu de passer la request, tu passe l'objet utilisateur


 
Je ferais de la même manière. Je ne vois pas d'autres moyens que de passer en paramètre depuis le jsp à la méthode.
 
A moins d'utiliser une Servlet.

Reply

Marsh Posté le 02-06-2005 à 16:35:31    

nevin0u a écrit :

Je ferais de la même manière. Je ne vois pas d'autres moyens que de passer en paramètre depuis le jsp à la méthode.
 
A moins d'utiliser une Servlet.


 
Bah ouai je vois pas non plus

Reply

Marsh Posté le 04-06-2005 à 02:30:11    

pourquoi faut-il que la méthode soit statique ?
si elle a besoin de données liées à un utilisateur ou à une requête, c'est surement qu'elle ne doit pas être statique : elle dépend d'un contexte d'execution.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed