Подтвердить что ты не робот

Производительность JSP с использованием jsp: include

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

Я могу принять подход к тому, чтобы оставить как большой монолитный JSP файл, который принимает параметры и соответственно корректирует его поведение. Другой подход, который я могу предпринять, разбивает его на части, чтобы он вызывал через jsp: include.

В чем проблема с производительностью при создании дополнительных запросов запросов, отправляемых с сервера? Лучше ли производительность поддерживать его как одну страницу jsp?

4b9b3361

Ответ 1

jsp:include - это директива времени выполнения, в отличие от директивы <%@ include ... %>, которая является директивой времени компиляции (время перевода, фактически). Директива о времени компиляции относительно безвредна, поскольку JSP обычно предварительно скомпилированы для производства или в худшем случае, скомпилированные для каждого развертывания приложения. По этой причине предпочтительнее использовать директиву времени компиляции для статических файлов, так как файлы не будут меняться во время выполнения.

В runtime include директива на другой голове, если ее неправильно использовать, может привести к некоторому результату, особенно для включения статических файлов. Это связано прежде всего с тем, что контейнер JSP должен будет извлекать содержимое статического файла и включать их в ответ. Следовательно, зарезервируйте использование директивы runtime для действительно полезных сценариев, где в ответ должен быть включен другой ответ сервлета или jsp, а не просто для того, чтобы код выглядел хорошо.

Ответ 2

Вы должны использовать:

<%@ include file="page.jsp" %>

Это добавляет содержимое страницы .jsp во время перевода и нет накладных расходов.

<jsp:include page="page.jsp" />

Ваш подход добавляет содержимое во время выполнения и добавляет много накладных расходов.

Ответ 3

Статический и динамический include

Директива include делает копию включенной страницы и копирует ее на страницу JSP ( "включая страницу" ) во время перевода. Это называется статическим включением (или включает время перевода) и использует следующий синтаксис:

<%@ include file="/jsp/userinfopage.jsp" %>

Действие jsp:include, динамически включает вывод с включенной страницы в вывод страницы включения, во время времени выполнения. Это называется динамическим включением (или включенным временем выполнения) и использует следующий синтаксис:

<jsp:include page="/jsp/userinfopage.jsp" flush="true" />

Рекомендации по производительности

Static включает влияние размера страницы; динамика включает в себя накладные расходы на обработку. Static включает в себя предотвращение накладных расходов диспетчера запросов, который требует динамический, но может быть проблематичным, когда задействованы большие файлы.

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

http://docs.oracle.com/cd/A97336_01/buslog.102/a83726/keydev1.htm#1015959 http://docs.oracle.com/cd/A97336_01/buslog.102/a83726/genlovw3.htm

Ответ 4

Не следует создавать сценарий для загрузки большого количества данных в пользовательский интерфейс за раз, что повлияет на производительность независимо от способа реализации jsp. Будь проще. Поймите, сколько данных пользователь может прочитать в этом конкретном сценарии. Держите пользовательский интерфейс дружелюбным, дружелюбным и техничным.

Вычислить косину много статического/динамического содержимого и использовать include в соответствии с контекстами. Используйте разбиение на страницы с 10 - 50 записями, если вы хотите отображать записи. Используйте любую фреймворк для решения основных проблем, а не для адресации с нуля.

если вам не нужно использовать сеанс в любом jsp s, сделайте его как session false <% @page session = "false" % >

Для директивы include, JSP Engine добавляет содержимое вставленной страницы на этапе перевода, поэтому она не влияет на производительность. Для включения действия JSP Engine добавляет содержимое вставленной страницы во время выполнения, которое налагает дополнительные накладные расходы.