- - PR -
JSPをサーブレット内で実行
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-03-10 12:26
こんにちは。
JSPのカスタムタグを使用した製品がありまして、それをサーブレット内で使用したいと思います。 それらを使用したjspファイルを実行すると、文字列が出てくるのですが、それをサーブレット内で受け取ることは出来ないでしょうか。 jsp内で、setAttribute等は出来ますので、Stringな戻り値出なくても大丈夫です。 たとえばこんな感じで動くといいのですが・・・。
| ||||
|
投稿日時: 2005-03-10 12:49
解決しました。
質問を書くまで、色々方法を考えていたのですが、書いてからその方向で探すと見つかりました。 お騒がせしました^^;
[ メッセージ編集済み 編集者: いわ 編集日時 2005-03-10 12:51 ] | ||||
|
投稿日時: 2005-03-10 12:51
RequestDispatcher.include かな?
http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/RequestDispatcher.html#include(javax.servlet.ServletRequest,%20javax.servlet.ServletResponse) htmlのレンダリング結果が不要なのであれば HttpServletResponseWrapper を継承したダミーのレスポンスをわたしてやればOkです。 | ||||
|
投稿日時: 2005-03-10 12:53
お返事ありがとうございます。
見つかった方法が正しかったようで、良かったと思っています。 ありがとうございました。 | ||||
|
投稿日時: 2005-03-13 19:22
こんにちは。
お返事いただいた、include(request, response)で、ダミーを作らなければいけなくなりました。 response.getOutputStream()が必要になったためで、includeの中でgetWriter()をしようとしてエラーになります。 (「java.lang.IllegalStateException: getOutputStream()はこのレスポンスに対して既に呼び出されています」がでる) さて、ダミーを作ろうとしていたのですが、どのようにすればよいのでしょうか。 さしあたり、出力先をSystem.outにでもしようと思ったのですが、わかりません。 すみませんが、教えていただけないでしょうか。 | ||||
|
投稿日時: 2005-03-13 22:13
何度もすみません。
一応通るようになりました。 DummyResponse.classを作成し、 public PrintWriter getWriter() をオーバーライドし、System.outを返すようにしました。
出来上がった、DummyResponseのインスタンスを、既存のHttpServletResponseを使って作成し、 includeに使用することで、JSP内でgetWriterを使ったために、getOutputStreamが使えないということを回避しました。nullデバイスのようなものがあればいいのですが(ありそうな気もしますが)、とりあえずこれでOKということにします。 ありがとうございました。 |
1