атрибут только для http-запроса, который помогает сервлетам работать вместе
bitfishxyz
Ответы:
329
getParameter()возвращает параметры http-запроса. Те, которые передаются от клиента к серверу. Например http://example.com/servlet?parameter=1. Могу только вернутьString
getAttribute()только для использования на стороне сервера - вы заполняете запрос атрибутами, которые вы можете использовать в том же запросе. Например - вы устанавливаете атрибут в сервлете и читаете его из JSP. Может использоваться для любого объекта, а не только для строки.
Я полагаю, когда вы используете что-то вроде ${attrName}на странице JSP, эти атрибуты вы устанавливаете request.getSession().setAttribute()?
ha9u63ar
Поскольку атрибут запроса хранится на стороне сервера, могу ли я установить атрибут запроса для межсерверного запроса post-redirect-get? Я хочу отправить информацию с одного сервера на другой сервер в JSF через атрибут в запросе перенаправления. Я могу отправить через POST запрос на данный момент.
user2918640
В этом случае «Параметр» кажется синонимом «строки запроса»
BTRUE
getAttribute()не только для использования на стороне сервера: вы можете получить данные атрибута на
внешнем интерфейсе
49
Обычно параметр - это строковое значение, которое чаще всего известно как отправка от клиента на сервер (например, публикация формы) и извлечение из запроса сервлета . Разочаровывающим исключением из этого являются начальные параметры ServletContext, которые являются строковыми параметрами, которые настроены в web.xml и существуют на сервере.
Атрибут - это серверная переменная, которая существует в указанной области, т.е.
application, доступный для жизни всего приложения
session, доступный для жизни сессии
request, доступно только для жизни запроса
page (Только JSP), доступно только для текущей страницы JSP
«Как правило, параметр является строковым значением» Кроме строк, что мы могли бы посылать?
Мед
^ Объекты как в случае request.setAttribute
Arijit
38
request.getParameter ()
Мы используем request.getParameter()для извлечения параметров запроса (например, данные, отправленные путем размещения формы HTML). request.getParameter()Всегда возвращает Stringзначение и данные от клиента.
request.getAttribute ()
Мы используем , request.getAttribute()чтобы получить объект добавлен в контексте запроса на стороне сервера , то есть используя request.setAttribute(). Вы можете добавить любой тип объекта, который вам здесь нравится Strings, Пользовательские объекты, фактически любой объект. Вы добавляете атрибут к запросу и перенаправляете запрос на другой ресурс, клиент не знает об этом. Таким образом, весь код, обрабатывающий это, обычно находится в JSP / сервлетах. Вы можете использовать request.setAttribute()для добавления дополнительной информации и переадресации / перенаправления текущего запроса на другой ресурс.
В вашем браузере запустите first.jsp? CLIENT = you, и вывод в вашем браузере
FromWhichPage:*first.jsp*DataFromClient: you
Основное различие между getAttribute()и getParameter()заключается в том, что первый метод извлекает (сериализованный) объект Java, а другой предоставляет значение String. В обоих случаях имя дается так, чтобы его значение (будь то строка или Java-бин) можно было искать и извлекать.
Это был отличный пример. Это должен быть принятый ответ. Принятый ответ правильный, но для новичков пример прояснил все. Спасибо.
CapturedTree
26
Важно знать, что атрибуты не являются параметрами .
Тип возвращаемого значения для атрибутов - Объект , тогда как тип возвращаемого значения для параметра - Строка . При вызове getAttribute(String name)метода имейте в виду, что атрибуты должны быть приведены.
Кроме того, отсутствуют специфичные для сервлета атрибуты и отсутствуют параметры сеанса .
Этот пост написан с целью подключения к ответу @ Bozho, как дополнительная информация, которая может быть полезна для других людей.
Разница между getAttribute и getParameter заключается в том, что getParameter будет возвращать значение параметра, который был отправлен в форме HTML или был включен в строку запроса. getAttribute возвращает объект, который вы установили в запросе, единственный способ использовать его в сочетании с RequestDispatcher. Вы используете RequestDispatcher для пересылки запроса другому ресурсу (JSP / Servlet). Поэтому, прежде чем переслать запрос, вы можете установить атрибут, который будет доступен для следующего ресурса.
request.getParameter("testParam")получит значение из размещенной формы поля ввода с именем «testParam», которое является «Client param». Затем он распечатает его, поэтому вы должны увидеть «Client Param» на экране. Поэтому request.getParameter () будет получать значение, которое отправил клиент. Вы получите значение на стороне сервера.
- getAttribute ():request.getAttribute() все это делается на стороне сервера. ВЫ добавляете атрибут к запросу и ВЫ отправляете запрос на другой ресурс, клиент не знает об этом. Таким образом, весь код, обрабатывающий это, обычно будет в servlets.getAttribute всегда возвращать объект.
getParameter - Используется для получения необходимой информации со страницы HTML Клиента.
getAttribute - Это используется для получения параметров, установленных ранее на другой или той же странице JSP или сервлета.
По сути, если вы пересылаете или просто переходите от одного jsp / servlet к другому, нет способа получить нужную информацию, если вы не решите поместить ее в Object и использовать атрибут set для хранения в переменной Session.
Используя getAttribute, вы можете получить переменную Session.
«Параметр» - это пара имя / значение, отправляемая клиентом на сервер - обычно из формы HTML. Параметры могут иметь только строковые значения. Иногда (например, с помощью GET-запроса) вы увидите, что они закодированы непосредственно в URL (после?, Каждый в форме name = value, и каждая пара разделена символом &). В других случаях они включаются в тело запроса при использовании таких методов, как POST.
«Атрибут» - это механизм локального хранения сервера - ничего, хранящегося в атрибутах с областью действия, никогда не передается за пределы сервера, если вы явно не сделаете этого. Атрибуты имеют строковые имена, но хранят значения объектов. Обратите внимание, что атрибуты специфичны для Java (они хранят объекты Java), в то время как параметры не зависят от платформы (они представляют собой только отформатированные строки, составленные из общих байтов).
Всего имеется четыре области действия атрибутов: «страница» (только для JSP и файлов тегов), «запрос» (ограничен текущим запросом клиента, уничтожен после завершения запроса), «сеанс» (сохранен в сеансе клиента, аннулирован после завершения сеанса) «приложение» (существует для доступа всех компонентов в течение всего развернутого времени жизни вашего приложения).
Суть в следующем: используйте параметры при получении данных от клиента, используйте атрибуты области при хранении объектов на сервере для внутреннего использования только вашим приложением.
Ответы:
getParameter()
возвращает параметры http-запроса. Те, которые передаются от клиента к серверу. Напримерhttp://example.com/servlet?parameter=1
. Могу только вернутьString
getAttribute()
только для использования на стороне сервера - вы заполняете запрос атрибутами, которые вы можете использовать в том же запросе. Например - вы устанавливаете атрибут в сервлете и читаете его из JSP. Может использоваться для любого объекта, а не только для строки.источник
${attrName}
на странице JSP, эти атрибуты вы устанавливаетеrequest.getSession().setAttribute()
?getAttribute()
не только для использования на стороне сервера: вы можете получить данные атрибута наОбычно параметр - это строковое значение, которое чаще всего известно как отправка от клиента на сервер (например, публикация формы) и извлечение из запроса сервлета . Разочаровывающим исключением из этого являются начальные параметры ServletContext, которые являются строковыми параметрами, которые настроены в web.xml и существуют на сервере.
Атрибут - это серверная переменная, которая существует в указанной области, т.е.
application
, доступный для жизни всего приложенияsession
, доступный для жизни сессииrequest
, доступно только для жизни запросаpage
(Только JSP), доступно только для текущей страницы JSPисточник
request.getParameter ()
Мы используем
request.getParameter()
для извлечения параметров запроса (например, данные, отправленные путем размещения формы HTML).request.getParameter()
Всегда возвращаетString
значение и данные от клиента.request.getAttribute ()
Мы используем ,
request.getAttribute()
чтобы получить объект добавлен в контексте запроса на стороне сервера , то есть используяrequest.setAttribute()
. Вы можете добавить любой тип объекта, который вам здесь нравитсяStrings
, Пользовательские объекты, фактически любой объект. Вы добавляете атрибут к запросу и перенаправляете запрос на другой ресурс, клиент не знает об этом. Таким образом, весь код, обрабатывающий это, обычно находится в JSP / сервлетах. Вы можете использоватьrequest.setAttribute()
для добавления дополнительной информации и переадресации / перенаправления текущего запроса на другой ресурс.Например, рассмотрим около first.jsp,
и second.jsp:
В вашем браузере запустите first.jsp? CLIENT = you, и вывод в вашем браузере
Основное различие между
getAttribute()
иgetParameter()
заключается в том, что первый метод извлекает (сериализованный) объект Java, а другой предоставляет значение String. В обоих случаях имя дается так, чтобы его значение (будь то строка или Java-бин) можно было искать и извлекать.источник
Важно знать, что атрибуты не являются параметрами .
Тип возвращаемого значения для атрибутов - Объект , тогда как тип возвращаемого значения для параметра - Строка . При вызове
getAttribute(String name)
метода имейте в виду, что атрибуты должны быть приведены.Кроме того, отсутствуют специфичные для сервлета атрибуты и отсутствуют параметры сеанса .
Этот пост написан с целью подключения к ответу @ Bozho, как дополнительная информация, которая может быть полезна для других людей.
источник
Разница между getAttribute и getParameter заключается в том, что getParameter будет возвращать значение параметра, который был отправлен в форме HTML или был включен в строку запроса. getAttribute возвращает объект, который вы установили в запросе, единственный способ использовать его в сочетании с RequestDispatcher. Вы используете RequestDispatcher для пересылки запроса другому ресурсу (JSP / Servlet). Поэтому, прежде чем переслать запрос, вы можете установить атрибут, который будет доступен для следующего ресурса.
источник
- getParameter () :
request.getParameter("testParam")
получит значение из размещенной формы поля ввода с именем «testParam», которое является «Client param». Затем он распечатает его, поэтому вы должны увидеть «Client Param» на экране. Поэтому request.getParameter () будет получать значение, которое отправил клиент. Вы получите значение на стороне сервера.- getAttribute ():
request.getAttribute()
все это делается на стороне сервера. ВЫ добавляете атрибут к запросу и ВЫ отправляете запрос на другой ресурс, клиент не знает об этом. Таким образом, весь код, обрабатывающий это, обычно будет в servlets.getAttribute всегда возвращать объект.источник
getParameter
- Используется для получения необходимой информации со страницы HTML Клиента.getAttribute
- Это используется для получения параметров, установленных ранее на другой или той же странице JSP или сервлета.По сути, если вы пересылаете или просто переходите от одного jsp / servlet к другому, нет способа получить нужную информацию, если вы не решите поместить ее в Object и использовать атрибут set для хранения в переменной Session.
Используя getAttribute, вы можете получить переменную Session.
источник
от http://www.coderanch.com/t/361868/Servlets/java/request-getParameter-request-getAttribute
источник
Другой случай, когда вы должны использовать
.getParameter()
это при пересылке с параметрами в JSP:В
destination.jsp
, вы можете получить доступ кuserName
этому:источник
Основное различие между getAttribute () и getParameter () заключается в типе возвращаемого значения.
источник