application login password en jsp
Salut je passe un stage et il me reste trop peu de temps :piou: 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 :bebe: alors le password et login sont stockes dans un fichier txt aider moi et ne vous preocuppez pas de l aspect securité :help:
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.
Code adapte a plusieurs lecture login/pwd
:king: 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:
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:
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();
}
} |