Obtenir de l'actuelle session de l'objet en Java
Puis-je accéder à l'objet de session à partir de l'intérieur d'une fonction où la demande d'objet n'est pas présent?
Je sais en Java, nous avons accès à la session comme ceci:
HttpSession session = request.getSession(true);
Mais que faire si nous voulons accéder à la session lors de la demande de l'objet n'est pas présent?
Est-il possible? est t-il un autre moyen d'obtenir l'objet de session?
Modifier
J'ai une servlet
public class ABC extends HttpServlet
{
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException
{
..........
...........
myFun1(x,y,z);
}
private void myFun1(int x, int y,long z)
{
.........
myFun2(a,b);
}
private void myFun2(int a,String b)
{
.........
// Need Session here
}
}
Si vous n'avez pas le particulier demande comment voulez-vous savoir de quelle séance? Il pourrait y avoir plusieurs sessions live dans le processus.
Thnaks, je vais passer l'objet de demande pour des fonctions comme un paramètre supplémentaire.
Thnaks, je vais passer l'objet de demande pour des fonctions comme un paramètre supplémentaire.
OriginalL'auteur Manjoor | 2010-07-30
Vous devez vous connecter pour publier un commentaire.
Cela dépend de ce que tu veux dire par "quand demander l'objet n'est pas présent". Vous pourrait ont une variable locale de thread qui définit la "demande actuelle de ce fil" au début de la servlet ou ce que vous êtes en cours d'exécution (vous n'êtes pas clair). Ensuite, vous pourriez obtenir à "la requête en cours dans ce fil" à partir de n'importe où, et d'obtenir de la session de cette façon. (Ou dans le même esprit, vous pouvez régler le courant session au lieu de l'actuelle demande dans la variable locale de thread.)
Il n'est pas très jolie, et vous avez des problèmes, si vous voulez faire quelque chose sur un thread différent. Transmettre la demande ou de la session vers le bas comme une dépendance est généralement plus propre.
OriginalL'auteur Jon Skeet
De façon générale toutefois, si vous souhaitez accéder à la session http à partir d'un endroit où l'objet de la requête n'est pas disponible, alors vous pourriez avoir des problèmes de conception dans votre application et que vous avez besoin de repenser à propos de préoccupations, de superposition de couches, etc.
OriginalL'auteur cherouvim
Si vous mettez en œuvre JSF technologie dans votre application, vous pouvez accéder tout en appelant;
Parce que c'est une instance du singleton récupérées, vous pouvez y accéder de n'importe où dans la couche de présentation.
Cependant, la mise en œuvre de l'ACI est sans doute un peu exagéré, juste pour cela, puisque vous aurez probablement à faire beaucoup de changements dans votre configuration et la présentation de couches pour accueillir.
Cela dit, si vous décidez d'aller dans cette voie, vous pouvez aussi penser à l'aide de MyFaces, qui est un fantastique API pour les personnes utilisant JSF dans leurs applications.
Merci Balus, j'ai essayé de faire simple, mais vous avez entièrement raison.
OriginalL'auteur Alasdair
passant objet de demande est la solution,
OriginalL'auteur sohilv
Nous avons pour configurer un écouteur de type
HttpSessionListener
sa méthode sera appelée lors de la session moment de la création et de la distraction de temps. Si vous nous cela en préparant l'objet de cette classe, vous pouvez obtenir l'objet de Session tout simplement...OriginalL'auteur Pravin Kumar singh