Все классы и интерфейсы Java Server Pages

       

Javax.servlet.jsp Класс JspWriter


java.lang.Object | +--java.io.Writer | +--javax.servlet.jsp.JspWriter

Прямые Известные Подклассы:

public abstract class JspWriterextends java.io.Writer

Акции и шаблонные данные на JSP-странице записываются с использованием JspWriter-объекта, на который ссылаются через неявную переменную out, инициализируемую автоматически, через использование методов в PageContext-объекте.

Этот абстрактный класс эмулирует некоторую функциональность классов java.io.BufferedWriter и java.io.PrintWriter, однако отличие в том, что он взывает java.io.IOException из методов print, в то время как PrintWriter этого не делает.

Буферизация

Начальный/initial JspWriter-объект ассоциируется с PrintWriter-объектом ServletResponse'а способом, зависящим от того, буферизуется страница или нет. Если страница буферизуется, вывод, записываемый в этот JspWriter-объект, будет записываться непосредственно через PrintWriter, который, если необходимо, будет создаваться путём вызова метода getWriter() в объекте response. Но если страница буферизуется, PrintWriter-объект не будет создаваться, пока буфер не очистится и операции типа setContentType() являются законными. Поскольку такая гибкость значительно упрощает программирование, буферизация в JSP-страницах выполняется по умолчанию.

Буферизация затрагивает вопрос: что делать, если буфер заполнен?

Есть два подхода к решению этой проблемы:

    Переполнение буфера не является фатальной ошибкой; если буфер заполнен, вывод просто очищается.

  • Переполнение буфера является фатальной ошибкой; если буфер заполнен, вызывается исключение.

Оба подхода являются верными, и, соответственно, оба поддерживаются JSP-технологией. Поведение страницы контролируется атрибутом autoFlush, который по умолчанию - true. В общем, JSP-страницы, которым необходима гарантия корректности и полноты данных, высылаемых клиенту, могут установить атрибут autoFlush в false, что обычно делается в случае, если клиентом является само приложение. С другой стороны, JSP-страницы, отсылающие данные клиенту, могут даже после частичного конструирования установить атрибут autoFlush в true; что делается тогда, когда данные сразу выводятся через браузер. Каждое приложение действует в соответствии со своими потребностями.


Альтернативным было снятие ограничений на размер буфера; но это имело тот недостаток, что вычисления на этапе прогона могли поглотить неограниченное количество ресурсов ОС.



Неявная переменная "out" класса реализации JSP имеет этот тип. Если директива page избирает autoflush="true", тогда все операции I/O (ввода-вывода) этого класса автоматически очищают содержимое буфера, если условие overflow/переполнение могло бы возникнуть при выполнении текущей операции без очистки. Если autoflush="false", тогда все операции I/O (ввода-вывода) этого класса будут вызывать исключение IOException, если при выполнении текущей операции приводит к условию overflow/переполнения буфера.

См. также:Writer, java.io.BufferedWriter, PrintWriter

Поле. Резюме.
protected boolean

           
protected  int

           
static int

          константа, указывающая, что Writer буферизуется и использует размер буфера по умолчанию для данной реализации.
static int

          константа, указывающая, что Writer не буферизует вывод.
static int

          константа, указывающая, что Writer буферизуется и размер буфера не ограничен; это используется в BodyContent.
 
Поля, унаследованные от класса java.io.Writer
lock
Конструктор. Резюме.
protected (int bufferSize, boolean autoFlush)

          protected-конструктор.
Метод. Резюме.
abstract  void ()

          Очищает содержимое буфера.
abstract  void ()

          Очищает текущее содержимое буфера.
abstract  void ()

          Закрывает поток, предварительно очистив его. Этот метод не должен вызываться явно для начального/initial JspWriter'а, так как код, генерируемый JSP-контейнером, будет автоматически включать вызов close().
abstract  void ()

          Очищает поток.
 int ()

          Этот метод возвращает размер буфера, используемого JspWriter'ом.
abstract  int ()

          Этот метод возвращает количество неиспользуемых байтов буфера.
 boolean ()

          Этот метод указывает, очищается ли JspWriter автоматически.
abstract  void ()

          Записывает символы новой строки.
abstract  void (boolean b)

          Печатает булево значение.
abstract  void (char c)

          Печатает символ.
abstract  void (char[] s)

          Печатает массив символов.
abstract  void (double d)

          Печатает число с плавающей точкой двойной точности.
abstract  void (float f)

          Печатает число с плавающей точкой.
abstract  void (int i)

          Печатает целое число.
abstract  void (long l)

          Печатает длинное целое число.
abstract  void (java.lang.Object obj)

          Печатает объект.
abstract  void (java.lang.String s)

          Печатает строку.
abstract  void ()

          Заканчивает текущую строку печатью символов новой строки.
abstract  void (boolean x)

          Печатает булево значение и затем оканчивает строку.
abstract  void (char x)

          Печатает символ и затем оканчивает строку.
abstract  void (char[] x)

          Печатает массив символов и затем оканчивает строку.
abstract  void (double x)

          Печатает число с плавающей точкой двойной точности и затем оканчивает строку.
abstract  void (float x)

          Печатает число с плавающей точкой и затем оканчивает строку.
abstract  void (int x)

          Печатает целое число и затем оканчивает строку.
abstract  void (long x)

          Печатает длинное целое число и затем оканчивает строку.
abstract  void (java.lang.Object x)

          Печатает Object и затем оканчивает строку.
abstract  void (java.lang.String x)

          Печатает String и затем оканчивает строку.
<


 
Методы, унаследованные от класса java.io.Writer
write, write, write, write, write
 
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Поле. Детали.

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