| 12
 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
 
 | package istia.st.servlets.personne;
 
import javax.servlet.http.HttpServlet;
import java.util.*;
import javax.servlet.*;
import java.io.IOException;
import javax.servlet.http.*;
 
public class ServletPersonne extends HttpServlet {
 
	ArrayList<String> erreur = new ArrayList<String>(); //initialisation des erreurs qui peuvent arriver
	String URLerreur = null;
	String[] parametre = {"URLformulaire", "URLreponse"}; //on initialise avec me nom du parametre pour pouvoir le recuperer
	Map param = new HashMap<String, String>(); //initialisation d'un dictionnaire
 
	public void init() throws ServletException{
		ServletConfig config = getServletConfig();
		String valeur; //on va stocker la valeur du parametre dedans
		for(int i = 0 ; i < parametre.length ; i++) { //on va maintenant verifier si les parametres ont bien ete rempli
			valeur = config.getInitParameter(parametre[i]);
			if(valeur == null)
				erreur.add("Erreur, le parametre" + parametre[i] + "n'a pas eté rempli"); //si le parametre n'a pas ete rempli, on rempli le gestionnaire d'erreur
			param.put(parametre[i], valeur); //on le stocke dans le dicionnaire
			URLerreur = config.getInitParameter("URLerreur");
			if(URLerreur == null)
				throw new ServletException("le parametre erreur n'a pas ete initialisé");
		}
	}
 
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		if(erreur.size() != 0) {
			request.setAttribute("erreur", erreur);
			getServletContext().getRequestDispatcher(URLerreur).forward(request, response); //on passe la main a la vue erreur
			return;
		}
		String method = request.getMethod().toLowerCase(); //on recupere la methode get si c'est la premiere fois et post si c'est la seconde
		String action = request.getParameter("action");
 
		if(action == null)  //si le parametre action n'existe pas, c'est que la page n'a pas ete encore lancée, il faut donc la lancer
			action = "init";
 
		if(method.equals("get") && action.equals("init")) { //si la page n'a pas ete encore initialisé on appelle la methode d'initialisation
			doInit(request, response);
		return;
		}
		if(method.equals("post") && action.equals("ValidationFormulaire")) { //si la page a deja ete initialisée on appelle la methode du formulaire
			doValidationFormulaire(request, response);
			return; //les return servent a stopper la methode
		}
			doInit(request, response); //dans tous les autres cas
	}
 
	public void doInit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setAttribute("nom", "");
		request.setAttribute("age", "");
		getServletContext().getRequestDispatcher((String)param.get("URLformulaire")).forward(request, response);
		return;
	}
 
	public void doValidationFormulaire(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String nom = (String)request.getAttribute("txtNom");
		String age = (String) request.getAttribute("txtAge");
		ArrayList<String> erreurForm = new ArrayList<String>();
		nom = nom.trim(); //on supprime les espaces qui peut y avoir
		if(nom == null)
			erreurForm.add("le champ [nom] n'a pas ete rempli");
		if(!age.matches("^\\s*\\d+\\s*$")) 
			erreurForm.add("le champ [age] n'a pas ete rempli ou est erroné");
 
			if(erreurForm.size() != 0) {
				request.setAttribute("erreur", erreurForm);
				getServletContext().getRequestDispatcher(URLerreur).forward(request, response);
				return;
			}
			request.setAttribute("nom", nom);
			request.setAttribute("age", age);
			getServletContext().getRequestDispatcher((String) param.get("URLreponse")).forward(request, response);
			return;
	}
 
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
 
}
 
 
 
Je lance sur mon navigateur localhost:8080/pe | 
Partager