Mercurial > pub > Impl
comparison Lib/IMPL/Web/Application/Response.pm @ 180:d1676be8afcc
Перекодировка в utf-8
author | sourcer |
---|---|
date | Fri, 30 Dec 2011 23:40:00 +0300 |
parents | aaab45153411 |
children | 4d0e1962161c |
comparison
equal
deleted
inserted
replaced
179:b3d91ff7aea9 | 180:d1676be8afcc |
---|---|
12 use IMPL::Class::Property; | 12 use IMPL::Class::Property; |
13 | 13 |
14 #todo: add binary method to set a binary encoding, set it automatic when type isn't a text | 14 #todo: add binary method to set a binary encoding, set it automatic when type isn't a text |
15 | 15 |
16 BEGIN { | 16 BEGIN { |
17 # | 17 # автозаполнение буде происходить в порядке объявления |
18 public property query => prop_get | owner_set; # cgi query | 18 public property query => prop_get | owner_set; # cgi query |
19 public property status => prop_all, { validator => \&_checkHeaderPrinted }; | 19 public property status => prop_all, { validator => \&_checkHeaderPrinted }; |
20 public property contentType => prop_all, { validator => \&_checkHeaderPrinted }; # String | 20 public property contentType => prop_all, { validator => \&_checkHeaderPrinted }; # String |
21 public property charset => { get => \&_charset, set => \&_charset }, { validator => \&_checkHeaderPrinted }; | 21 public property charset => { get => \&_charset, set => \&_charset }, { validator => \&_checkHeaderPrinted }; |
22 public property expires => prop_all, { validator => \&_checkHeaderPrinted }; | 22 public property expires => prop_all, { validator => \&_checkHeaderPrinted }; |
190 | 190 |
191 =pod | 191 =pod |
192 | 192 |
193 =head1 NAME | 193 =head1 NAME |
194 | 194 |
195 C<IMPL::Web::Application::Response> - . | 195 C<IMPL::Web::Application::Response> - Ответ веб сервера непосредственно клиенту. |
196 | 196 |
197 =head1 DESCRIPTION | 197 =head1 DESCRIPTION |
198 | 198 |
199 C<[Infrastructure]> | 199 C<[Infrastructure]> |
200 | 200 |
201 . | 201 Позволяет сформировать основные свойства заголовка и тело ответа. |
202 | 202 |
203 C<IMPL::Web::Application::Action> . | 203 Создается объектом C<IMPL::Web::Application::Action> в процессе обработки запроса. |
204 | 204 |
205 C<IMPL::Web::QueryHandler> . | 205 Может использоваться обработчиками C<IMPL::Web::QueryHandler> в процессе выполнения запроса. |
206 | 206 |
207 , | 207 Объект позволяет буфферизировать вывод в тело ответа, что позволяет отменить или изменить |
208 . C< isHeaderPrinted > | 208 ответ в последний момент. Свойство C< isHeaderPrinted > используется для определения факта |
209 . | 209 отправлки данных клиенту. |
210 | 210 |
211 =head1 PROPERTIES | 211 =head1 PROPERTIES |
212 | 212 |
213 =head2 HTTP Header | 213 =head2 HTTP Header |
214 | 214 |
215 HTTP . | 215 Свойства отвечающие за заголовок HTTP ответа. Эти своства могут быть изменены до тех пор пока |
216 . C< IMPL::InvalidOperationException >. | 216 не будет отправлен заголовок. В противном случае выдается исключение C< IMPL::InvalidOperationException >. |
217 | 217 |
218 =over | 218 =over |
219 | 219 |
220 =item C< [get] query > | 220 =item C< [get] query > |
221 | 221 |
222 CGI , , . . | 222 CGI запрос, который используется для вывода данных, заголовка и пр. Существует всегда. |
223 | 223 |
224 =item C< [get,set] status > | 224 =item C< [get,set] status > |
225 | 225 |
226 HTTP. , '200 OK'. , '200 '. | 226 Код ошибки HTTP. Например, '200 OK'. По умолчанию не установлен, при отправке клиенту бедт отправлен '200 ОК'. |
227 | 227 |
228 =item C< [get,set] contentType > | 228 =item C< [get,set] contentType > |
229 | 229 |
230 MIME. , 'text/html'. | 230 Тип MIME. По умолчанию не установлен, подразумивается 'text/html'. |
231 | 231 |
232 =item C< [get,set] charset > | 232 =item C< [get,set] charset > |
233 | 233 |
234 , query->charset. | 234 Кодировка, синоним свойства query->charset. |
235 | 235 |
236 =item C< [get,set] expires > | 236 =item C< [get,set] expires > |
237 | 237 |
238 , '+10m'. . | 238 Определяет время жизни контента, например '+10m'. По умолчанию не задано и не передается. |
239 | 239 |
240 =item C< [get,set] cookies > | 240 =item C< [get,set] cookies > |
241 | 241 |
242 cookies, C< { cart => ['foo','bar'], display => 'list' } >. | 242 Хеш массив с cookies, например C< { cart => ['foo','bar'], display => 'list' } >. |
243 | 243 |
244 =back | 244 =back |
245 | 245 |
246 =head2 Response behaviour | 246 =head2 Response behaviour |
247 | 247 |
248 . | 248 Свойства отвечающие за поведение ответа. |
249 | 249 |
250 =over | 250 =over |
251 | 251 |
252 =item C< [get,set] buffered > | 252 =item C< [get,set] buffered > |
253 | 253 |
254 C< True > - C< Complete >, | 254 C< True > - то тело ответа пишется в буффер и будет отправлено при вызове метода C< Complete >, |
255 C< Complete >. | 255 заголовок также будет отправлен после вызова метода C< Complete >. |
256 | 256 |
257 C< False > - , | 257 C< False > - тело ответа пишется непосредственно в поток к клиенту, при этом заголовок |
258 C< streamBody > | 258 будет отправлен при первом обращении к свойству C< streamBody > |
259 | 259 |
260 . | 260 Это свойство можно менять до первого обращения к потоку для записи в тело ответа. |
261 | 261 |
262 =item C< [get] streamOut > | 262 =item C< [get] streamOut > |
263 | 263 |
264 CGI . | 264 Стандартный вывод CGI приложения. |
265 | 265 |
266 =item C< [get] streamBody > | 266 =item C< [get] streamBody > |
267 | 267 |
268 . | 268 Поток для записи в тело ответа. |
269 | 269 |
270 =item C< [get] isHeaderPrinted > | 270 =item C< [get] isHeaderPrinted > |
271 | 271 |
272 , . | 272 Признак того, что заголовок уже был отправлен клиенту. |
273 | 273 |
274 =back | 274 =back |
275 | 275 |
276 =head1 METHODS | 276 =head1 METHODS |
277 | 277 |
278 =over | 278 =over |
279 | 279 |
280 =item C< Complete > | 280 =item C< Complete > |
281 | 281 |
282 . | 282 Завершает отправку ответа. |
283 | 283 |
284 =item C< Discard > | 284 =item C< Discard > |
285 | 285 |
286 , (, ) | 286 Отменяет отправку ответа, при этом если часть данных (например, заголовок) |
287 , STDERR. | 287 уже была отправлена, выдает предупреждение в STDERR. |
288 | 288 |
289 =back | 289 =back |
290 | 290 |
291 =head1 REMARKS | 291 =head1 REMARKS |
292 | 292 |
293 , .. | 293 Данный объект является автозаполняемым, т.е. все его свойства можно задать через |
294 . | 294 именованные параметры конструктора. |
295 | 295 |
296 =cut | 296 =cut |