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
| package yaflt.servlets.djTallCulture;
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.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class ServletDjTallCulture extends HttpServlet {
//paramètres d'instance
private String urlErreurs = null;
private ArrayList erreursInitialisation = new ArrayList<String>();
private String[] paramètres={"urlFormulaire","urlReponse"};
private Map params=new HashMap<String,String>();
//init
@SuppressWarnings("unchecked")
public void init() throws ServletException{
//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 {
// on vérifie comment s'est passé l'initialisation de la servlet
if(erreursInitialisation.size()!=0){
//on passe la main à la page d'erreurs
request.setAttribute("erreurs", erreursInitialisation);
getServletContext().getRequestDispatcher(urlErreurs).forward(request, response);
//fin
return;
}
//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
doValidationFormulaire(request,response);
return;
}
// autres cas
doInit(request,response);
}
//affichage vue initiale
void doInit(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
//on envoie le formulaire vide
request.setAttribute("nom", "");
request.setAttribute("age", "");
getServletContext().getRequestDispatcher((String)params.get("urlFormulaire")).forward(request, response);
return;
}
//validation du formulaire
void doValidationFormulaire(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
//on récupère les paramètres
String nom = request.getParameter("txtNom");
String age = request.getParameter("txtAge");
//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'age 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);
getServletContext().getRequestDispatcher(urlErreurs).forward(request,response);
return;
}
// les paramètres sont corrects - on envoie la page réponse
request.setAttribute("nom", nom);
request.setAttribute("age", age);
getServletContext().getRequestDispatcher((String)params.get("urlReponse")).forward(request,response);
return;
}
//post
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
//on passe la main au GET
doGet(request, response);
}
} |
Partager