Объект запроса и принцип ответа:
*объекты запроса и ответа создаются сервером
Объект *request получает сообщение запроса, а объект ответа устанавливает ответное сообщение.
Структура наследования объекта запроса:
функция объекта запроса:
Получить данные строки запроса:
string getMethod(): получить метод запроса GET
строка getContextPath(): получить виртуальный каталог /day14
Строка getServletPath(): получить путь сервлета/demo1
String getQueryString(): получить параметры запроса метода get name=zhangsan
URI: унифицированный указатель ресурсов
URL: Единый идентификатор ресурса
Строка getRequestURI(): /day14/demo1
StringBuffer getRequestURL(): http://localhost/day14/demo1
Строка getProtocol(): Получить протокол и версию: HTTP/1.1
Строка getRemoteAddr(): получить IP-адрес клиента.
Получить данные заголовка запроса:
String getHeader(String name): получить значение заголовка запроса по имени заголовка запроса
Enumeration<String>getHeaderNames(): получить все имена заголовков запроса.
Просмотр заголовков запроса вывода
Получить user-agent для определения версии браузера:
Хром/Файрфокс
Определите, откуда пришел запрос:
если прямой доступ возвращает null
Противоугонная цепь:
Получить данные тела запроса
Получить объект потока:
BufferedReader getReader(): получает поток ввода символов, может работать только с символьными данными.
ServletInputStream getInputStream(): получить входной поток байтов, может работать со всеми типами данных.
Получить данные из объекта потока:
Распространенный способ получить параметры запроса:
И get, и post могут получать параметры следующими методами.
На данный момент нет разницы между get и post, поэтому код методов doGet и doPost одинаков.
Просто вызовите метод doPost в doGet.
String getParameter (имя строки): получить значение параметра в соответствии с именем параметра.
String[] getParameter(String name): получить массив значений параметров на основе имени параметра, используемого для флажков
Перечисление getParameterNames(): получение имен параметров всех запросов.
Map<String,String[]>getParameterMap(); Получить коллекцию карт всех параметров
Китайская искаженная проблема:
*метод get: tomcat8 решил проблему искажения метода get
*метод post: установить кодировку потока (первая строка)
Переадресация запроса:
Способ прыжка ресурсов внутри сервера
request.getRequestDispatcher("/转发资源路径").forword(request,response);
Функции:
*Путь адресной строки браузера остается неизменным
* Может получить доступ только к ресурсам внутри сервера
*Переадресация — это запрос, несколько ресурсов используют один и тот же запрос
общие данные
Объект домена: объект с областью действия, который может обмениваться данными в пределах области действия.
домен запроса: представляет область запроса, обычно используемую для обмена данными между несколькими ресурсами, пересылаемыми запросом.
метод:
void setAttribute (имя строки, объект obj) хранит данные
Объект getAttribute (имя строки): получить значение по ключу
void removeAttribute (имя строки): удалить пару ключ-значение по значению
Добавить ServletContext: ServletContext getServletContext()