English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Lorsque nous naviguons sur des pages web, nous avons souvent besoin de soumettre des informations au serveur et de faire traiter ces informations par le programme en arrière-plan. Dans le navigateur, les méthodes GET et POST sont utilisées pour soumettre des données au serveur.
La méthode GET ajoute les informations de codage de la requête à la fin de l'URL, l'URL et les informations de codage sont séparées par le "?". Voici un exemple :
http://fr.oldtoolbag.com/hello?key1=value1&key2=value2
La méthode GET est la méthode par défaut utilisée par le navigateur pour transmettre des paramètres, certains informations sensibles, comme les mots de passe, ne devraient pas être utilisés avec la méthode GET.
Lors de l'utilisation de get, la taille des données transmises est limitée (notez que ce n'est pas le nombre de paramètres qui est limité), la taille maximale étant1024octets.
Certaines informations sensibles, comme les mots de passe, peuvent être transmises par la méthode POST, les soumissions POST sont implicites.
Les soumissions POST sont invisibles, GET est passé dans l'url (vous pouvez voir dans l'adresse de votre navigateur).
JSP utilise getParameter() pour obtenir les paramètres transmis, la méthode getInputStream() est utilisée pour traiter les requêtes de flux de données binaires du client.
getParameter(): Utiliser la méthode request.getParameter() pour obtenir la valeur des paramètres du formulaire.
getParameterValues(): Obtenir des données comme checkbox (noms identiques, mais plusieurs valeurs) . Recevoir des variables d'array, comme le type checkbox
getParameterNames():Cette méthode peut obtenir tous les noms de variables, elle retourne un Enumeration.
getInputStream():Appeler cette méthode pour lire le flux de données binaire provenant du client.
Voici une URL simple, utilisant la méthode GET pour transmettre les paramètres de l'URL :
http://localhost:8080/testjsp/main.jsp?name=基础教程网&url=http://ww.oldtoolbag.com
testjsp est l'adresse du projet.
Voici le programme JSP du fichier main.jsp utilisé pour traiter les données de formulaire soumis par le client, nous utilisons la méthode getParameter() pour obtenir les données soumis :
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*" %> !DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basé sur le tutoriel(oldtoolbag.com)</title> </head> <body> <h1>Lire les données en utilisant la méthode GET</h1> >Lecture des données des cases à cocher< <li><p><b>站点名:</b> <%= request.getParameter("name") %> </p></li> <li><p><b>网址:</b> <%= request.getParameter("url")%> </p></li> </ul> </body> </html>
Ensuite, nous accédons à http: via le navigateur web//localhost:8080/testjsp/main.jsp?name=JSP教程&url=http://ww.oldtoolbag.com输出结果如下所示:
以下是一个简单的 HTML 表单,该表单通过GET方法将客户端数据提交 到 main.jsp 文件中:
!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basé sur le tutoriel(oldtoolbag.com)</title> </head> <body> <form action="main.jsp" method="GET"> 站点名: <input type="text" name="name"> <br /> 网址: <input type="text" name="url" /> <input type="submit" value="提交" /> </form> </body> </html>
将以上HTML代码保存到test.htm文件中。 将该文件放置于当前jsp项目的 WebContent 目录下(与 main.jsp 同一个目录)。
En accédant à http://localhost:8080/testjsp/test.html 提交表单数据到 main.jsp 文件,图如下所示:
在 "站点名" 与 "网址" 两个表单中填入信息,并点击 "提交" 按钮,它将输出结果。
接下来让我们使用POST方法来传递表单数据,修改main.jsp与Hello.htm文件代码,如下所示:
main.jsp文件代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*" %> !DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basé sur le tutoriel(oldtoolbag.com)</title> </head> <body> <h1>使用 POST 方法读取数据</h1> >Lecture des données des cases à cocher< <li><p><b>站点名:</b> <% // 解决中文乱码的问题 String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8"); > <%=name%> </p></li> <li><p><b>网址:</b> <%= request.getParameter("url")%> </p></li> </ul> </body> </html>
代码中我们使用 new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8")来转换编码,防止中文乱码的发生。
以下是test.htm修改后的代码:
!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basé sur le tutoriel(oldtoolbag.com)</title> </head> <body> <form action="main.jsp" method="POST"> 站点名: <input type="text" name="name"> <br /> 网址: <input type="text" name="url" /> <input type="submit" value="提交" /> </form> </body> </html>
En accédant à http://localhost:8080/testjsp/test.html Soumettre les données du formulaire au fichier main.jsp, comme suit :
复选框 checkbox 可以传递一个甚至多个数据。
以下是一个简单的HTML代码,并将代码保存在test.htm文件中:
!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basé sur le tutoriel(oldtoolbag.com)</title> </head> <body> <form action="main.jsp" method="POST" target="_blank"> <input type="checkbox" name="google" checked="checked" /> Google <input type="checkbox" name="w"3codebox /> Basé sur le tutoriel <input type="checkbox" name="taobao" checked="checked" /> 淘宝 <input type="submit" value="Choisir le site" /> </form> </body> </html>
以上代码在浏览器访问如下所示:
以下为main.jsp文件代码,用于处理复选框数据:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*" %> !DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basé sur le tutoriel(oldtoolbag.com)</title> </head> <body> <h1>Lecture des données des cases à cocher</h1> >Lecture des données des cases à cocher< <ul>/b> <li><p><b>Google est-il sélectionné :< </p></li> <%= request.getParameter("google")%>/b> <li><p><b>Le site Web de base est-il sélectionné :<3<%= request.getParameter("w </p></li> <li><p><b>Le Taobao est-il sélectionné :</b> <%= request.getParameter("taobao")%> </p></li> </ul> </body> </html>
En accédant à http://localhost:8080/testjsp/test.html Soumettre les données du formulaire au fichier main.jsp, comme suit :
Après avoir cliqué sur "Choisir le site" :
Nous allons utiliser HttpServletRequest de getParameterNames() Pour lire tous les paramètres de formulaire, cette méthode peut obtenir le nom de toutes les variables, cette méthode retourne un ensemble.
Une fois que nous avons un Enumeration (枚举), nous pouvons appeler la méthode hasMoreElements () pour déterminer s'il reste des éléments, et utiliser la méthode nextElement () pour obtenir le nom de chaque paramètre.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*" %> !DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basé sur le tutoriel(oldtoolbag.com)</title> </head> <body> <h1>读取所有表单参数</h1> <table width="100%" border="1" align="center"> <tr bgcolor="#949494"> <th>参数名</th><th>参数值</th> </tr> <% Enumeration paramNames = 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> </body> </html>
Voici le contenu du fichier test.htm :
!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Basé sur le tutoriel(oldtoolbag.com)</title> </head> <body> <form action="main.jsp" method="POST" target="_blank"> <input type="checkbox" name="google" checked="checked" /> Google <input type="checkbox" name="w"3codebox /> Basé sur le tutoriel <input type="checkbox" name="taobao" checked="checked" /> Taobao <input type="submit" value="Choisir le site" /> </form> </body> </html>
Maintenant, nous accédons au fichier test.htm via le navigateur pour soumettre des données, et le résultat est le suivant :
En accédant à http://localhost:8080/testjsp/test.html Soumettre les données du formulaire au fichier main.jsp, comme suit :
Après avoir cliqué sur "Choisir le site" :
Vous pouvez essayer d'utiliser le code JSP ci-dessus pour lire d'autres objets, tels que les champs de texte, les boutons radio ou les listes déroulantes, etc.