2013-02-01 5 views
2

Некоторая документация на веб-сайте компании Oracle (http://docs.oracle.com/cd/A97688_16/generic.903/bp/j2ee.htm, 3.1.12 Отключить JSP Page Buffer Если не используется) говорит:Когда вы должны отключить буферизацию JSP?

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

<%@ page buffer="none" %>

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

При каких обстоятельствах вы должны отказаться от буферизации и/или при каких обстоятельствах НЕ ВЫКЛЮЧИТЬ буферизацию?

ответ

1

На самом деле, у меня просто был момент «духа». Есть вещи, которые вы можете сделать в JSP, которые манипулируют заголовками, возвращенными с ответом, например response.setHeader(...) или <jsp:forward />. Они, очевидно, должны всегда возникать до того, как ответ будет зафиксирован, и данные начнут поступать клиенту. Если вы отключили буферизацию, вы никогда не сможете установить заголовки или использовать тег пересылки, что может или не желательно, потому что данные сразу начнут поступать клиенту. Я не знаю, почему я не просто подумал об этом ...

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

Если кто-то может исправить меня или опубликовать лучший ответ в течение следующих двух дней, я с радостью буду считать это ответом.