Сначала используйте интерфейс отправки пользователя в качестве примера (текстовое поле, поле пароля, выбор, раскрывающийся форма и т. Д.), Эффект заключается в следующем
<! Doctype html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose.dtd"><html><head> meta http-equiv =" content-vent "content" html; charset = utf-8 "> <title> Регистрация пользователя </title> </head> <body> <!-Регистрация пользователя-> <form action ="/requestSt/request5 "method =" get "> <table> <!-Text Input Box-> <TR> <TD> userName </td> <td> <pow BOX-> <TR> <TD> Пароль </td> <td> <input type = "password" name = "password"/> </td> </tr> <!-Радиобатовое радио-> <tr> <td> гендер </td> <td> <input type = "radio" name = "gende" value = "male" male <type = "name" Женский </td> </tr> <!-флажок-> <Tr> <td> Хост </td> <td> <input type = "fackbox" name = "hobby" value = "sport"/> sports <input type = "fackbox" name = "hobby" value = "music"/> music <input = "fackbox" = "hobby" value = "game"/> games </>-trd> </> </> </>-trd> </>-trd> </> </> </>-trd>-tr. Box-> <Tr> <Td> City </td> <select name = "city"> <vitue value = "beijing"> pecijing </option> <option value = "shanghai"> shanghai </option> <опция Value = "shenzhen"> Shenzhen </option> </selet> </td> <!-Multi-line-Tr. Профиль </td> <td> <TextARea Rows = "5" cols = "60" name = "ввести"> </textarea> </td> </tr> <tr> <td colspan = "2"> <input type = "value =" Register "/> </td> </tr> </table> </form> </body> </html> </td> </tr> </table> </form> </body> </html> </td> </tr> </table> </form> </body> </html>
Примечание. Определение и использование тега HTML <Form>:
<!-Требуемый атрибут действия Указывает, куда отправлять данные формы при отправке формы. -> <form action = "value">
Значение атрибута является URL, указывающим, куда отправлять данные формы. Это возможные ценности:
Абсолютный URL - укажите на другие сайты (например, src = ”www.example.com/example.htm»)
Относительный URL - укажите на файлы на сайте (например, src = ”example.htm»)
Например, следующая форма имеет два поля ввода и кнопку отправки. При отправке формы данные формы отправляются на страницу с именем "form_action.asp":
<form action = "form_action.asp" method = "get"> <p> Имя: <input type = "text" name = "fname" /> < /p> <p> fastectom
Метод получен, поэтому информация получена в методе Сервлета Додета
Public Class RequestServlet5 Extends httpservlet {public void Doget (httpservlectrequest-запрос, httpservletresponse response) throws servletexception, ioexception {// Решение по послеобеденной коде // request.setcharacterencoding ("utf-8"); // get-aepfied data getparameter string username = = request.getParameter ("username"); System.out.println (имя пользователя); // Получить значение // Решение GET искаженное код (например, введите китайский) --- Использование ручного кодирования // username = urlencoder.encode (имя пользователя, "iso-8859-1"); // Кодирование с iso // username = urldecoder.decode (username, "utf-8"); // декодирование с помощью UTF-8 username = new String (username.getbytes ("iso-8859-1"), "UTF-8"); System.out.println (username); // не нулевая проверка if (username! = Null && username.trim (). Length ()> 0) {System.out.println ("username Legal");} // Использование getParameter для получения флажки (флажок) для отправки данных. По умолчанию можно получить только первые данные. String Hobby = request.getParameter ("Hobby"); // System System.out.out.println (Hobby); // Получить все представленные данные для флажести --- getParametervaluesstring [] Hobbies = request.getParameterValues("hobby");System.out.println(Arrays.toString(hobbies));System.out.println("------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- request.getParameternames (); Arrays.toString(request.getParameterValues(name)));}System.out.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- parametermap.keyset (); for (string key: keys) {// key - это параметры nameystem.out.println (key + ":" + arrays.tostring (parametermap.get (key)));}} public void dopost (httpservlectrequest, httpserverser repressesson ответ);}}Причины искаженных параметров
Кодирование URL - это формат, используемый браузерами для ввода формы упаковки. Браузер получает все имена и значения из формы, кодирует их по параметрам имени/значению (удаляет те символы, которые не могут быть переданы, ранжируют данные и т. Д.) Как часть URL -адреса или отдельно отправляет их на сервер.
Различные методы запроса соответствуют различным решениям:
post ―- Quest.setcharacterencoding («Набор кодировки клиента»);
Get искаженного кода решает вручную
username = urlencoder.encode (имя пользователя, "iso-8859-1"); // кодировать username = urldecoder.decode (имя пользователя, "UTF-8"); // Декодируйте с UTF-8
Упростите приведенный выше метод написания: username = new String (username.getbytes ("iso-8859-1"), "UTF-8");
Получить искаженную конфигурацию Tomcat по умолчанию набор символов.
в Tomcat/conf/server.xml
Добавить свойство uriencoding = "utf-8" в разъем
Вывод: во время разработки старайтесь не изменять набор декодирования по умолчанию Tomcat. Пожалуйста, постарайтесь использовать как можно больше сообщения, чтобы отправить запрос. Если вам нужно использовать Get, вручную кодируйте его.