2016-03-21 2 views
5

JSP-файл, как и файл HTML, можно запросить прямо в URL-адресе. Тем не менее, файл JSP компилируется во время выполнения, а файл HTML - нет (хотя оба они запрашиваются одинаково). Даже JSP-файл без динамического содержимого компилируется во время выполнения, потому что он внутренне преобразуется в сервлеты. Мы можем включить HTML-файл в JSP-файл, но не наоборот. Существует так много компонентов, связанных с предоставлением ресурса пользователю (Servlets, Request, Response, Webserver и т. Д.).JSP-контент в визитной карточке

  1. Какой компонент решает, должен ли файл быть скомпилирован, если посмотреть на его расширение?

  2. Sightly - это HTML-файл и может содержать JSP-код внутри его тела, который в идеале не должен компилироваться, а делать. Как?

+0

Все файлы JSP преобразуются в Serlvet. После преобразования его не перекомпилируется, если не будет изменен JSP-файл. Даже простой HTML-файл, сохраненный как jsp, будет преобразован в сервлет. – asb

+0

Что о файле html, сохраненном как html, который содержит код, связанный с jsp внутри? Это работает замечательно! –

+0

Он будет печатать код jsp как обычный текст. – Dhruv

ответ

2

красивые может быть включен только как часть компоненты. Хотя зрелище - HTML5 (заканчивается на .html), наглядно компилируется Sightly engine. Таким образом, возможно иметь визитный файл, содержащий JSP-файл.

2

Не совсем уверен, что я понимаю, что ваши вопросы, но вот моей попытка

  1. Если нет сервлетов, определенных для пути, то Apache Sling будет выяснить, какой «скриптовый движок» использовать на основе таких вещей, как метод http-запроса и расширение (.jsp vs .html). See here. Это зависит от двигателя (например, JSP-движка или Sightly engine), чтобы выяснить, что делать с запросом после этого.

  2. Если у вас есть JSP-код, написанный внутри видимого файла, он просто будет распечатан в ответ. Я проверил это, используя Sightly Repl на моем локальном хосте.

так красивый файл foo.html с содержанием

<c:set var="foo" value="bar"/> 
<div>${foo}</div> 

Результаты в ответ, который выглядит следующим образом.

<c:set var="foo" value="bar"/> 
<div></div> 

Вы можете видеть, что Sightly не делает ничего, чтобы вырезать или оценить тег jsp. ${foo} исчезнет, ​​потому что нет видимой переменной, называемой foo в области видимости.


Другое примечание. Фактически вы можете включить JSP-файл из Sightly.

Вот пример из Adobe's docs:

<section data-sly-include="path/to/template.jsp"></section> 
Смежные вопросы