Utilisez d'abord une interface de soumission des utilisateurs comme exemple (zone de texte, boîte de mot de passe, sélection, formulaire déroulant, etc.), l'effet est le suivant
<! Doctype html public "- // w3c // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" contenu-type "content =" text / httml; Charset = UTF-8 "> <Title> Enregistrement de l'utilisateur </ Title> </ Head> <Body> <! - Enregistrement des utilisateurs -> <formulaire Action =" / RequestTest / Request5 "Method =" Get "> <Table> <! - Text Input Box" Box -> <tr> <Td> Mot de passe </td> <td> <entrée type = "mot de passe" name = "mot de passe" /> </td> </tr> <! - Radio Button Radio -> <Tr> <Td> Gender </td> <Td> <Entrée Type = "Radio" Name = "Gender" Value = "Male" / Male <Entrée = "Radio" Name = "Gender" Value = "Femel" /> " Femme </td> </tr> <! - Cochez la case -> <tr> <td> hôtes </td> <td> <entrée type = "checkbox" name = "hobby" value = "sport" /> sport <entrée type = "checkbox" name = "hobby" value = "music" /> music <entrée type = "checkbox" name = "hobby" value = "jeu" /> games </ td> Box -> <Tr> <Td> City </td> <Select Name = "City"> <Option Value = "Beijing"> Beijing </ Option> <Option Value = "Shanghai"> Shanghai </ Option> <Option Value = "Shenzhen"> Shenzhen </ Option> </lect> </td> <! - Multi-Line Text Box -> </ TD> Profil </td> <td> <TextArea Rows = "5" Cols = "60" name = "introdu"> </ textarea> </td> </tr> <tr> <td Colspan = "2"> <entrée Type = "Value =" Register "/> </td> </tr> </pable> </ form> </odody> </html>
Remarque: La définition et l'utilisation de la balise HTML <form> sont:
<! - L'attribut d'action requis spécifie où envoyer des données de formulaire lors de la soumission d'un formulaire. -> <form action = "value">
La valeur d'attribut est une URL, indiquant où envoyer des données de formulaire. Ses valeurs possibles:
URL absolue - pointer vers d'autres sites (comme src = ”www.example.com/example.htm”)
URL relative - pointer des fichiers dans le site (tels que src = ”example.htm”)
Par exemple, le formulaire suivant a deux champs d'entrée et un bouton de soumission. Lors de la soumission du formulaire, les données du formulaire sont soumises à une page nommée "form_action.asp":
<form action = "form_action.asp" méthode = "get"> <p> premier nom: <input type = "text" name = "fname" /> </p> <p> nom de famille: <input type = "text" name = "lname" /> </p> <input type = "soumed" value = "soumed" /> </ form>
La méthode est GET, donc les informations sont récupérées dans la méthode Doget du servlet
Classe publique RequestServlet5 étend httpServlet {public void doget (httpservletRequest request, httpservletResponse réponse) lève ServletException, ioException {// résoudre le code brouillé // request.SetcharacteRencoding ("utf-8"); // obtenir des données spécifiées via GetParAmètre String username = request.getParameter ("nom d'utilisateur"); System.out.println (nom d'utilisateur); // Obtenez une valeur // Solve Get Brebbled Code (par exemple, entrez chinois) --- Utilisez un codage manuel // username = urlencoder.encode (nom d'utilisateur, "iso-8859-1"); // Encoding avec ISO // username = urldecoder.decode (username, "utf-8"); // Décodage avec utf-8 username = new String (username.getBytes ("iso-8859-1"), "utf-8"); System.out.println (nom d'utilisateur); // non-null vérification if (username! = Null && username.trim (). Length ()> 0) {System.out.println ("Username légal");} // Utiliser GetParameter pour obtenir une basse à bascule (coche) pour soumettre des données. Par défaut, seules les premières données peuvent être obtenues. String hobby = request.getParameter ("hobby"); // Box System.out.out.println (Hobby); // Obtenez toutes les données soumises pour cocher --- GetParameTervaluesString [] Hobbies = request.getParameTervalues ("Hobby"); System.out.println (arrays.tostring (hobbies)); System.out.println ("------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- request.getParameTernames (); while (names.hasmoreElements ()) {String name = names.nextElement (); Arrays.tostring (request.getParameTervalues (nom)));} System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Paramettermap.KeySet (); For (String Key: Keys) {// Key est le paramètre namesystem.out.println (Key + ":" + Arrays.Tostring (ParameTermap.get (Key)));}} public void dopost (httpservlerequest request, httpservetResponse réponse) throws servletException, ioexception {Doget (demande, réponse) throws servletException, ioexception {Doget (demande, réponse) throws servletException, ioexception {Doget (demande, réponse) Throws ServletException, ioException {Doget (demande, réponse) Throws ServletException, ioException {Doget (demande, réponse) Throws ServletException, IoException {Doget (demande de réponse, tram réponse);}}Raisons des paramètres brouillés
L'encodage d'URL est un format utilisé par les navigateurs pour emballer l'entrée du formulaire. Le navigateur obtient tous les noms et valeurs du formulaire, les code dans les paramètres de nom / valeur (supprime les caractères qui ne peuvent pas être transférés, classent les données, etc.) dans le cadre de l'URL ou les envoient séparément au serveur.
Différentes méthodes de demande correspondent à différentes solutions:
post ``-- request.SetcharAtterencoding (" Set d'encodage client ");
Obtenir du code brouillé résout manuellement
username = urlencoder.encode (nom d'utilisateur, "ISO-8859-1"); // Encode username = urlDEcoder.decode (username, "utf-8"); // décoder avec UTF-8
Simplifiez la méthode d'écriture ci-dessus: username = new String (username.getBytes ("ISO-8859-1"), "UTF-8");
Obtenir une configuration brouillée
dans tomcat / conf / server.xml
Ajouter une propriété uriencoding = "utf-8" dans le connecteur
Conclusion: Pendant le développement, essayez de ne pas modifier l'ensemble de décodage par défaut de Tomcat. Veuillez essayer d'utiliser le poste autant que possible pour soumettre une demande. Si vous devez utiliser Get, encodez manuellement.