Aide servlet

mélanie -  
 mimoua -
j'aimerai savoir comment on ecrit ds une base mysql à l'aide d'une servlet via un formulaire par exemple.
merci les mecs.

3 réponses

Colt Siver
 
Je suis actuellement en train de realiser un projet du même genre, peut être je peut aider. En fait tu as un formulaire qui s'execute via une page html?
0
maynouch Messages postés 57 Statut Membre 6
 
d'abord le formulaire n'est pas dans la servlet!! il est dans une page html!!! les noms de ses champs ainsi que leurs valeur seront passé à la servlet via la requête http càd l'objet HttpRequest request!!
pour récupérer la valeur du champs nom par exemple :
String nom = "" + request.getParameter("Nom");
si tu ne mets pas le "" tu peux avoir un NullPointerException si le champs est vided !!!!

bien sûr pour insérer dans une base de donner tu dois avoir une constriuit une connexion à la base (de préférence en redéfinissant la méthode init)
Tu construit ensuite ton query et tu l'exécutes!!
normalement tu trouveras des exemples sur commentcamarche
mais si t'es bloqué envoie moi un email et j'essaierai de t'envoyer une servlet démo!!

Best Regards
0
mimoua
 
bonjour ,
j'ai actuellement le meme probleme, j'essaye d'ecrire une servlet pour faire des traitement sur ma base de données mysql, voici le code de ma servlet que j'ai testé et qui fonctionne bien:


import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;


 public class Maservlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
   	 

	 public void init(ServletConfig conf) throws ServletException
	 {
	 super.init(conf);
	 
	 }
	 
	private static final long serialVersionUID = 1L;

	
	public Maservlet() {
		super();
	}   	
	
	
	 public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException
	   
	  {   	
	           
	       
	        response.setContentType("text/html");
	        PrintWriter out = response.getWriter();
	        out.println("<html>");	        
	        out.println("<head> ");	
	     
	       
	        out.println("<title>servlet-formulaire</title>");        
	        out.println("</head>");
	        out.println("<body>");
	        out.println("\n\n");
	        out.println("<form  method=post action=> "+
	        		"Tapez votre requete <input typefield=text name=text />     " +"      " +
				"<input type=submit name=Submit value=Envoyer /></form>");
	        out.println();
	        out.println("</body>");
	        out.println("</html>");
	       
	      
	        
	       
	        
	       	        
	        
	    } 	
	
	/* (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
	}   	  	    
}


et voici le code de ma classe qui fait acces a ma base de données et traite les requetes:

import java.sql.*;


class BaseDeDonnee
{
    java.sql.Connection connection = null;
    java.sql.Connection con = null;

    public BaseDeDonnee() throws SQLException
    {
        connexion();     
        affichage();
        fin_connexion();
    }

    
    // Connexion à la base 
    public void connexion () 
    {
    	//chargement du pilote mysql
		try {
			Class.forName("org.gjt.mm.mysql.Driver");
			} 
			catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
        try
        {		
            // Etablissement de la connexion avec la base mysql
            connection = DriverManager.getConnection("jdbc:mysql://localhost/mabase","admin","password");
           
            System.out.println("\t\t\tConnexion a la base  établie");            
            
        }
        	catch (SQLException c)
        	{
        		c.printStackTrace();
        	}
        	
  
    }
   
    
    
    
    //afficher le contenu de la base
    public void affichage () throws SQLException{
    	try {
			Statement s = connection.createStatement();
			String requete = null;
			ResultSet resultat = s.executeQuery(requete);
			while (resultat.next()) {
                System.out.println(resultat.getInt(1)+"    "+resultat.getString(2)+"    "+resultat.getString(3)+"    "+resultat.getString(4));
                               
                }; 
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
	
    
  
	
    //fermeture de la connexion
    public void fin_connexion() throws SQLException
    	{
			connection.close();
        }
    }




ce que je voudrais savoir c'est comment faire le lien entre ces deux classe pour que la valeur du string "requete" soit la chaine saisie par l'utilisateur dans le textfield du formulaire de la servlet
0