SORU
21 Temmuz 2009, Salı


Bir ara olmalıdır .() yakın sunucunuz isteğe yanıt.() getOutputStream/.() getWriter?

Biraz Googling ile bu yetkili bir cevap bulamadım. Java sunucu uygulamalarını tek bir yanıt ile yanıt gövde erişebilirsiniz.() getOutputStream veya Yanıt.() getWriter. Bir ara olmalıdır .() kapatmak için yazıldıktan sonra? bu ırmakta

Bir yandan, her zaman çıkış akışı kapatmak için Blochian neyden var. Öte yandan, bu durumda kapatılması gereken temel bir kaynak olduğunu sanmıyorum. Yuva açma/kapama HTTP düzeyde, kalıcı bağlantılar gibi şeyler verir ve böyle yönetilir.

CEVAP
21 Temmuz 2009, Salı


Normalde stream kapatmalısınız. Sunucu uygulaması konteyner otomatik olarak sunucu bölümü yaşam döngüsü istek olarak sunucu uygulaması çalıştıran tamamlandıktan sonra akış kapanacak.

Eğer akışı kapalı örneğin, eğer Filter uygulanan mevcut değildir.

Eğer hiçbir şey yoksa o, dedi ki ... çok kötü tekrar kullanmaya çalışmayın sürece olmayacak.

EDİT: another filter link

EDİT2: adrian.tarau eğer sunucu şeyi yaptı sonra yanıt değiştirmek isterseniz sarıcı uzanan bir HttpServletResponseWrapper oluşturmak ve çıkış tampon gerekir, bu doğru. Bu doğrudan istemci, ama aynı zamanda eğer sunucu uygulaması akışı kapatır korumak için izin verir, bu alıntı başı olarak (vurgu benim) çıktısı tutmak için:

Bir yanıt olmalı değiştiren bir filtre genellikleyakalama önce yanıtı istemci geri döndü. Yol için bu sunucu uygulamasına geçmek için yanıtı bir stand oluşturur stream. -Durmak akışı engeller orijinal kapanış sunucu uygulaması tamamlandığında yanıt akışı ve filtre değiştirmek için izin verir sunucu yanıtı.

Article

Bir sunucu uygulaması gelen outputstream kapanış normal bir durumdur, ama zorunlu olmayan bir şey olduğuna dair resmi Güneş madde olarak algıla.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Tek Syndicate

    Tek Syndicat

    23 Temmuz 2008
  • UlyssesForever's channel

    UlyssesForev

    28 ŞUBAT 2012
  • Videojug

    Videojug

    25 EKİM 2006