[Seasar-user:7028] Re: [Teeda]ServletResponseのContentTypeの設定タイミングについて

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2007年 4月 3日 (火) 10:28:37 JST


大谷です。

いくつか今リリースに含めたいものがあるので、
今月中に1回出したいと考えています。

07/04/02 に 関 真理子<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 関です。
>
> > > フィードバック頂いた内容にそって対応しました。
> > ありがとうございます。
> > 最新ソースで試してみたいと思います。
> 最新ソースで、ContentTypeが設定されることを確認いたしました。
> ありがとうございます。
>
> ちなみに、
> 次バージョンのリリースはいつごろになりそうでしょうか?
>
>
> On Mon, 02 Apr 2007 14:06:23 +0900
> 関 真理子 <[E-MAIL ADDRESS DELETED]> wrote:
>
> > 関です。
> >
> > > フィードバック頂いた内容にそって対応しました。
> > ありがとうございます。
> > 最新ソースで試してみたいと思います。
> >
> >
> >
> > On Mon, 2 Apr 2007 13:53:48 +0900
> > "Shinpei Ohtani" <[E-MAIL ADDRESS DELETED]> wrote:
> >
> > > 大谷です。
> > >
> > > フィードバック頂いた内容にそって対応しました。
> > > 次のバージョンにて反映されます。
> > >
> > > 宜しくお願いします。
> > >
> > > 07/04/02 に Shinpei Ohtani<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > > 関さん、
> > > >
> > > > 大谷です。
> > > >
> > > > フィードバックありがとうございます。
> > > > 下記内容を調査・検討してみます。
> > > >
> > > > 宜しくお願いします。
> > > >
> > > > 07/03/30 に 関 真理子<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > > > > いつもお世話になっております。関です。
> > > > >
> > > > > Teeda-1.0.6 を利用しております。
> > > > >
> > > > >
> > > > > ServletResponseのContentTypeの設定タイミングについてのご相談です。
> > > > >
> > > > > 現在開発中のアプリで、8Kを超えるHTMLを表示しようとすると、
> > > > > ResponseのContentTypeがnullとなる問題が発生しております。
> > > > >
> > > > > そのため、サーバ構成をApache + Tomcat とした場合に、
> > > > > FireFoxにてHTMLがテキストとして表示されてします。
> > > > >  ※IEでは問題無し。
> > > > >  ※Tomcatのみでは、IE・FireFoxともに問題無し。
> > > > >
> > > > >
> > > > > ResponseRenderPhaseの処理を確認したところ、以下の点に気づきました。
> > > > >
> > > > > TViewTag.doStartTag()にてsetContentType()が呼び出されているのですが、
> > > > > その処理の前のsuper.doStartTag()にて実行される各ConponentのencodeBegin()の処理によって
> > > > > ResponseのBufferSizeを超えるwrite()が実行され、
> > > > > Servlet内部でsendBuffer()をされてしまっているように思えました。
> > > > >
> > > > > # HTMLのサイズがおよそ8Kを超えたあたりでisCommitted()がtrueの状態になりました。
> > > > > # また、事前にResponse.setBufferSize()を極端に大きく設定すると現象は発生しませんでした。
> > > > >
> > > > >
> > > > > どうやら、ResponseにsetContentType()する前に、
> > > > > ResponseのBufferSizeを超えるwrite()が実行されると、
> > > > > Responseがコミット(isCommitted()がtrueの状態)となり、
> > > > > その後のsetContentType()が反映されず、
> > > > > ServletResponse.getContentType()がnullとなってしまうようです。
> > > > >
> > > > >
> > > > > 回避策として、独自のServletFilterで、
> > > > > Request開始時に明示的にsetContentType()を指定しています。
> > > > >
> > > > >
> > > > > TViewTag.doStartTag()内のsetContentType()の呼び出しタイミングを
> > > > > もっと早くすればよいのかなと思うのですが、いかがでしょうか?
> > > > > (それとも、ContentTypeはアプリ側で明示的に設定するべきでしょうか?)
> > > > >
> > > > >
> > > > > 以上です。
> > > > > --
> > > > > 関真理子 <[E-MAIL ADDRESS DELETED]>
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > Seasar-user mailing list
> > > > > [E-MAIL ADDRESS DELETED]
> > > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > > >
> > > >
> > > >
> > > > --
> > > > =============================
> > > > Shinpei Ohtani
> > > > [E-MAIL ADDRESS DELETED]
> > > > =============================
> > > >
> > >
> > >
> > > --
> > > =============================
> > > Shinpei Ohtani
> > > [E-MAIL ADDRESS DELETED]
> > > =============================
> > > _______________________________________________
> > > Seasar-user mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> > --
> > 関真理子 <[E-MAIL ADDRESS DELETED]>
> >
> >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
>
> --
> 関真理子 <[E-MAIL ADDRESS DELETED]>
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================



Seasar-user メーリングリストの案内