Спецификация Java Server Pages 1.2

       

JSP.8.3 Буферизация


JSP-контейнер буферизует данные (если директива jsp специфицирует это, используя атрибут buffer), когда они высылаются от сервера клиенту.

Headers/"Шапки" клиенту не высылаются, пока не вызван первый метод flush. Следовательно, ни одна из операций, имеющих отношение к шапкам, таких как методы setContentType, redirect или error, не является верной до тех пор, пока метод flush не начнёт выполняться и шапки не начнут высылаться.

Класс javax.servlet.jsp.JspWriter буферизует вывод и высылает его. Класс JspWriter используется в методе _jspService, как в следующем примере:


import javax.servlet.jsp.JspWriter;

static JspFactory _jspFactory = JspFactory.getDefaultFactory();

_jspService(<SRequest> request, <SResponse> response) {

// инициализация неявных переменных ...

PageContext pageContext = _jspFactory.createPageContext(

this,
request,
response,
false,

PageContext.DEFAULT_BUFFER,
false

);

JSPWriter out = pageContext.getOut();

// ....

// .... тело идёт здесь через "out"

// ....

out.flush();

}


Вы можете найти полный листинг javax.servlet.jsp.JspWriter в .


При включённой буферизации, Вы можете всё ещё использовать метод redirect скриптлета в файле .jsp, вызывая response.redirect(какой-то URL) напрямую.



Содержание раздела