1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
package istia.st.servlets.personne;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.sql.*;
import sun.jdbc.odbc.*;
@SuppressWarnings("serial")
public class ServletPersonne extends HttpServlet {
// paramètres d'instance
private String urlErreurs = null;
private ArrayList erreursInitialisation = new ArrayList<String>();
private String[] paramètres={"urlFormulaire","urlReponse","lienRetourFormulaire"};
private Map params=new HashMap<String,String>();
public ArrayList<Object> valeurRetour = new ArrayList<Object>();
private Connection con;
// init
@SuppressWarnings("unchecked")
public void init() throws ServletException {//la méthode [init] exécutée au chargement initial de la servlet
// on récupère les paramètres d'initialisation de la servlet
ServletConfig config = getServletConfig();
// on traite les autres paramètres d'initialisation
String valeur=null;
for(int i=0;i<paramètres.length;i++){
// valeur du paramètre
valeur=config.getInitParameter(paramètres[i]);
// paramètre présent ?
if(valeur==null){
// on note l'erreur
erreursInitialisation.add("Le paramètre ["+paramètres[i]+"] n'a pas été initialisé");
}else{
// on mémorise la valeur du paramètre
params.put(paramètres[i],valeur);
}
// l'url de la vue [erreurs] a un traitement particulier
urlErreurs = config.getInitParameter("urlErreurs");
if (urlErreurs == null)
throw new ServletException(
"Le paramètre [urlErreurs] n'a pas été initialisé");
}
}
@SuppressWarnings("unchecked")
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {//la méthode [doGet] appelée par le serveur web lorsqu'une requête de type GET a été faite à l'application
// on vérifie comment s'est passée l'initialisation de la servlet
if (erreursInitialisation.size() != 0) {
// on passe la main à la page d'erreurs
request.setAttribute("erreurs", erreursInitialisation);
request.setAttribute("lienRetourFormulaire", "");
getServletContext().getRequestDispatcher(urlErreurs).forward(
request, response);
// fin
return;
}
try {
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
} catch (SQLException e){}
// on récupère la méthode d'envoi de la requête
String méthode=request.getMethod().toLowerCase();
// on récupère l'action à exécuter
String action=request.getParameter("action");
// action ?
if(action==null){
action="init";
}
// exécution action
if(méthode.equals("get") && action.equals("init")){
// démarrage application
doInit(request,response);
return;
}
if(méthode.equals("post") && action.equals("validationFormulaire")){
// validation du formulaire de saisie
ValidationFormulaire ValidationForm=new ValidationFormulaire(request,response,params,urlErreurs);
ValidationForm.ValiderFormulaire();
}
// validation du formulaire : la méthode [doValidationFormulaire] traite l'action n° 2 [POST /personne1/main] avec les paramètres postés [txtNom, txtAge, action]
//J'ai essayé de remplacer ce code commenté dans une classe
/*void doValidationFormulaire(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
// on récupère les paramètres
String nom = request.getParameter("txtNom");
String age = request.getParameter("txtAge");
// qu'on mémorise dans la session
HttpSession session = request.getSession(true);
session.setAttribute("nom", nom);
session.setAttribute("age", age);
// vérification des paramètres
ArrayList<String> erreursAppel = new ArrayList<String>();
// le nom doit être non vide
nom = nom.trim();
if (nom.equals(""))
erreursAppel.add("Le champ [nom] n'a pas été rempli");
// l'âge doit être un entier >=0
if (!age.matches("^\\s*\\d+\\s*$"))
erreursAppel.add("Le champ [age] est erroné");
// des erreurs dans les paramètres ?
if (erreursAppel.size() != 0) {
// on envoie la page d'erreurs
request.setAttribute("erreurs", erreursAppel);
request.setAttribute("lienRetourFormulaire", (String)params.get("lienRetourFormulaire"));
getServletContext().getRequestDispatcher(urlErreurs).forward(
request, response);
return;
}
// les paramètres sont corrects - on envoie la page réponse
request.setAttribute("lienRetourFormulaire", (String)params.get("lienRetourFormulaire"));
getServletContext().getRequestDispatcher((String)params.get("urlReponse")).forward(request,
response);
try{
Statement st = con.createStatement();
st.executeUpdate("INSERT INTO utilisateur ( nom,age ) VALUES ('" + nom + "', '" + age + "' )"); //exécution de la requête
//ResultSet rs = st.executeQuery("SELECT * FROM essai");
}
catch(SQLException e)
{
System.out.println("Exception SQL");
}
return;
}*/
// post
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {//la méthode [doPost] appelée par le serveur web lorsqu'une requête de type POST
// on passe la main au GET
doGet(request, response);
}
} |
Partager