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 :

application login password en jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut application login password en jsp
    Salut je passe un stage et il me reste trop peu de temps il faut que je fasse une application en jsp pour se connecter et se deconnecté et c qu une ptte partie de mon projet je ss debutant alors le password et login sont stockes dans un fichier txt aider moi et ne vous preocuppez pas de l aspect securité

    voici un exemple de mon redicule code:



    String login = request.getParameter("login");
    String pass = request.getParameter("pass");

    BufferedReader entree = new BufferedReader ( new FileReader ("c:\\password.txt"));
    while(true)
    {
    String lignelue = entree.readLine() ;
    if (lignelue == null) break ;
    StringTokenizer tok = new StringTokenizer(lignelue,"#") ;
    if ((tok.nextToken().compareTo(login) == 0)&&(tok.nextToken().compareTo(pass) == 0))
    {
    out.print("okokok");
    break;
    }
    else { continue;}
    }
    entree.close();
    --------------------------------------------------------------------------
    non mon code ne marche pas et "login" c'est le non de la zone de saisie texte ainsi que "pass"
    les ereuresc :
    --------------------------------------------------------------------------
    type Rapport d'exception

    message

    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

    exception

    org.apache.jasper.JasperException: Exception in JSP: /login.jsp:35

    32: String lignelue = entree.readLine() ;
    33: if (lignelue == null) break ;
    34: StringTokenizer tok = new StringTokenizer(lignelue,"#") ;
    35: if ((tok.nextToken().compareTo(login) == 0)&&(tok.nextToken().compareTo(pass) == 0))
    36: {
    37: out.print("okokok");
    38: break;


    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

    cause mère

    java.lang.NullPointerException
    java.lang.String.compareTo(String.java:1168)
    org.apache.jsp.login_jsp._jspService(login_jsp.java:78)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.5.17.

  2. #2
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    Dis nous a quoi te sert le mot de passe et login ca a l'air évidant mais faut préciser pour qu'on puis t'aider. bon je vais diner et j'attend ta reponse et t'aiderais car j'en ai le temps sauf si il y a LYLY Roche à la télé
    Allez keep cool, on auras le temps.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Question idiote, mais importante : ton code marche-t-il ? (ca semble évident que non, mais tu ne le dis pas...)
    Et, sinon, quel(les) erreur(s) obtiens-tu ?

    Je n'ai pas dépioté ton code, mais à première vue, même si c'est largement perfectible, tu procèdes comme il faut.

  4. #4
    Membre éprouvé Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Par défaut
    Bonsoir
    A la place de ton compareto essai d'utliser la methode String.equals(String)
    Vu que ton token c'est un string...

  5. #5
    Membre éprouvé Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Par défaut
    en plus je crois que quand tu appelles la methode nextToken() dans le if tu avance de ce fait d'un token
    Donc tu avance deux fois dans ton "if" une fois pour ton login et une fois pour ton pass...
    donc du coup quand tu verifies ton login t a deja ton token sur pass et kan tu verifie ton pass t sur rien donc NULL...

    A a connaissance je crois que c'est ca ton NullExcption.. a verifier j suis plus tres sur...

  6. #6
    Membre éprouvé Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Par défaut
    Tiens je t'ai ecris un code java qui te permet de faire ce que tu voulais... il faut que tu l'adaptes avec tes request.getParameter()..
    J'ai supposé que a première ligne de ton fichier etait le login et que la deuxieme ligne de ton fichier etait le mot de passe
    ex: dans param.txt on a login
    motDePasse

    voila le code (tu peux le tester tu cré un fichier bidon tu met un login et un mot de passe) et tu lance java fichier.java nomDuFichier en ligne de commande et tu verras ca fonctionne nikel...

    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
     
    import java.io.*;
     
    class LireLoginPwd
    {
      public static void main(String[] argv) throws IOException
      {
        BufferedReader buffer = null;
        String motDePasseDansFichier, loginDansFichier;
        String motDePasseEntre="passe";
        String loginEntre="login";
     
        try
          {
            //J'ouvre le fichier assé en argument en lecture à la place de argv[0] met le nom de ton ficher en dur "ex:monfichier.txt"
    	buffer = new BufferedReader(new FileReader(argv[0]));
          }
        catch(FileNotFoundException exc)
          {
    	System.out.println("Erreur d'ouverture du fichier!");
          }
         //Je lis la premiere ligne
         loginDansFichier = buffer.readLine();
         //Je lis la deuxieme ligne
         motDePasseDansFichier = buffer.readLine();
     
         //Je ferme le fichier IMPORTANT!!
         buffer.close();
     
         //Je teste
        if(loginDansFichier!=null && motDePasseDansFichier!=null && loginDansFichier.equals(loginEntre) && motDePasseDansFichier.equals(motDePasseEntre))
          System.out.println("Ok, c'est valide!");
        else
          System.out.println("erreur login ou mot de passe");
     
      }
    }
    Je remache le boulot moi lol En esperant que ca te convienne.. c'est un plaisir!!

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Citation Envoyé par kore62
    en plus je crois que quand tu appelles la methode nextToken() dans le if tu avance de ce fait d'un token
    Donc tu avance deux fois dans ton "if" une fois pour ton login et une fois pour ton pass...
    donc du coup quand tu verifies ton login t a deja ton token sur pass et kan tu verifie ton pass t sur rien donc NULL...

    A a connaissance je crois que c'est ca ton NullExcption.. a verifier j suis plus tres sur...
    Bien vu kore, en effet, il faut faire attention au nextToken(), et de manière générale à toutes les méthodes next. Stocke la valeur de nextToken() dans une variable, et ne réutilise nextToken que quand tu veux vraiment le token suivant.

    Note : évite ce genre de code
    Ca a l'air anodin, mais quand il y en a un certain nombre dans du code, il devient imcompréhensible (car on ne comprend pas, à première vue, la fonction de ta boucle). En plus, tu as toujours le risque de boucle infinie si ta boucle est mal codée.

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Une petite remarque :
    il est conseillé dans la javadoc de ne plus utiliser StringTokenizer et de la remplacer par la méthode split() de la classe String. (qui est d'ailleurs plus facile à utiliser).

  9. #9
    Membre averti
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Citation Envoyé par fr1man
    Une petite remarque :
    il est conseillé dans la javadoc de ne plus utiliser StringTokenizer et de la remplacer par la méthode split() de la classe String. (qui est d'ailleurs plus facile à utiliser).
    et comment l utiliser ce split

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276

  11. #11
    Membre averti
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    merci les amis
    voici mon code finale j ai resolu le prob grace a vous merci la communauté des develloppeurs et surtou a philcmoi est kore62 fr1man mixouille
    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
     
    import java.io.*;
    import java.util.*;
     
    public class LireLoginPwd {
     
    public static void main(String[] argv) throws IOException
      {
        BufferedReader buffer = null;
        String chaine , motDePasseDansFichier , loginDansFichier ;
        String motDePasseEntre="kerout";
        String loginEntre="amine";
     
        try
          {
    	buffer = new BufferedReader(new FileReader("C:\\password.txt"));
          }
        catch(FileNotFoundException exc)
          {
    	System.out.println("Erreur d'ouverture du fichier!");
          }
     
         chaine = buffer.readLine(); 
     
          while( chaine !=null )
         {
          StringTokenizer st = new StringTokenizer(chaine,"#");
     
          loginDansFichier = st.nextToken();
          motDePasseDansFichier = st.nextToken();
     
          if ( loginDansFichier.equals(loginEntre) &&  motDePasseDansFichier.equals(motDePasseEntre) )
          { System.out.println("Ok, c'est valide!"); break; }
          chaine = buffer.readLine();
         }    
         if ( chaine == null ) { System.out.println("erreur login ou mot de passe"); }
         buffer.close();
      }
    }
     
    //password.txt est formaté de la facon suivante
    //login1#pass1
    //login2#pass2

  12. #12
    Membre éprouvé Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Par défaut Code adapte a plusieurs lecture login/pwd
    Tiens vlà la version que tu m'as demandée...
    Avec plusieurs login mot de passe dans ton fichier...
    Tiens je t'ai fait la version avec le "trouve==false"
    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
     
    import java.io.*;
     
    class LireLoginPwd
    {
      public static void main(String[] argv) throws IOException
      {
        BufferedReader buffer = null;
        String motDePasseDansFichier, loginDansFichier;
        String motDePasseEntre="passe";
        String loginEntre="login";
        boolean trouve=false;
        try
          {
            //J'ouvre le fichier assé en argument en lecture à la place de argv[0] met le nom de ton ficher en dur "ex:monfichier.txt"
    	buffer = new BufferedReader(new FileReader(argv[0]));
          }
        catch(FileNotFoundException exc)
          {
    	System.out.println("Erreur d'ouverture du fichier!");
          }
     
          //On lis une premiere fois pour initialiser les variables loginDansFichier et motDePasseDansFichier pour le test dans le "while"
     
           //Je lis la premiere ligne
            loginDansFichier = buffer.readLine();
           //Je lis la deuxieme ligne
            motDePasseDansFichier = buffer.readLine();
     
         //j'arrete la boucle si j'ai trouve ou si loginDansFichier==null donc fin de fichier...
         while((trouve==false) && (loginDansFichier!=null))
         {
            //Je teste cas trouve
            if(loginDansFichier!=null && motDePasseDansFichier!=null && loginDansFichier.equals(loginEntre) && motDePasseDansFichier.equals(motDePasseEntre))
            {
            	trouve=true;
                    System.out.println("Ok, c'est valide!");
            }
     
            //Je lis la ligne suivante
            loginDansFichier = buffer.readLine();
            //Je lis la ligne suivante
            motDePasseDansFichier = buffer.readLine();
         }
     
         //Cas pas trouve dans le fichier...
         if(trouve==false)
          System.out.println("erreur login ou mot de passe");
     
          //On ferme le fichier...
          buffer.close();
     
      }
    }
    Et vlà la version qui te fait economiser une variable booleen donc sans la trouve==false dans le while... Les deux fonctionne mais perso j prendrai la deuxieme...

    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
     
    import java.io.*;
     
    class LireLoginPwd
    {
      public static void main(String[] argv) throws IOException
      {
        BufferedReader buffer = null;
        String motDePasseDansFichier, loginDansFichier;
        String motDePasseEntre="passe";
        String loginEntre="login";
     
        try
          {
            //J'ouvre le fichier assé en argument en lecture à la place de argv[0] met le nom de ton ficher en dur "ex:monfichier.txt"
    	buffer = new BufferedReader(new FileReader(argv[0]));
          }
        catch(FileNotFoundException exc)
          {
    	System.out.println("Erreur d'ouverture du fichier!");
          }
     
          //On lis une premiere fois pour initialiser les variables loginDansFichier et motDePasseDansFichier pour le test dans le "while"
     
           //Je lis la premiere ligne
            loginDansFichier = buffer.readLine();
           //Je lis la deuxieme ligne
            motDePasseDansFichier = buffer.readLine();
     
         //j'arrete la boucle si j'ai trouve ou si loginDansFichier==null donc fin de fichier...
         while(loginDansFichier!=null)
         {
            //Je teste cas trouve
            if(loginDansFichier!=null && motDePasseDansFichier!=null && loginDansFichier.equals(loginEntre) && motDePasseDansFichier.equals(motDePasseEntre))
            {
                    System.out.println("Ok, c'est valide!");
                    break;
            }
     
            //Je lis la ligne suivante
            loginDansFichier = buffer.readLine();
            //Je lis la ligne suivante
            motDePasseDansFichier = buffer.readLine();
         }
     
         //Cas pas trouve dans le fichier...
         if(loginDansFichier==null)
          System.out.println("erreur login ou mot de passe");
     
          //On ferme le fichier...
          buffer.close();
     
      }
    }

  13. #13
    Membre éprouvé Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Par défaut
    bon j'ai une solution pour ton prb pour gerer le bouton precedent... pas tres esthetique mais ca fonctionne... (c'est mieux que rien! )

    Quand tu clique sur ton bouton deconnexion ou ton lien...
    Tu appel une servlet de deconnexion qui renvoie vers la page que tu desires....

    Voici le code de ma servlet deconnexion qui permet de faire la redirection vers la page intermediaire (blank.jsp):

    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
     
    package maServlet;
     
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    /**
     * Servlet implementation class for Servlet: DeconnexionSVR
     *
     */
     public class DeconnexionSVR extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
        /* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#HttpServlet()
    	 */
    	public DeconnexionSVR() {
    		super();
    	}   	
     
    	/* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		 //Je met le client en session
    	      HttpSession session = request.getSession() ;
    	      session.removeAttribute("leClient");
    	      //Je redirige vers une page intermediaire...
    	      getServletContext().getRequestDispatcher("/index.jsp?log=firstlog").forward(request,response);
    	}  	
     
    	/* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(request, response);
    	}   	  	    
    }
    Voici le code a deux balles de la page blank.jsp (page intermediaire):

    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
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    </head>
    <script language="Javascript">
        setTimeout(function(){monForm.submit();},0);
    </script>
    <body>
    <form name="monForm" action="index.jsp?log=nonfisrtlog" action="post"></form>");
    </body>
    </html>
    Et voici ce que tu dois faire pour ta page index.jsp:

    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
     
    <html>
    <title>
    Connexion au site...
    </title> 
    <body>
    <%
    if("firstlog".equals(request.getParameter("log")))
             getServletContext().getRequestDispatcher("/blank.jsp").forward(request,response);
    %> 
    <h3>Identifiez vous...</h3>
    <hr/>
    <form action="VerifConnectionSVR" method="POST">
    <table border=0 style="text-align:right">
    <tr><td>Identifiant:&nbsp; </td><td><input type="text" name="identifiant"></td></tr>
    <tr><td>Mot de passe:&nbsp; </td><td><input type="password" name="motDePasse"></td></tr>
    <tr><td></td><td><input type="submit" value="Envoi"></td></tr>
    <tr colspan=2><td>Pour s'enregistrer cliquez <a href="formNouveauClient.jsp">ici</a></td></tr>
    </table>
    <%
    if("log".equals(request.getParameter("error")))
            out.print("<hr/>Veuillez vous loggé!!!");
    %>
    </form>
    </body>
    </html>
    Je redirige vers la page index avec un parametre en plus firstlog permet de dire a ta page d'aller se rediriger vers blank.jsp.
    Comme ca le precedent de index.jsp devient blank.jsp qui redirige elle meme vers sa source index.jsp avec un parametre modifié qui lui dit de rester sur index.jsp (en l'occurence log=nonfisrtlog..)

    Donc la variable log permet d'eviter de boucler a l'infini..
    Quand log=firstlog alors redirection vers blank.jsp
    Si log=nonfirstlog alors index.jsp s'affiche

  14. #14
    Membre éprouvé Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Par défaut
    Bon comme promis voici la nième version pour ton cas...
    Cette fois ci pas de servlet mais que des jsp ce que je trouve un peu dommage mais bon c'est ton choix.....
    Donc voici les differents fichiers entrant en jeu:
    La gestion du bouton precedent est gérée et je charge les variables entree dans le formulaire pour comparer dans le fichier password.txt que j'ai placé au chemin D:\\password.txt.
    Tiens voici les differents fichiers:

    index.jsp:

    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
    <html>
    <title>
    Connexion au site...
    </title> 
    <body>
    <%
    if("firstlog".equals(request.getParameter("log")))
             getServletContext().getRequestDispatcher("/blank.jsp").forward(request,response);
    %> 
    <h3>Identifiez vous...</h3>
    <hr/>
    <form action="verifConnection.jsp" method="POST">
    <table border=0 style="text-align:right">
    <tr><td>Identifiant:&nbsp; </td><td><input type="text" name="identifiant"></td></tr>
    <tr><td>Mot de passe:&nbsp; </td><td><input type="password" name="motDePasse"></td></tr>
    <tr><td></td><td><input type="submit" value="Envoi"></td></tr>
    </table>
    <%
    if("error".equals(request.getParameter("log")))
            out.print("<hr/>Erreur de login ou de mot de passe..");
    %>
    </form>
    </body>
    </html>
    index.jsp appelle verifConnexion.jsp qui redirige vers les pages bienvenue.jsp (si login et pwd valide) ou vers index.jsp (si pas valide) :

    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <%@page import="java.io.*,java.util.*;" %>
    <% 
        BufferedReader buffer = null;
        String chaine , motDePasseDansFichier , loginDansFichier ;
        String motDePasseEntre=request.getParameter("motDePasse");
        String loginEntre=request.getParameter("identifiant");
     
        try
          {
            buffer = new BufferedReader(new FileReader("D:\\password.txt"));
          }
        catch(FileNotFoundException exc)
          {
            System.out.println("Erreur d'ouverture du fichier!");
          }
         
         chaine = buffer.readLine(); 
     
          while( chaine !=null )
         {
          StringTokenizer st = new StringTokenizer(chaine,"#");
             
          loginDansFichier = st.nextToken();
          motDePasseDansFichier = st.nextToken();
         System.out.println(loginDansFichier);
         System.out.println(motDePasseDansFichier);
          if ( loginDansFichier.equals(loginEntre) &&  motDePasseDansFichier.equals(motDePasseEntre) )
          { System.out.println("c'est valide");     break;}
          chaine = buffer.readLine();
         }  
          buffer.close();
         if ( chaine == null ) { getServletContext().getRequestDispatcher("/index.jsp?log=error").forward(request,response); }
         else{
             getServletContext().getRequestDispatcher("/bienvenue.jsp").forward(request,response); 
         }
             
            
      
    %>
    </body>
    </html>
    J'ai gardé ta lecture du type login#motdepasse avec plusieurs ligne dans le fichier password.txt

    maintenant voici bienvenue.jsp que tu pourras modifier.. Tu changes les adresses c'est juste une page test.. Elle me permet d'afficher le bouton de deconnexion pour te montrer le fonctionnement de la deconnexion du client...

    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
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Page de deconnexion</title>
    </head>
    <body>
    <h3>Pour deconnecter cliquez ici...</h3>
    <hr/>
    <form action="index.jsp?log=firstlog" method="post">
    <table>
    <tr><td><input type="submit" value="Deconnexion"></td></tr>
    </table>
    </form>
    </body>
    </html>
    maintenant voici blank.jsp c'est la page de redirection vers index.jsp qui permet de gerer le bouton precedent du navigateur pour eviter le retour a la page precedente apres une deconnection...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    </head>
    <script language="Javascript">
        setTimeout(function(){monForm.submit();},0);
    </script>
    <body>
    <form name="monForm" action="index.jsp?log=nonfisrtlog" action="post"></form>");
    </body>
    </html>
    Et voila normalement tout fonctionne (j'ai testé l'appli avec le fichier password.txt suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    err#fsfd
    amine#kerout
    opreo#dsfsdf
    je te rappelle qu'il est placé au chemin suivant... A toi de gerer tes acces aux diferentes pages... t'as juste a changer les appels dans la page verifConnexion.jsp

    Voili voilou en esperant que ca te corresponde..

  15. #15
    Membre éprouvé Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Par défaut
    y'a une tache qui sert a rien dans blank.jsp notamment apres la balise"</form>
    Vire le ");" pour eviter d'afficher cela a l'ecran...

    C'est en adaptant j'ai oublié de l'effacer...

    Si tu veux mettre le focus automatiquement sur le champ identifiant prend plutot le code de index.jsp comme suit...
    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
    <html>
    <title>
    Connexion au site...
    </title> 
    <body onLoad="document.monForm1.identifiant.focus();">
    <%
    if("firstlog".equals(request.getParameter("log")))
             getServletContext().getRequestDispatcher("/blank.jsp").forward(request,response);
    %> 
    <h3>Identifiez vous...</h3>
    <hr/>
    <form name="monForm1" action="verifConnection.jsp" method="POST">
    <table border=0 style="text-align:right">
    <tr><td>Identifiant:&nbsp; </td><td><input type="text" name="identifiant"></td></tr>
    <tr><td>Mot de passe:&nbsp; </td><td><input type="password" name="motDePasse"></td></tr>
    <tr><td></td><td><input type="submit" value="Envoi"></td></tr>
    </table>
    <%
    if("error".equals(request.getParameter("log")))
            out.print("<hr/>Erreur de login ou de mot de passe..");
    %>
    </form>
    </body>
    </html>

Discussions similaires

  1. Interface login password
    Par liverbird dans le forum C++
    Réponses: 6
    Dernier message: 08/06/2006, 13h13
  2. [inernet][WinXp] probleme de login password
    Par gentarik dans le forum Windows XP
    Réponses: 3
    Dernier message: 22/02/2006, 16h25
  3. [C#] Authentification login/password
    Par liliprog dans le forum ASP.NET
    Réponses: 14
    Dernier message: 26/08/2005, 17h06
  4. Enregistrer les infos login/password sur le client
    Par SheikYerbouti dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/04/2005, 09h29
  5. Login Password par défaut
    Par YanK dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/09/2003, 14h34

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