aide java

aide java - Java - Programmation

Marsh Posté le 19-04-2003 à 17:24:12    

voici un servlet qui insere des donnees dans une base,or en le testant  directement sur internet couplé à un fichier html de formulaire avec juste deux champs à remplir:nom et prenom,cela ne marche pas.
je n'ai pas d'environnement de developpement de servlet avec une base en local afin de tester ma servlet,j'aimerais donc que quelqu un qui possède ceci le teste et apporte les eventuelles corrections à mon servlet,de raisonnement ou de syntaxe,en tous cas le plus gros est fait.
 
package sans_titre10;
 
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
 
 
public class Servlet1 extends HttpServlet {
  private static final String CONTENT_TYPE = "text/html";
  /**Initialiser les variables globales*/
  public void init() throws ServletException {
  Connection con = null;
  public void init ()
  throws ServletException {
  //ServletConfig cfg;
  //super.init (cfg);
  // Load driver
  //String name = cfg.getInitParameter("driver" );
  Class.forName("org.gjt.mm.mysql.Driver" );
  // Get Connection
  con = DriverManager.getConnection ("jdbc:mysql:http://ip","login","pass" );
 
  }
  /**Traiter la requête HTTP Get*/
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    out.println("<font color=\"green\">" );
    out.println("<p>Le servlet a reçu un GET. Ceci est la réponse.</p>" );
    out.println("</font>" );
  }
  /**Traiter la requête HTTP Post*/
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
 
  // Have browser ignore cache - force reload
  response.setHeader ("Expires",
    "Mon, 01 Jan 1990 00:00:00 GMT" );
 
