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
   | import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 
 
import java.util.*; 
import java.util.regex.*;
public class main extends HttpServlet{ 
	// variables d'instance 
	String msgErreur=null; 
String urlPage0=null;
 String urlPage1=null;
 String urlPage2=null;
 String urlErreur=null; 
	//-------- GET 
	public void doGet(HttpServletRequest request, HttpServletResponse response)
	throws IOException, ServletException{ 
	// l'initialisation s'est-elle bien passée ? 
	if(msgErreur!=null){ 
	// on passe la main à la page d'erreur 
	getServletContext().getRequestDispatcher(urlErreur).forward(request,response);
	}
	// on récupère le paramètre étape
	String étape=request.getParameter("etape");
	// on récupère la session en cours
	HttpSession session=request.getSession();
	// on traite l'étape en cours
	if(étape==null) étape0(request,response,session);
	if(étape.equals("1")) étape1(request,response,session);
	if(étape.equals("2")) étape2(request,response,session);
	// autres cas sont invalides
	étape0(request,response,session); 
	} 
	//-------- POST 
	public void doPost(HttpServletRequest request, HttpServletResponse response) 
	throws IOException, ServletException{ doGet(request,response);
	}
	//-------- INIT 
	public void init(){
	// on récupère les paramètres d'initialisation
	ServletConfig config=getServletConfig();
	urlPage0=config.getInitParameter("urlPage0");
	urlPage1=config.getInitParameter("urlPage1");
	urlPage2=config.getInitParameter("urlPage2");
	urlErreur=config.getInitParameter("urlErreur"); 
	// paramètres ok ? 
	if(urlPage0==null || urlPage1==null || urlPage2==null){ msgErreur="Configuration incorrecte"; 
	}
	}
	//-------- étape0
	public void étape0(HttpServletRequest request, HttpServletResponse response, HttpSession session) 
	throws IOException, ServletException{
	// on fixe quelques attributs
	request.setAttribute("nom","");
	// on présente la page 0
	request.getRequestDispatcher(urlPage0).forward(request,response); 
	}
	//-------- étape1 
	public void étape1(HttpServletRequest request, HttpServletResponse response, HttpSession session) 
	throws IOException, ServletException{
	// on récupère le nom dans la requête
	String nom=request.getParameter("nom");
	// nom positionné ?
	if(nom==null) étape0(request,response,session);
	// on enlève les éventuels espaces du nom
	nom=nom.trim();
	// on le met dans un attribut de la requête
	request.setAttribute("nom",nom);
	// nom vide ?
	if(nom.equals("")){
	// c'est une erreur
	ArrayList erreurs=new ArrayList();
	erreurs.add("Nous n'avez pas indiqué de nom");
	// on met les erreurs dans la requête
	request.setAttribute("erreurs",erreurs);
	// retour à la page 0
	étape0(request,response,session);
	}
	// nom valide - on le mémorise dans la session en cours
	session.setAttribute("nom",nom);
	// on fixe l'attribut age dans la requête
	request.setAttribute("age","");
	// on présente la page 1
	request.getRequestDispatcher(urlPage1).forward(request,response); 
}
	//-------- étape2 public 
void étape2(HttpServletRequest request, HttpServletResponse response, HttpSession session) 
throws IOException, ServletException{
	// on récupère le nom dans la session
	String nom=(String)session.getAttribute("nom");
	// nom positionné ?
	if(nom==null) étape0(request,response,session);
	// on le met dans un attribut de la requête
	request.setAttribute("nom",nom);
	// on récupère l'âge dans la requête
	String age=request.getParameter("age");
	// age positionné ?
	if(age==null){
	// retour à la page 1
	request.setAttribute("age","");
	request.getRequestDispatcher(urlPage1).forward(request,response);
	}
	// on mémorise l'âge dans la requête
	age=age.trim();
	request.setAttribute("age",age);
	// age valide ?
	if(! Pattern.matches("^\\s*\\d+\\s*$",age)){
	// c'est une erreur
	ArrayList erreurs=new ArrayList();
	erreurs.add("Age invalide");
	// on met les erreurs dans la requête
	request.setAttribute("erreurs",erreurs);
	// retour à la page 1
	request.getRequestDispatcher(urlPage1).forward(request,response);
	}
	// age valide - on présente la page 2
	request.getRequestDispatcher(urlPage2).forward(request,response);
 }
 } | 
Partager