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 :

JSF/J2EE - Problème de gestion de cache


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 116
    Par défaut JSF/J2EE - Problème de gestion de cache
    Bonjour à tous,

    Je rencontre un problème de gestion de cache sur mon application JSF. Lors de la connexion à mon application, une première page d'accueil propose aux clients la connexion par login/mdp.
    Si je fais plusieurs connexions à la suite, les champs se remplissent automatiquement avec le dernier identifiant, chose que je ne voudrais pas laisser.

    ET, si jamais dans ma base de données je n'ai plus de client, l'application ne se lance pas, car elle ne trouve plus de correspondance pour pré-remplir le champs, tout ceci venant du fait, que le cache stocke les infos.

    Auriez-vous une solution pour qu'au chargement de certaines pages, tout le cache soit vidé et que les champs soient tous vides ?

    Je suis débutant et j'espère avoir été clair.

    D'avance merci à tous !

  2. #2
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    salut comment as-tu declaré ta classe de login?
    ou le service qui va avec?
    Merci
    Eric

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 116
    Par défaut
    Salut,

    Comme ceci dans le web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <welcome-file-list>
            <welcome-file>connexion.xhtml</welcome-file>
        </welcome-file-list>
    Merci
    Fred

  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
    En ce qui me concerne, non, tu n'es pas clair...

    A priori, ce n'est pas un problème de cache, ce serait plutôt un mauvais scope pour le ManagedBean attaché à la page de login (sessionScope)

    Ou alors ce sont les valeurs déjà qui apparaissent lorsque tu commences à saisir dans le champ d'entrée, mais là, c'est le paramétrage du navigateur qui est en cause et autant dire que tu ne pourras pas déterminer celui du client.

    Bref, peux-tu préciser et montrer le code de la page de login, du bean associé ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Si c'est le navigateur qui mémorise le user / pass, tu pdeux désactiver en rajoutant l'attribut autocomplete="off" sur l'input (et pour autant que JSF le supporte, je n'ai jamais essayé).

    Sinon, commeOButterlin, je soupconne que ton bean est très mal fichu et fait des choses qu'il ne devrais pas faire

  6. #6
    Membre confirmé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 116
    Par défaut
    Bonjour à tous,

    j'ai en effet un gros doute sur la structure de mon code, voici :

    - connexion.xhtml
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"   
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:pou="http://primefaces.org/ui">
     
        <h:head>
            <link href="style.css" rel="stylesheet" type="text/css" title="Theme" />
        </h:head>
     
        <h:body>
            <div id="connexion">
                <h:form>
                    <pou:growl id="connexionGrowl" showDetail="true" sticky="true"/>
     
                    <pou:panel id="connexionPanel" header="Connexion" styleClass="panel">
                        <h:panelGrid columns="4">
                            <h:outputLabel value="Profil"/>
                            <h:outputLabel value="Identifiant"/>
                            <h:outputLabel value="Mot de passe"/>
                            <h:outputLabel value="Connexion"/>
     
     
                            <h:outputLabel value=" Client" />
                            <pou:inputText value="#{connectClient.login}"/>
                            <pou:inputText value="#{connectClient.mdp}" type="password"/>
                            <pou:commandButton id="clientButton" value="Connexion" actionListener="#{connectClient.connexionClient}" styleClass="button" action="accueilClient" update="connexionGrowl"/>
     
                        </h:panelGrid>
                    </pou:panel>
     
                    <pou:panel id="nouveauClientPanel" header="Nouveau Client" styleClass="panel" toggleable="true">
                        <h:panelGrid columns="4">
                            <h:outputLabel value="S'enregistrer :"/>
                            <pou:commandButton id="newCustomerButton" value="Formulaire" styleClass="button" action="ajoutClient"/>
     
                            <h:outputLabel value="Aide :"/>
                            <pou:commandButton id="helpButton" value="Contact" styleClass="button"/>
                        </h:panelGrid>
                </pou:panel>
                </h:form> 
            </div>
        </h:body>
    </html>
    - La managedBean associé :
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
     
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package DTO;
     
    import DAO.ConnecBDD;
    import Models.Client;
    import java.io.IOException;
    import java.io.Serializable;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import javax.faces.application.FacesMessage;
    import javax.faces.context.ExternalContext;
    import javax.faces.context.FacesContext;
    import javax.faces.event.ActionEvent;
     
    /**
     *
     * @author FixeFred
     */
    public class ConnectClient implements Serializable {
     
        //Objet Client
        private Client client;
        private String login;
        private String mdp;
     
        //Connexion BDD
        protected static final Connection bdd = ConnecBDD.getInstance();
     
        private Client clientTrouve;
     
        /**
         * Creates a new instance of connectClient
         */
        public ConnectClient() {
        }
     
        //authentification client
        public void connexionClient(ActionEvent event) throws IOException {
            FacesContext context = FacesContext.getCurrentInstance();
            ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
     
            if (login.equals("admin") & mdp.equals("admin")) {
                System.out.println("Connexion admin");
                context.addMessage(null, new FacesMessage("Identifié", "Bonjour Admin"));
                ec.redirect("./index.xhtml?faces-redirect=true");
     
            } else {
                System.out.println("Connexion client");
                String sqlClient = "Select nom, prenom, adresse, code_postale, ville, telephone, mobile, mail, identifiant, mdp FROM client WHERE identifiant = '" + login + "'";
                System.out.println(sqlClient);
                try {
                    Statement state = this.bdd.createStatement();
                    ResultSet rs = state.executeQuery(sqlClient);
                    rs.first();
                    setClientTrouve(new Client(rs.getString(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5), rs.getInt(6), rs.getInt(7), rs.getString(8), rs.getString(9), rs.getString(10)));
                    rs.close();
                    ec.redirect("./gestionClient.xhtml?faces-redirect=true");
                    context.addMessage(null, new FacesMessage("Identifié", "Bonjour " + clientTrouve.getPrenom()));
                } catch (SQLException e) {
                    System.out.println("Erreur authentification client : " + e.getMessage());
                    context.addMessage(null, new FacesMessage("Erreur", "Authentification refusée"));
                    ec.redirect("./connexion.xhtml?faces-redirect=true");
                }
            }
        }
     
        /**
         * @return the client
         */
        public Client getClient() {
            return client;
        }
     
        /**
         * @param client the client to set
         */
        public void setClient(Client client) {
            this.client = client;
        }
     
        /**
         * @return the login
         */
        public String getLogin() {
            return login;
        }
     
        /**
         * @param adminLogin the login to set
         */
        public void setLogin(String adminLogin) {
            this.login = adminLogin;
        }
     
        /**
         * @return the mdp
         */
        public String getMdp() {
            return mdp;
        }
     
        /**
         * @param adminMdp the mdp to set
         */
        public void setMdp(String adminMdp) {
            this.mdp = adminMdp;
        }
     
        /**
         * @return the clientTrouve
         */
        public Client getClientTrouve() {
            return clientTrouve;
        }
     
        /**
         * @param clientTrouve the clientTrouve to set
         */
        public void setClientTrouve(Client clientTrouve) {
            this.clientTrouve = clientTrouve;
        }
     
    }
    - Et enfin, le faces-config.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        <managed-bean>
            <managed-bean-name>connectClient</managed-bean-name>
            <managed-bean-class>DTO.ConnectClient</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
            <managed-property>
                <property-name>clientTrouve</property-name>
                <property-class>Models.Client</property-class>
                <value>#{clientTrouve}</value>
            </managed-property>
        </managed-bean>
    Dans le faces-config, j'ai du mal à comprendre comment et pourquoi déclarer les managed-property, ainsi que le fonctionnement de la persistance des objets.

    Pour moi 1 fichier .xhtml = 1 fichier .java = 1 managed bean déclaré dans le faces-config ?

    J'espère que ces éléments sont suffisants,

    Merci bcp !
    Fred

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

Discussions similaires

  1. Problème de header pour la gestion du cache
    Par Nico02 dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 16/10/2014, 18h36
  2. Gestion du cache - Renouvelement vue JSF
    Par Fred30 dans le forum JSF
    Réponses: 0
    Dernier message: 26/07/2012, 11h00
  3. Problème de gestion de Cache
    Par voschielle dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/10/2007, 12h40
  4. Problème de gestion fichiers
    Par glutock dans le forum ASP
    Réponses: 2
    Dernier message: 08/04/2004, 11h55
  5. [TFrame] Problème de gestion du OnMouseDown avec une Frame
    Par xherault dans le forum Composants VCL
    Réponses: 5
    Dernier message: 23/05/2003, 15h35

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