IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Savoir si une session existe


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de koack
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 60
    Par défaut Savoir si une session existe
    Bonjour,

    je souhaite tester dans une jsp(jsf) si une session est ouverte afin de pourvoir faire un lien (connection/deconnexion) en fonction du resultat. La session fonctionne avec JAAS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <c:choose>
             		<c:when test="????????????????????????????">
             			<h:commandLink action="MainAccount">
             			<h:outputText value="#{i18n.LABEL_Header_MyBankingAccount}"/>
             			</h:commandLink>
             		</c:when>
     
             		<c:otherwise>
             			<h:commandLink action="Main">
             			<h:outputText value="#{i18n.LABEL_Header_SignOff}"/>
             			</h:commandLink>
             		</c:otherwise>
             	</c:choose>
    Merci par avance pour les reponses

  2. #2
    Membre confirmé Avatar de koack
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 60
    Par défaut
    J'ai trouvé une solution a mon probleme mais desormais je voudrais savoir si cette solution est "une bidouille" ou alors un codage correct.

    Dans ma jsp j'ai ajouté ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <%@page import="java.security.Principal"%>
    <%	
    	boolean isConnected=false;
    	Principal principal = request.getUserPrincipal(); 
    	if(principal!=null){
    		isConnected = true;
    	}
    %>
    </head>
    
    <f:subview id="header">
    	
        <h:form>
        
        	<div style="float: left;">
    			<h:commandLink action="Main">
      			<h:graphicImage width="197" height="87" url="imgs/Logo.jpg"/>
      			</h:commandLink>
      		</div>
        	       
            <div style="float: left;">
            <div style="margin-left: 50px";>
            <span class="MainTitle">
                <h:outputText value="#{i18n.LABEL_Header_TitlePart1}"/>
                <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <h:outputText value="#{i18n.LABEL_Header_TitlePart2}"/>
            </span>
            </div>
            </div>
            
            <div style="float: right;">
                <span class="MainSignon">
                   	
             	<c:choose>
             		<c:when test="<%=isConnected%>">         			
    <h:commandLink action="#{ConnectionManagedBean.doSignOff}">
             			<h:outputText value="#{i18n.LABEL_Header_SignOff}"/>
             			</h:commandLink>
             		</c:when>
             	
             		<c:otherwise>
             			<h:commandLink action="MainAccount">
             			<h:outputText value="#{i18n.LABEL_Header_MyBankingAccount}"/>
             			</h:commandLink>
             		</c:otherwise>
             	</c:choose>
             	</span>
            </div>
          	
    	</h:form>
    	
    </f:subview>

  3. #3
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    Je te conseille de créer un taglib pour faire cela. Imagine que tu as 100 jsp et que tu te rends compte que ce code n'est pas suffisant, tu devras modifer tes 100 jps. Avec un taglib tu centralises le code!

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par koack Voir le message
    J'ai trouvé une solution a mon probleme mais desormais je voudrais savoir si cette solution est "une bidouille" ou alors un codage correct.
    c'est tout à fait correct.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé Avatar de koack
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 60
    Par défaut
    Merci pour les reponses.

    Je poste ma taglib pour ceux que ca pourrait interreser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
    	"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    <taglib>
    	<tlibversion>1.1</tlibversion>
    	<jspversion>1.1</jspversion>
    	<shortname>tex</shortname>
    	<uri></uri>
    	<info>Taglib de verification de connection</info>
    	<tag>
    		<name>isConnected</name>
    		<tagclass>com.Taglib.IsConnectedTag</tagclass>
    		<bodycontent>JSP</bodycontent>
    	</tag>
    	<tag>
    		<name>IfConnected</name>
    		<tagclass>com.Taglib.IfConnectedTag</tagclass>
    		<bodycontent>JSP</bodycontent>
    	</tag>
    	<tag>
    		<name>ElseConnected</name>
    		<tagclass>com.Taglib.ElseConnectedTag</tagclass>
    		<bodycontent>JSP</bodycontent>
    	</tag>
    </taglib>
    IsConnectedTag :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    package com.Taglib;
    import javax.faces.context.FacesContext;
    import javax.servlet.http.HttpSession;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.TagSupport;
     
    public class IsConnectedTag extends TagSupport {
     
    		public int doStartTag() throws JspException {
    			return EVAL_BODY_INCLUDE;
    		}
     
    		public boolean isConnected () {
     
    			FacesContext fc = FacesContext.getCurrentInstance();
    	        HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);
     
    	        if(session.isNew()){
    	        	return false;
    	        }
    	        else{
    				return true;
    			}
    		}
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    package com.Taglib;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.TagSupport;
     
    public class IfConnectedTag extends TagSupport {
     
    	public int doStartTag() throws JspException {
     
    		if ( getParent() instanceof IsConnectedTag ) {
    			IsConnectedTag parent = (IsConnectedTag) getParent();
    			if (parent.isConnected()){
    				return EVAL_BODY_INCLUDE;
    			}
    			else{
    				return SKIP_BODY;
    			}
    		}
    		throw new JspException ();
    	}
    }
    ElseConnectedTag :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    package com.Taglib;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.TagSupport;
     
    public class ElseConnectedTag extends TagSupport {
     
    	public int doStartTag() throws JspException {
    		if ( getParent() instanceof IsConnectedTag ) {
    			IsConnectedTag parent = (IsConnectedTag) getParent();
    			if (parent.isConnected()){
    				return SKIP_BODY;
    			}
    			else{
    				return EVAL_BODY_INCLUDE;
    			}
     
    		}
    		throw new JspException ();
    	}
    Que j'utilise sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <session:isConnected>
             		<session:IfConnected>
             			<h:commandLink action="#{ConnectionManagedBean.doSignOff}">
             			<h:outputText value="#{i18n.LABEL_Header_SignOff}"/>
             			</h:commandLink>
             		</session:IfConnected>
     
             		<session:ElseConnected>
             			<h:commandLink action="MainAccount">
             			<h:outputText value="#{i18n.LABEL_Header_MyBankingAccount}"/>
             			</h:commandLink>
             		</session:ElseConnected>
    </session:isConnected>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment savoir si une URL existe
    Par funzynator dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 07/11/2005, 20h56
  2. [VBA-E]Savoir si une sheets existe
    Par wind_vinch dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/10/2005, 14h31
  3. comment savoir si une table existe dans la base?
    Par isa21493 dans le forum ASP
    Réponses: 6
    Dernier message: 01/09/2005, 17h09
  4. Savoir si une table existe
    Par Sydaze dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/06/2005, 11h22
  5. [URL] Comment savoir si une URL existe?
    Par jse dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 07/10/2004, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo