Объект HttpServletRequest представляет запрос клиента. Когда клиент обращается к серверу через протокол HTTP, вся информация в заголовке HTTP-запроса инкапсулируется в этом объекте. Разработчики могут получить информацию о клиенте с помощью методов этого объекта.
Общие методы запроса :
1. Общие методы получения информации о среде клиента :
1. Метод getRequestURL возвращает полный URL-адрес, когда клиент отправляет запрос.
2. Метод getRequestURI возвращает часть имени ресурса в строке запроса.
3. Метод getQueryString возвращает параметрическую часть строки запроса.
4. Метод getRemoteAddr возвращает IP-адрес клиента, отправившего запрос.
5. Метод getRemoteHost возвращает полное имя хоста клиента, отправившего запрос.
6. Метод getRemotePort возвращает номер сетевого порта, используемого клиентом.
7. Метод getLocalAddr возвращает IP-адрес WEB-сервера.
8. Метод getLocalName возвращает имя хоста WEB-сервера.
9.getMethod получает метод запроса клиента.
Скопируйте код кода следующим образом:
пакет com.yyz.request;
импортировать java.io.IOException;
импортировать java.io.OutputStream;
импортировать javax.servlet.ServletException;
импортировать javax.servlet.http.HttpServlet;
импортировать javax.servlet.http.HttpServletRequest;
импортировать javax.servlet.http.HttpServletResponse;
общественный класс RequestDemo расширяет HttpServlet {
public void doGet (запрос HttpServletRequest, ответ HttpServletResponse)
выдает ServletException, IOException {
/**
*URL — это подмножество URI.
* URI используется для идентификации ресурса.
*URL используется для идентификации ресурса в Интернете.
*/
System.out.println(request.getRequestURL());//Получаем URL-адрес запроса
System.out.println(request.getRequestURI());//Получаем запрошенный ресурс
System.out.println(request.getQueryString());
System.out.println(request.getRemoteAddr());//Получить IP посетителя
System.out.println(request.getRemoteHost());
//Поскольку он не зарегистрирован в DNS, результат печати по-прежнему будет 127.0.0.1. Если Baidu обращается к этой программе, выведите www.baidu.com.
System.out.println(request.getRemotePort());//Получаем запрошенный ресурс
System.out.println(request.getMethod());//Получаем запрошенный ресурс
}
public void doPost (запрос HttpServletRequest, ответ HttpServletResponse)
выдает ServletException, IOException {
doGet (запрос, ответ);
}
}
Введите: http://localhost:8080/test/servlet/RequestDemo в адресной строке браузера, и фоновый вывод будет следующим:
2. Получите заголовок запроса клиента :
1.getHeader(имя строки) метод
2.метод getHeaders(имя строки)
3.метод getHeaderNames()
Скопируйте код кода следующим образом:
пакет com.yyz.request;
импортировать java.io.IOException;
импортировать java.util.Enumeration;
импортировать javax.servlet.ServletException;
импортировать javax.servlet.http.HttpServlet;
импортировать javax.servlet.http.HttpServletRequest;
импортировать javax.servlet.http.HttpServletResponse;
//Получаем заголовки запроса
общественный класс RequestDemo расширяет HttpServlet {
public void doGet (запрос HttpServletRequest, ответ HttpServletResponse)
выдает ServletException, IOException {
String head = request.getHeader("Accept-Encoding");
//Некоторые браузеры не поддерживают сжатые данные
if(head.contains("gzip")){
//Вывод сжатых данных
}еще{
//Выводим несжатые данные
}
//Получаем все значения заголовка с указанным именем
Перечисление e = request.getHeaders("Accept-Encoding");
в то время как (e.hasMoreElements ()) {
Строковое значение = (String) e.nextElement();
System.out.println(значение);
}
System.out.println("------------------------");
//Получаем все заголовки и значения
е = request.getHeaderNames();
в то время как (e.hasMoreElements ()) {
Имя строки = (String)e.nextElement();
Строковое значение = request.getHeader(name);
System.out.println(name+"="+value);
}
}
public void doPost (запрос HttpServletRequest, ответ HttpServletResponse)
выдает ServletException, IOException {
doGet (запрос, ответ);
}
}
Откройте программу в браузере, и фоновый вывод будет следующим:
3. Получить параметры клиентского запроса (данные, предоставленные клиентом):
1.метод getParameter(имя)
2.метод getParameterValues(имя строки)
3.метод getParameterNames
4. Метод getParameterMap, широко используемый при создании фреймворков.
пакет com.yyz.request; импорт java.util.Enumeration; импорт java.util.Map.Entry; импорт javax.servlet.http; .HttpServlet импорт javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; //Получить данные запроса public class RequestDemo расширяет HttpServlet { public void doGet(запрос HttpServletRequest, ответ HttpServletResponse) выдает ServletException, IOException { //http://localhost:8080/test/servlet/RequestDemo? name=yyz Строковое значение = request.getParameter("name"); System.out .println(value); //http://localhost:8080/test/servlet/RequestDemo?like=sing&like=dance String Likes[] = request.getParameterValues("like"); if(likes!=null); ){ for(String Like: Likes) { System.out.println(like } }; //Ниже приведен профессиональный способ написания такого обхода, способ получения данных массива (чтобы избежать исключений нулевого указателя) for(int i=0;likes!=null&&i<likes.length;i++){ System.out .println(likes[ i]); } //Получаем все имена и получаем значение на основе имени. Enumeration e = request.getParameterNames(); while(e.hasMoreElements()){ String name = (String) e.nextElement(); value = request.getParameter(name); System.out.println(name+"="+value); } System.out.println("------------- ---------"); //Получаем коллекцию Map, используемую для инкапсуляции данных в объекте запроса Map<String,String[]> map = request.getParameterMap(); for(Entry<String, String[ ] > me : map.entrySet()){ Имя строки = me.getKey(); String [] v = me.getValue(); System.out.println(name+"="+v[0]); public void doPost(запрос HttpServletRequest, ответ HttpServletResponse) выдает ServletException, IOException { doGet (запрос, ответ) } }