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.*;
/** Titre : Servlet de test
* @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("");
page.println("ServletRepond");
page.println("");
// La date
page.println("Bonjour, "+date()+"
");
}
void finPage(PrintWriter page) {
page.println("");
}
void remplirPage(PrintWriter page,HttpServletRequest req ) {
// Info sur le client
page.println("Client :
\n");
page.println(" IP: "+req.getRemoteAddr()+"
\n");
page.println(" DNS: "+req.getRemoteHost()+"
\n");
page.println("
");
// Info sur la requête
page.println("Requête :\n");
page.println(" type " + req.getMethod() + "
");
page.println(" corps de "+req.getContentLength()+" octets
\n");
page.println("
");
// 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("Paramètres:
\n");
if(nPar==0) page.println(" aucun
\n");
else {
int i,j, nv;
for(i=0; i\n");
else {
// au moins deux valeurs pour ce paramètre
page.println("[");
page.println(" "+tvp[i][0]);
for(j=1; j\n");
}
}
}
page.println("
");
// Info sur le serveur
page.println("Serveur:
\n");
page.println(" nom: "+req.getServerName()+"
\n");
page.println("
");
page.println("Détails:
\n");
page.println(" URL: "+req.getRequestURL()+"
\n");
page.println(" URI: "+req.getRequestURI()+"
\n");
page.println(" supp(PathInfo): "+req.getPathInfo()+"
\n");
page.println(" paramètres(QueryString): "+req.getQueryString()+"
\n");
page.println("
");
}
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