Lorsque nous naviguons sur le Web, nous devons souvent soumettre des informations au serveur et laisser le programme en arrière-plan les traiter. Le navigateur utilise les méthodes GET et POST pour soumettre les données au serveur.
La méthode GET ajoute les informations de codage demandées après l'URL, et l'URL et les informations de codage sont séparées par un symbole « ? Comme indiqué ci-dessous :
//www.w3cschool.cn/hello?key1=value1&key2=value2
La méthode GET est la méthode par défaut utilisée par les navigateurs pour transmettre des paramètres. Il est recommandé de ne pas utiliser la méthode GET pour certaines informations sensibles, telles que les mots de passe.
Lors de l'utilisation de get, la taille des données transmises est limitée (notez que le nombre de paramètres n'est pas limité) et le maximum est de 1024 octets.
Nous pouvons transmettre certaines informations sensibles, telles que les mots de passe, etc. via la méthode POST, et les données post-soumission sont implicites.
Les données soumises par POST sont invisibles et GET est transmis dans l'URL (vous pouvez regarder la barre d'adresse de votre navigateur).
JSP utilise getParameter() pour obtenir les paramètres transmis, et la méthode getInputStream() est utilisée pour gérer la demande de flux de données binaires du client.
getParameter() : utilisez la méthode request.getParameter() pour obtenir la valeur du paramètre de formulaire.
getParameterValues() : récupère des données telles que la classe de case à cocher (même nom, mais plusieurs valeurs). Recevoir des variables de tableau, telles que le type de case à cocher
getParameterNames() : Cette méthode peut obtenir les noms de toutes les variables. Cette méthode renvoie une Emumeration.
getInputStream() : appelez cette méthode pour lire le flux de données binaires du client.
Ce qui suit est une URL simple qui utilise la méthode GET pour transmettre les paramètres dans l'URL :
http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI
Voici le programme JSP du fichier main.jsp pour traiter les données du formulaire soumises par le client. Nous utilisons la méthode getParameter() pour obtenir les données soumises :
<html><head><title>Utilisation de la méthode GET pour lire les données du formulaire</title></head><body><center><h1>Utilisation de la méthode GET pour lire les données du formulaire</h1><ul><li> <p><b>Prénom :</b> <%= request.getParameter("first_name")%></p></li><li><p><b>Nom :</b> <%= request.getParameter("last_name")%></p></li></ul></body></html>
Ensuite, nous accédons à http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI via le navigateur. Les résultats de sortie sont les suivants :
Utilisation de la méthode GET pour lire les données du formulairePrénom : ZARALNom : ALI
Ce qui suit est un simple formulaire HTML qui soumet les données client au fichier main.jsp via la méthode GET :
<html><body><form action="main.jsp" method="GET">Prénom : <input type="text" name="first_name"><br />Nom : <input type="text " name="nom_de_famille" /><input type="submit" value="Submit" /></form></body></html>
Enregistrez le code HTML ci-dessus dans le fichier Hello.htm. Placez ce fichier dans le répertoire /webapps/ROOT. En accédant à http://localhost:8080/Hello.htm , l'interface de sortie est la suivante :
Remplissez les informations dans les formulaires « Prénom » et « Nom » et cliquez sur le bouton « Soumettre », les résultats seront affichés.
Utilisons ensuite la méthode POST pour transférer les données du formulaire et modifions les codes des fichiers main.jsp et Hello.htm comme suit :
Code du fichier main.jsp :
<html><head><title>Utilisation des méthodes GET et POST pour lire les données d'un formulaire</title></head><body><center><h1>Utilisation de la méthode GET pour lire les données d'un formulaire</h1><ul>< li><p><b>Prénom :</b> <%= request.getParameter("first_name")%></p></li><li><p><b>Nom :</ b> <%= request.getParameter("last_name")%></p></li></ul></body></html>
Voici le code modifié de Hello.htm :
<html><body><form action="main.jsp" method="POST">Prénom : <input type="text" name="first_name"><br />Nom : <input type="text " name="nom_de_famille" /><input type="submit" value="Submit" /></form></body></html>
Accédez à http://localhost:8080/Hello.htm via le navigateur, le résultat est le suivant :
Remplissez les informations dans les formulaires « Prénom » et « Nom » et cliquez sur le bouton « Soumettre », les résultats seront affichés.
La case à cocher peut transmettre une ou même plusieurs données.
Ce qui suit est un simple code HTML et enregistrez le code dans le fichier CheckBox.htm :
<html><body><form action="main.jsp" method="POST" target="_blank"><input type="checkbox" name="maths" vérifié="checked" /> Mathématiques<input type= "checkbox" name="physique" /> Physique<input type="checkbox" name="chimie" vérifié="checked" /> Chimie<input type="submit" value="Sélectionner le sujet" /></form> </body></html>
Voici le code du fichier main.jsp, utilisé pour traiter les données des cases à cocher :
<html><head><title>Lecture des données des cases à cocher</title></head><body><center><h1>Lecture des données des cases à cocher</h1><ul><li><p><b>Drapeau mathématique :</b> <%= request.getParameter("maths")%></p></li><li><p><b>Drapeau physique :</b> <%= request.getParameter("physics")%></p></li><li><p><b>Drapeau de chimie :</b> <%= request.getParameter("chemistry")%></p ></li></ul></body></html>
Le résultat de l’exemple ci-dessus est :
Ci-dessous, nous utiliserons getParameterNames() de HttpServletRequest pour lire tous les paramètres de formulaire disponibles. Cette méthode peut obtenir les noms de toutes les variables. Cette méthode renvoie une émulation.
Une fois que nous avons une énumération, nous pouvons appeler la méthode hasMoreElements() pour déterminer quand arrêter de l'utiliser et la méthode nextElement() pour obtenir le nom de chaque paramètre.
<%@ page import="java.io.*,java.util.*" %><html><head><title>Exemple de demande d'en-tête HTTP</title></head><body><center><h2 >Exemple de demande d'en-tête HTTP</h2><table align="center"><tr bgcolor="#949494"><th>Nom du paramètre</th><th>Valeur(s) du paramètre</th></tr ><% Noms des paramètres d'énumération = request.getParameterNames(); while(paramNames.hasMoreElements()) { String paramName = (String)paramNames.nextElement(); out.print("<tr><td>" + paramName + "</td>n "); String paramValue = request.getParameter(paramName); out.println("<td> " + paramValue + "</td></tr>n"); }%></table></center></body></html>
Voici le contenu du fichier Hello.htm :
<html><body><form action="main.jsp" method="POST" target="_blank"><input type="checkbox" name="maths" vérifié="checked" /> Mathématiques<input type= "checkbox" name="physique" /> Physique<input type="checkbox" name="chimie" vérifié="checked" /> Chimie<input type="submit" value="Sélectionner le sujet" /></form> </body></html>
Nous accédons maintenant au fichier Hello.htm via le navigateur et soumettons les données. Le résultat est le suivant :
Vous pouvez essayer d'utiliser le code JSP ci-dessus pour lire d'autres objets, tels que des zones de texte, des boutons radio ou des listes déroulantes, ainsi que d'autres formes de données.