Когда мы просматриваем Интернет, нам часто необходимо отправить информацию на сервер и позволить фоновой программе обработать ее. Браузер использует методы GET и POST для отправки данных на сервер.
Метод GET добавляет запрошенную информацию о кодировке после URL-адреса, а URL-адрес и информация о кодировке разделяются символом «?». Как показано ниже:
//www.w3cschool.cn/hello?key1=value1&key2=value2
Метод GET является методом передачи параметров браузерами по умолчанию. Рекомендуется не использовать метод GET для некоторой конфиденциальной информации, например паролей.
При использовании get размер передаваемых данных ограничен (обратите внимание, что количество параметров не ограничено) и максимум составляет 1024 байта.
Мы можем передавать некоторую конфиденциальную информацию, например пароли, с помощью метода POST, и данные после отправки являются неявными.
Данные, отправляемые POST, невидимы, а GET передаются в URL-адресе (вы можете посмотреть адресную строку своего браузера).
JSP использует getParameter() для получения переданных параметров, а метод getInputStream() используется для обработки запроса потока двоичных данных клиента.
getParameter(): используйте метод request.getParameter(), чтобы получить значение параметра формы.
getParameterValues(): получение данных, таких как класс флажка (то же имя, но несколько значений). Получать переменные массива, такие как тип флажка.
getParameterNames(): этот метод может получить имена всех переменных. Этот метод возвращает эмуляцию.
getInputStream(): вызовите этот метод, чтобы прочитать поток двоичных данных от клиента.
Ниже приведен простой URL-адрес, в котором для передачи параметров URL-адреса используется метод GET:
http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI
Ниже приведена JSP-программа файла main.jsp для обработки данных формы, отправленных клиентом. Мы используем метод getParameter() для получения отправленных данных:
<html><head><title>Использование метода GET для чтения данных формы</title></head><body><center><h1>Использование метода GET для чтения данных формы</h1><ul><li> <p><b>Имя:</b> <%= request.getParameter("first_name")%></p></li><li><p><b>Фамилия:</b> <%= request.getParameter("last_name")%></p></li></ul></body></html>
Далее мы получаем доступ к http://localhost:8080/main.jsp?first_name=ZARA&last_name=ALI через браузер. Результаты вывода следующие:
Использование метода GET для чтения данных формы. Имя: ZARAL. Фамилия: ALI.
Ниже приведена простая HTML-форма, которая отправляет данные клиента в файл main.jsp с помощью метода GET:
<html><body><form action="main.jsp" метод="GET">Имя: <input type="text" name="first_name"><br />Фамилия: <input type="text " name="last_name" /><input type="submit" value="Submit" /></form></body></html>
Сохраните приведенный выше HTML-код в файл Hello.htm. Поместите этот файл в каталог /webapps/ROOT. При доступе к http://localhost:8080/Hello.htm интерфейс вывода выглядит следующим образом:
Заполните информацию в формах «Имя» и «Фамилия» и нажмите кнопку «Отправить», будут выведены результаты.
Далее давайте воспользуемся методом POST для передачи данных формы и изменим коды файлов main.jsp и Hello.htm следующим образом:
Код файла main.jsp:
<html><head><title>Использование методов GET и POST для чтения данных формы</title></head><body><center><h1>Использование метода GET для чтения данных формы</h1><ul>< li><p><b>Имя:</b> <%= request.getParameter("first_name")%></p></li><li><p><b>Фамилия:</ б> <%= request.getParameter("last_name")%></p></li></ul></body></html>
Ниже приведен измененный код Hello.htm:
<html><body><form action="main.jsp" Method="POST">Имя: <input type="text" name="first_name"><br />Фамилия: <input type="text " name="last_name" /><input type="submit" value="Submit" /></form></body></html>
Откройте http://localhost:8080/Hello.htm через браузер, результат будет следующим:
Заполните информацию в формах «Имя» и «Фамилия» и нажмите кнопку «Отправить», будут выведены результаты.
Флажок-флажок может передавать одно или даже несколько данных.
Ниже приведен простой HTML-код. Сохраните его в файле CheckBox.htm:
<html><body><form action="main.jsp" Method="POST" target="_blank"><input type="checkbox" name="maths"checked="checked" /> Maths<input type= "checkbox" name="физика" /> Физика<input type="checkbox" name="химия" проверено="проверено" /> Химия<input type="submit" value="Выбрать тему" /></form> </body></html>
Ниже приведен код файла main.jsp, используемый для обработки данных флажка:
<html><head><title>Чтение данных флажка</title></head><body><center><h1>Чтение данных флажка</h1><ul><li><p><b>Флаг Maths :</b> <%= request.getParameter("maths")%></p></li><li><p><b>Флаг физики:</b> <%= request.getParameter("физика")%></p></li><li><p><b>Флаг химии:</b> <%= request.getParameter("химия")%></p ></li></ul></body></html>
Выходной результат приведенного выше примера:
Ниже мы будем использовать метод getParameterNames() HttpServletRequest для чтения всех доступных параметров формы. Этот метод может получить имена всех переменных. Этот метод возвращает эмуляцию.
Получив перечисление, мы можем вызвать метод hasMoreElements(), чтобы определить, когда прекратить его использование, и метод nextElement(), чтобы получить имя каждого параметра.
<%@ page import="java.io.*,java.util.*" %><html><head><title>Пример запроса заголовка HTTP</title></head><body><center><h2 >Пример запроса заголовка HTTP</h2><table align="center"><tr bgcolor="#949494"><th>Имя параметра</th><th>Значения параметра</th></tr ><% Имена параметров перечисления = 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>
Ниже приводится содержимое файла Hello.htm:
<html><body><form action="main.jsp" Method="POST" target="_blank"><input type="checkbox" name="maths"checked="checked" /> Maths<input type= "checkbox" name="физика" /> Физика<input type="checkbox" name="химия" проверено="проверено" /> Химия<input type="submit" value="Выбрать тему" /></form> </body></html>
Теперь мы получаем доступ к файлу Hello.htm через браузер и отправляем данные. Вывод выглядит следующим образом:
Вы можете попробовать использовать приведенный выше код JSP для чтения других объектов, таких как текстовые поля, переключатели или раскрывающиеся списки, а также других форм данных.