//Servlet Java répondant à un questionnaire /* ServletRepond.java fait écho à tout questionnaire adresse du client méthode utilisée récupération noms/valeurs des champs d'un formulaire avec: getParameterNames getParameterValues ( doPost apelle doGet doGet appelle enTetePage, remplirPage et finPage ) */ import javax.servlet.http.*; import java.io.*; import java.util.*; /** <p>Titre : Servlet de test</p> * @author R.Astier */ public class ServletRepond extends HttpServlet { private static final String CONTENT_TYPE = "text/html"; //Initialiser les variables globales public void init() throws ServletException { } //Traiter la requête HTTP Get public void doGet(HttpServletRequest req, HttpServletResponse rep) throws ServletException, IOException { rep.setContentType(CONTENT_TYPE); PrintWriter p = rep.getWriter(); enTetePage(p); remplirPage(p,req); finPage(p); } //Traiter la requête HTTP Post public void doPost(HttpServletRequest req, HttpServletResponse rep) throws ServletException, IOException { doGet(req, rep); } //Nettoyer les ressources public void destroy() { } void enTetePage(PrintWriter page) { page.println("<html>"); page.println("<head><title>ServletRepond</title></head>"); page.println("<body bgcolor=\"#e8e8d0\">"); // La date page.println("<h3 style='color:green;'>Bonjour, "+date()+"</h3>"); } void finPage(PrintWriter page) { page.println("</body></html>"); } void remplirPage(PrintWriter page,HttpServletRequest req ) { // Info sur le client page.println("<p><b style='color:red;'>Client</b> :<br>\n"); page.println(" &nbsp; &nbsp; IP: "+req.getRemoteAddr()+"<br>\n"); page.println(" &nbsp; &nbsp; DNS: "+req.getRemoteHost()+"<br>\n"); page.println("</p>"); // Info sur la requête page.println("<p><b style='color:red;'>Requête </b> :</br>\n"); page.println(" &nbsp; &nbsp; type <tt>" + req.getMethod() + "</tt><br>"); page.println(" &nbsp; &nbsp; corps de "+req.getContentLength()+" octets<br>\n"); page.println("</p>"); // Récupérer les paramètres transmis par la requête Enumeration lesPar = req.getParameterNames(); int nPar=0; // Compter le nombre de paramètres while(lesPar.hasMoreElements()) { nPar++; lesPar.nextElement(); } // Extraire noms et valeurs String tnp[]= new String[nPar]; // noms des paramètres String tvp[][] = new String[nPar][]; // valeurs des paramètres lesPar = req.getParameterNames(); for(nPar=0; lesPar.hasMoreElements(); nPar++) { tnp[nPar] = new String((String)lesPar.nextElement()); tvp[nPar] = (String[])req.getParameterValues(tnp[nPar]); } // Renvoyer les info sur les paramètres page.println("<p'><b style='color:red;'>Paramètres</b>:<br>\n"); if(nPar==0) page.println(" &nbsp; &nbsp; aucun<br>\n"); else { int i,j, nv; for(i=0; i<nPar; i++) { page.println(" &nbsp; &nbsp; "+tnp[i]+"="); nv=tvp[i].length; if(nv==1) page.println(" &nbsp; &nbsp; "+tvp[i][0]+"<br>\n"); else { // au moins deux valeurs pour ce paramètre page.println("["); page.println(" "+tvp[i][0]); for(j=1; j<nv; j++) page.println(", "+tvp[i][j]); page.println("]<br>\n"); } } } page.println("</p>"); // Info sur le serveur page.println("<p><b style='color:red;'>Serveur</b>:<br>\n"); page.println(" &nbsp; &nbsp; nom: "+req.getServerName()+"<br>\n"); page.println("</p>"); page.println("<p><b style='color:red;'>Détails</b>:<br>\n"); page.println(" &nbsp; &nbsp; URL: "+req.getRequestURL()+"<br>\n"); page.println(" &nbsp; &nbsp; URI: "+req.getRequestURI()+"<br>\n"); page.println(" &nbsp; &nbsp; supp(PathInfo): "+req.getPathInfo()+"<br>\n"); page.println(" &nbsp; &nbsp; paramètres(QueryString): "+req.getQueryString()+"<br>\n"); page.println("</p>"); } static String date() { String mois[]={"janvier","février","mars","avril","mai","juin" ,"juillet","août","septembre","octbre","novembre","décembre"}; GregorianCalendar cal = new GregorianCalendar(); String hms=""+cal.get(Calendar.HOUR); int m=cal.get(Calendar.MINUTE), s=cal.get(Calendar.SECOND); hms=hms+":"; if( m<10) hms=hms+"0"; hms=hms+m+":"; if( s<10) hms=hms+"0"; hms=hms+s; return "" + cal.get(Calendar.DAY_OF_MONTH)+' ' + mois[cal.get(Calendar.MONTH)]+' ' + cal.get(Calendar.YEAR)+", "+hms; } } // fin ServletRepond