cs_rane
Messages postés4Date d'inscriptionjeudi 23 février 2006StatutMembreDernière intervention 8 mai 2009
-
28 avril 2009 à 19:24
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDerniè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 != "") && (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
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 29 avril 2009 à 14:10
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 !
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 28 avril 2009 à 19:49
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.
cs_rane
Messages postés4Date d'inscriptionjeudi 23 février 2006StatutMembreDernière intervention 8 mai 2009 29 avril 2009 à 12:44
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;
}
}
}
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 29 avril 2009 à 13:49
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.
cs_rane
Messages postés4Date d'inscriptionjeudi 23 février 2006StatutMembreDernière intervention 8 mai 2009 29 avril 2009 à 14:02
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