В Java-сервлетах, почему атрибуты определяются только для контекста, области запросов и сессий? - PullRequest
3 голосов
/ 07 июня 2011

В сервлетах getAttribute() и setAttribute() связаны только с HttpSession, ServletRequest и ServletContext, т. Е. Атрибуты определены только для контекста, области запроса и сеанса.Почему бы, скажем, не ServletResponse или ServletConfig?

Ответы [ 3 ]

6 голосов
/ 07 июня 2011

Атрибуты всегда применяются к некоторой области. Например, если вы хотите, чтобы они применялись только к текущему запросу, вы связываете их с объектом запроса.

Точно так же, если вы хотите, чтобы он применялся к текущему сеансу, вы привязываете их к объекту сеанса. Атрибуты, относящиеся ко всему экземпляру запущенного приложения, задаются в объекте контекста сервлета.

Предложенные вами объекты имеют ту же область действия, что и уже предоставленные. Ответ имеет ту же область действия (время жизни a.k.a), что и запрос. Конфигурация сервлета имеет ту же область действия, что и контекст сервлета.

Следовательно, добавление getAttribute() / setAttribute() к этим методам только добавит путаницы («Я установил атрибут в запросе или в ответе?») И не добавит никаких дополнительных функций.

2 голосов
/ 07 июня 2011
  • ServletConfig предназначен для init-params, определенного в web.xml.
  • Установка атрибута на HttpServletResponse ничего не даст, и также не имеет никакого смысла, так как ответ для клиента -- не от клиента, то есть от браузера, и тем не менее не способного понять это.И вы должны понимать, что JSP и Servlet работают на стороне сервера.Следовательно, размещение атрибутов request в сервлете и получение их в JSP вообще не затрагивает клиента.
0 голосов
/ 07 июня 2011

область «запрос» действительно является областью «запрос-ответ».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...