  Statement stmt = null;
  ResultSet result = null;
  String nom = "";
  String prenom = "";
   
 
  nom = request.getParaMeter("Nom" );
  prenom = request.getParaMeter("Prenom" );
   
 
  try {
 
    // Submit query
    stmt = con.createStatement();
   
    result = stmt.executeQuery (
    "INSERT INTO polo2_membres(nom,prenom)
        VALUES  ('nom','prenom';);" );
 
    out.println("<html>" );
    out.println("<head><title>Servlet1</title></head>" );
    out.println("<body bgcolor="#000000"><font face="Felix Titling" size="7" color="#996669">" );
    out.println("<center><h1>il fait beau.</h1><br><br><br><font face="Felix Titling" size="4" color="#996669">le beau temps va durer 4 jours<a href="http://www.domaine.com/">ici</a>." );
    out.println("</body></html>" );
    } finally {
      if(result != null){
              result.close();
      }
      if(stmt != null){
              stmt.close();
      }
      }
    out.flush();
    out.close();
  }
  /**Nettoyer les ressources*/
  public void destroy() {
  super.destroy();
  con.close();
  }
}

Reply

Marsh Posté le 19-04-2003 à 17:24:12   

Reply

Marsh Posté le 19-04-2003 à 21:32:53    

il me semble qu'il ne faut pas de point virgule a la fin de ta requete (dans la String)
 
c'est possible que l'erreur vienne de la

Reply

Marsh Posté le 22-04-2003 à 13:31:06    

j'ai fait cette servelt qui est assez inhabituelle car elle INSERE des donnes,j'attends donc que quelqu un de competent voit l'interet de reprendre la chose car cela peut servir et me la corrige en la testant merci.

Reply

Marsh Posté le 22-04-2003 à 13:35:28    

fredjava2 a écrit :

j'attends donc que quelqu un de competent... et me la corrige en la testant merci.

[:rofl]  [:rofl]  [:rofl]


---------------
Le site de ma maman
Reply

Marsh Posté le 22-04-2003 à 13:36:09    


 
pour une fois que c'est pas moi mais .............
 
 
 [:rofl]  [:rofl]  [:rofl]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 22-04-2003 à 13:40:22    

je n'ai pas d'environnment j2ee configuré et pas de base en local,cela sera + que possible pour quelqu un qui connait de voir le vice et de la tester ensuite

Reply

Marsh Posté le 22-04-2003 à 14:14:36    

moi je dis trol :o
 
ban :o


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 22-04-2003 à 14:19:08    

ça veut dire quoi "trol"?

Reply

Marsh Posté le 22-04-2003 à 15:02:49    

fredjava2 a écrit :

 nom = request.getParaMeter("Nom" );
  prenom = request.getParaMeter("Prenom" );
   
 
  try {
 
    // Submit query
    stmt = con.createStatement();
   
    result = stmt.executeQuery (
    "INSERT INTO polo2_membres(nom,prenom)
        VALUES  ('nom','prenom';);" );


 
C'est plutot:
result = stmt.updateQuery (
    "INSERT INTO polo2_membres(nom,prenom)
        VALUES  ('"+nom+"','"+prenom+"';)" );
 

Reply

Marsh Posté le 22-04-2003 à 15:03:56    

fredjava2 a écrit :

servelt qui est assez inhabituelle car elle INSERE des donnes

:sweat:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-04-2003 à 15:03:56   

Reply

Marsh Posté le 22-04-2003 à 15:04:12    

ernst a écrit :


 
C'est plutot:
result = stmt.updateQuery (
    "INSERT INTO polo2_membres(nom,prenom)
        VALUES  ('"+nom+"','"+prenom+"';)" );
 
 


oups, updateQuery ne retourne rien.
Desole

Reply

Marsh Posté le 22-04-2003 à 15:04:15    

ça existe getParaMeter ?


---------------
Le site de ma maman
Reply

Marsh Posté le 22-04-2003 à 15:04:46    

Cherrytree a écrit :

ça existe getParaMeter ?

non


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-04-2003 à 15:05:05    

ernst a écrit :


oups, updateQuery ne retourne rien.
Desole

si, mais c'est executeUpdate  la methode :o


Message édité par the real moins moins le 22-04-2003 à 15:09:09

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-04-2003 à 15:08:10    


et en plus c'est executeUpdate();
Oui, enfin ca ne revoit pas de ResultSet, comme le disait mon post...

Reply

Marsh Posté le 22-04-2003 à 15:09:31    

ernst a écrit :


et en plus c'est executeUpdate();
Oui, enfin ca ne revoit pas de ResultSet, comme le disait mon post...

ben ça renvoie le nombre de records "touchés" par la requete [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-04-2003 à 19:26:10    

les + sont faux,c'est une requete sql pas besoin de mettre des +qui ne sont necessaires que lorsque on met quelque chose DANS DU JAVA OR LA C EST PAS DU java c'est sql.
 
par contre le M ok.
 
je voudrais par contre si c'est juste le code du traitement de la requete par executupdate(),mais à mon avis ça aussi c'est faux car on ne met rien à jour,on INSERE des donnes,pour un select c'est la bonne methode alors pour un insert il n' y a pas de raison que cela change

Reply

Marsh Posté le 22-04-2003 à 19:34:32    

fredjava2 a écrit :

les + sont faux,c'est une requete sql pas besoin de mettre des +qui ne sont necessaires que lorsque on met quelque chose DANS DU JAVA OR LA C EST PAS DU java c'est sql.


Non, ce qu'il te dit c'est :

Citation :

result = stmt.updateQuery("INSERT INTO polo2_membres (nom,prenom) VALUES ('" + nom + "','" + prenom + "';)" );


nom et prenom sont 2 variables JAVA. Il a pensé que tu voulais peut-être insérer des variables dans ta requête et non pas les chaînes "nom" et "prénom".
 

fredjava2 a écrit :


je voudrais par contre si c'est juste le code du traitement de la requete par executupdate(),mais à mon avis ça aussi c'est faux car on ne met rien à jour,on INSERE des donnes,pour un select c'est la bonne methode alors pour un insert il n' y a pas de raison que cela change


Alors si t'as lu la Javadoc de Statement, tu t'aperçois que :
* pour les requêtes de type INSERT, UPDATE ou DELETE la méthode executeUpdate() est indiquée.
* pour les requêtes de type SELECT ou autre requêtes renvoyant un résultat, c'est executeQuery() qui est recommandée.
La différence : INSERT ne renvoie pas de résultat, contrairement à un SELECT. Maintenant, si t'as envie, tu peux aussi utiliser executeQuery() pour faire un INSERT.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 22-04-2003 à 19:36:50    

alors c'est exactement la meme structure suaf que à la place de executequery on met executeupdate?

Reply

Marsh Posté le 22-04-2003 à 19:40:52    

fredjava2 a écrit :

alors c'est exactement la meme structure suaf que à la place de executequery on met executeupdate?


Non, pas tout à fait : http://java.sun.com/j2se/1.4.1/doc [...] ement.html
La méthode executeUpdate() renvoie un int alors que executeQuery() renvoie un ResultSet. Normal, puisque pour executeUpdate on a juste besoin de savoir le nombre de lignes affectées, alors que pour executeQuery() on a un résultat plus compliqué qui dépend totalement de la requête.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 22-04-2003 à 20:07:20    

fredjava2 a écrit :

les + sont faux,c'est une requete sql pas besoin de mettre des +qui ne sont necessaires que lorsque on met quelque chose DANS DU JAVA OR LA C EST PAS DU java c'est sql.
 
par contre le M ok.
 
je voudrais par contre si c'est juste le code du traitement de la requete par executupdate(),mais à mon avis ça aussi c'est faux car on ne met rien à jour,on INSERE des donnes,pour un select c'est la bonne methode alors pour un insert il n' y a pas de raison que cela change

putain cte connard  :ouch:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 23-04-2003 à 08:06:48    

the real moins moins a écrit :

putain cte connard  :ouch:  


ouais il se permet de contredire quelqu'un qui lui donne la solution  :pfff:  
 
inon, Mr fred, rien qu'avec le coup du getParaMeter à la place du getParameter, ca veut dire que ta classe ne compile pas. Alors si à la place de dire "cela ne marche pas" tu détaillais un peu ce qui ne marche pas et que tu donnais le message d'erreur que tu obtiens ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 24-04-2003 à 13:52:09    

fredjava2 a écrit :

ça veut dire quoi "trol"?


 
C'est tous les topics que tu as fais !!
Presque tous les topics que tu crées sont fermés  :lol:  
 
Pour quelqu un qui est supposé etre ingenieur Logiciel spe J2ee, qui se dis un génie, au fait c 'est quand que tu nous écrases avec ta porsche ?
 
En fait je ne sais pas si je dois répondre a ta question JAVA vu ton attitude dans les autres topics.
Mais les autres membres t'ont deja donné la réponse donc...


Message édité par mauvais_karma le 24-04-2003 à 13:53:32
Reply

Marsh Posté le 24-04-2003 à 14:02:55    

:hello:
 
fredjava2 > étant donné que tu sembles être une bête en programmation Java, je souhaiterais te demander un truc.
 
Je suis un expert en XHTML/CSS, Javascript, etc... Ca fait plusieurs mois que j'entends un truc qui me turlupine : il semblerait qu'on puisse insérer du Java directement dans une page HTML.
 
J'ai essayé plusieurs fois, avec les fameuses balises <java>...</java> et ça ne marche pas. J'ai un runtime error à la ligne 12.
 
Je suis persuadé que c'est faisable ! Etant donné que tu es expert en génie logiciel, j'espère que tu pourras m'aider, car j'ai vraiment envie d'agrémenter mon site web :(
 
Je te remercie par avance :hello:


---------------
Je code en série et en parallèle
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed