3 réponses
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?
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
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
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:
et voici le code de ma classe qui fait acces a ma base de données et traite les requetes:
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
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