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

  • ASUS

    ASUS

    22 EKİM 2005
  • ASUS North America

    ASUS North A

    12 AĞUSTOS 2008
  • whatever

    whatever

    30 EYLÜL 2005