Как сервер и/или браузер по-разному обрабатывают файлы JSP и JSPF?

Правка: этот вопрос был задан в ответ на неверные наблюдения, которые я сделал. Пожалуйста, не обращайте внимания.

Я знаю, что JSPF используются для определения фрагментов, которые могут быть включены в JSP.

Помимо этого соглашения, существуют ли различия в том, как сервер (например, Tomcat) или пользовательский агент (например, firefox, бот Google и т. д.) могут обрабатывать файл?

На нашем веб-сайте есть несколько всплывающих окон / диалоговых окон, которые загружаются через AJAX. Содержимое большинства из них хранится внутри файлов JSPF и указывается в URL-адресе (например, http://www.domain.com/folder/file.jspf). Недавно мы обнаружили, что если бы всплывающее окно было внутри JSP, оно вело бы себя по-другому следующим образом:

1) Google проиндексирует ее как отдельную страницу.
2) $(document).ready(function() {alert('this code is executed')}); jQuery никогда не запускается.


person WoodenKitty    schedule 03.09.2015    source источник
comment
Не могли бы вы привести пример того, как Google проиндексировал бы его как отдельную страницу?   -  person Alex Karasev    schedule 22.09.2015


Ответы (2)


Единственный способ разрешить создание URL-адреса для перехода к файлу jspf — это поместить их в тот же каталог, что и обычные файлы JSP. (Это не разрешено, если вы поместите их внутрь /WEB-INF/). Итак, когда вы это сделаете, это будет зависеть от используемого вами контейнера. Tomcat извлечет страницу как текстовый документ. Однако интерфейсный веб-сервер может заблокировать эти URL-адреса. Что такое расширение файла .jspf? Как его скомпилировать?

Надеюсь, поможет.

person Fabri Pautasso    schedule 22.09.2015

Во-первых, браузер напрямую не обрабатывает файлы JSP и JSPF.

Вместо этого браузер запрашивает ресурс по URL-адресу, а сервер (в вашем случае Tomcat) отвечает документом в формате HTML.

Да, вы запросили ресурс .jsp, но сервер скомпилировал страницу, а Tomcat выдал HTML-вывод в браузер.

В этот момент браузер обрабатывал простую HTML-страницу.

Я вижу потенциальную проблему с прямым доступом к файлу JSPF через URL-адрес. Фрагменты должны включаться специальной директивой JSP: include. См. Use of Composite View Patterns в соглашениях о коде.

person Alex Karasev    schedule 18.09.2015
comment
Привет. Спасибо за ваш ответ, но я не думаю, что он отвечает на мой вопрос. Я знаю, что JSP преобразуется сервером в HTML, и я знаю, что JSPF обычно не связываются напрямую. Это не объясняет, почему для браузера и для Google были разные результаты. - person WoodenKitty; 22.09.2015