Вы опустили заголовок и текст, предшествующий вашей цитате. Они обеспечивают важный контекст для комментариев, о которых вы спрашиваете:
Включение других ресурсов в ответ
Часто бывает полезно включить другой веб-ресурс, например, баннер
содержание или информация об авторских правах, в ответе, возвращенном из Интернета
составная часть. Чтобы включить другой ресурс, вызовите метод include объекта
Объект RequestDispatcher:
include(request, response);
Таким образом, когда комментарии продолжаются с
Если ресурс статический, метод include включает программные включения на стороне сервера.
они характеризуют эффект предыдущего фрагмента кода, не привнося какой-либо новой концепции. «Программное включение на стороне сервера» в этом контексте означает , вызывая include()
метод RequestDispatcher()
, связанный со статическим ресурсом. В результате включается ресурс, связанный с диспетчером, встроенный в готовящийся ответ. Таким образом, это «серверная сторона», потому что все это выполняется сервером прозрачно для клиента, в отличие от того, что клиенту приходится делать отдельный запрос для включенного ресурса. *
Различие между случаями статического и веб-компонента заключается в ресурсе, связанном с RequestDispatcher
, для которого вызывается метод include()
- , т.е. , какой ресурс должен быть включен - не о компонент, код которого содержит вызов метода. Статический ресурс - это ресурс, который можно идентифицировать по URL-адресу, который не связан с веб-компонентом. Обычно это означает, что он соответствует файлу. Содержимое файла может быть любым, но обычно используется фрагмент HTML, такой как верхний или нижний колонтитул, общий для многих веб-страниц.
Я имею в виду, независимо от того, какой ресурс я включаю, я передаю
запрос / ответ объект кортежа к нему и получить некоторые побочные эффекты, которые я
может или не может общаться с клиентом, верно?
Более точно рассматривать его как передачу объекта запроса и ответа на RequestDispatcher
. В случае, если диспетчер связан со статическим ресурсом, нет, объекты запроса и ответа не представлены этому ресурсу (самому себе), потому что у него нет механизма их получения или манипулирования ими. Вместо этого механизм сервлета, в котором выполняется код, манипулирует объектом ответа, когда он решает, что это уместно.
В случае, если целевой ресурс является веб-компонентом, да, он сможет считывать данные из предоставленного запроса, манипулировать запросом и его контекстом, а также манипулировать предоставленным ответом по своему усмотрению. Как правило, он не может отличить этот случай от того, в котором он доступен напрямую. Но нет, компонент, вызывающий include()
, имеет в лучшем случае ограниченный контроль над тем, что сообщается клиенту через этот механизм.
* Для получения дополнительной информации об истории и вдохновляющей части «серверной части» см. Wikipedia .