Erreur au niveau de ma page jsp [Résolu]

Messages postés
4
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
8 mai 2009
- - Dernière réponse : cs_DARKSIDIOUS
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
- 29 avril 2009 à 14:10
Bonjour à tous ,
Voila je suis debutant en J2ee et je vous voudrais lister ma table mais a chaque fois il me renvoit une erreur 404 page not found et je sais pas la cause voici mon code .
<%@ page language= "java"  pageEncoding="ISO-8859-1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
        
    <title>My JSP 'testlogin.jsp' starting page</title>

  </head>
  
  
  
  
[[http://  INSERER UNE NOUVELLE DONNEE]] - [[http://   RECHERCHE AVEC REQUETES MYSQL ]] - [  HOME ]

  LISTE DES DONNEES  
  

<%@ page import="java.sql.*" %>

<%! // --------------- inits for the servlet --------------

// Connection à la base de donnée

Connection con;

// The statement

Statement stmt;

// The queryString

String queryString = "select * from compte";

// ---- configure this for your site

//String username = "nobody";

//String password = null;

// The URL that will connect to TECFA's MySQL server

// Syntax: jdbc:TYPE:machine:port/DB_NAME

// String url = "jdbc:mysql://localhost:3306/staf2x";

String url = "jdbc:mysql://localhost:1444/teste";

%>

<% // --------------- code for the service method --------------

// Let's see if we got a request

if ((queryString != "") &amp;&amp; (queryString != null)) {

 

try {

Class.forName("org.gjt.mm.mysql.Driver");

// Establish Connection to the database at URL with usename and password

con = DriverManager.getConnection(url);

out.println ("La connection avec la base de donnée est établie"+ "");

} catch (Exception e) // (ClassNotFoundException and SQLException)

{

throw(new UnavailableException(this, "Désolé ! la connection à la base de donnée n'est pas établie"+ "
"));

}

try {

out.println("\");

stmt = con.createStatement();

ResultSet rs = stmt.executeQuery(queryString);

ResultSetMetaData rsMeta = rs.getMetaData();

// Get the N of Cols in the ResultSet

int noCols = rsMeta.getColumnCount();

out.println(\"----
\");

for (int c=1; c<=noCols; c++) {

String el = rsMeta.getColumnLabel(c);

out.println(\" " + el + "  |\");

}

out.println(\"\");

while (rs.next()) {

out.println(\"----
\");

for (int c =1; c<=noCols; c++) {

String el = rs.getString(c);

out.println(\"" + el + ", \");

}

out.println(\"\");

}

out.println("
"+ "
");

out.println ( "Requête: " + queryString + "
" );

}

catch (SQLException ex ) {

out.println ( "" );

while (ex != null) {

out.println("Message: " + ex.getMessage ());

out.println("SQLState: " + ex.getSQLState ());

out.println("ErrorCode: " + ex.getErrorCode ());

ex = ex.getNextException();

out.println("");

}

out.println ( "

" );

}

}

%>

<hr id="20" align="left" width="45%" noshade>
 rane


Merçi de bien vouloir m'aider
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
83
3
Merci
Ben en fait, tout ton code Java doit être dans la servlet.

Mais là ce n'est pas une servlet que tu as fait, c'est uniquement une simple classe Java : rien à voir !

Je te conseille vivement de regarder des tutoriaux sur J2EE pour comprendre comment développer une servlet (tu en as d'excellents sur le site de developpez.com), et comprendre le cycle de vie de la servlet, les avantages d'utiliser une servlet au lieu de tout coder bêtement dans une jsp, comprendre le pattern MVC, et quels sont les frameworks à utiliser afin de faciliter largement le développement J2EE et gagner beaucoup de temps !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 223 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
83
0
Merci
Salut,

Déjà, une grosse erreur de débutant à ne surtout pas faire : mettre du code Java dans la jsp !!!

Java est fait pour séparer les couches d'une application, pas faire comme en PHP où l'on mélange allégrement du code PHP, du javascript, du HTML et du CSS dans le même fichier !

Donc fais une servlet qui se charge de la connection à la base de données et qui envoie les données à afficher à ta page jsp, et déjà tu y verra bien plus clair.
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
4
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
8 mai 2009
0
Merci
Merci Dark
Voila j'ai fait un petit changement voila j'ai crée comme suggéré un servlet et une page jsp voici les 2 pages
package com.servlet.Teste;
import java.sql.*;

public class ConnectionBase {
    private Connection con=null;
    private Statement stmt=null;
    private String url=new String("jdbc:mysql://localhost:1444/teste");
   
   
   
    public boolean ConnecToSQL()
    {
        try
        {
            /**Chargement du pilote*/
            Class.forName("org.gjt.mm.Driver");
            /**Etablissement de la connexion à la base de données
             *
             */
            con=DriverManager.getConnection(url);
            stmt=con.createStatement();
            return true;
        }
        catch(SQLException ex)
        {
            System.out.println(ex.getMessage().toString() + "Pas de connexion a la base de données !! ");
            ex.printStackTrace();
            return false;
        }
        catch(ClassNotFoundException ex)
        {
            System.out.println(ex.getMessage().toString() + "Trouve pas le code source");
            ex.printStackTrace();
            return false;
        }
    }
public ResultSet Request(String req)
{
    ResultSet rs = null;
    try
    {
        rs = stmt.executeQuery(req);
        return rs;
    }
    catch(SQLException ex)
    {
        rs =null;
        return rs;
    }
}

public boolean CloseSql()
{
    try
    {
        this.con.close();
        this.stmt.close();
        return true;
    }
    catch(SQLException ex)
    {
        System.out.println(ex.getMessage().toString() + "Impossible de fermer la connexion et requete");
        return false;
    }
}
}

 et voici le jsp

<%@ page contType="text/html" %>
<%@ page pageEncoding="UTF-8"%>
<%@ page import="java.sql.*%>
<%@ page import=com.servlet.Teste.ConnectionBase;%>
<html>
<head>
<title>Identification</title>
</head>

JSP Teste connection base de donnée

<%
boolean isOK = false;
ConnectionSQL3 myConn = new ConnectionSQL3();

isOK = myConn.ConnectToSQL();

if(!isOK)
{
out.println("Erreur détectée");
}
else
{
out.println("OK");
ResultSet rs1= myConn.Requete("SELECT * from compte where login= " +login+" and password=" +password+");
int i=0;
while(rs1.next)
{
i++;
out.println("<li>" +i+""+rs1.getString("login") +"-" +rs1.getString("password"));
}
myConn.CloseSql();
}

%>

</html>
Commenter la réponse de cs_rane
Messages postés
4
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
8 mai 2009
0
Merci
et il me renvoit cette erreur

type Rapport d'exception

message

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

exception

org.apache.jasper.JasperException: /testlogin.jsp(9,21) Symbole �gal (equal) attendu
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:200)
Commenter la réponse de cs_rane
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
83
0
Merci
Salut,

C'est déjà mieux, mais c'est loin d'être bon encore : PAS DE CODE JAVA DANS LA JSP !

Grosso-modo, tu exécute toutes tes requêtes dans ta servlet, et tu remplit des beans (POJO) afin de les envoyer dans la jsp, et la jsp ne fait qu'afficher les données de ces POJO.

Donc quand je vois cà dans une jsp :
"if(!isOK)
{
out.println("Erreur détectée");
}
else
{
out.println("OK");
ResultSet rs1= myConn.Requete("SELECT * from compte where login= " +login+" and password=" +password+");
int i=0;
while(rs1.next)
{
i++;
out.println("<li>" +i+""+rs1.getString("login") +"-" +rs1.getString("password"));
}
myConn.CloseSql();
}"

Ca me fait vraiment peur...

Sans compter qu'il est bien plus facile de débogguer une servlet (et donc du code java) qu'une jsp (qui est compilé puis interprêté pour produire du code java qui est loin d'être facile à lire ! afin de générer au final du HTML). Dans une jsp tu peux placer des points d'arrêts, voir la valeur des variables. Le code est compilé avant le déploiement, donc tu es prévenu des possibles erreurs de compilation avant même de lancer ton serveur d'application.
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
4
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
8 mai 2009
0
Merci
Donc si je comprends bien à partir du if(isOK) jusqu'a  myconn.CloseSql(); je dois le mettre dans la servlet.
Un petit exemple serai un plaisir Dark .
Encore Merci
Commenter la réponse de cs_rane