2009-12-01 20 views

答えて

2

:あなたはRequestDispatcherクラスを見てみたいと思う何か他のもの(例えばJSP)へのサーブレットからのリクエスト/レスポンスを転送するjsp docs

+0

これは、OPが求めていることとは正反対です。 – schlingel

+0

それはどういうことか分かりません... – inkredibl

+0

問題:サーブレットにあり、特定のJSPをレンダリングする必要があります。 解決方法:JSPにサーブレットの結果を含める(何?) しかし、それは私が欲しいものではありません。私は特定のアクションの後に特定のJSPにユーザーを送りたい。それは同じかもしれませんし、パラメータ(エラーページ、成功ページなど)に関して異なるかもしれません。 – schlingel

0

:ここ

<jsp:include page="/path/to/servlet" /> 

詳細。 ServletContextクラスには、サーブレット内から呼び出せるディスパッチャを取得するメソッドがあります。

例えば(サーブレットのdoPost/doGetメソッド内):

RequestDispatcher rd = getServletConfig().getServletContext() 
    .getRequestDispatcher("/jsp/myfile.jsp").forward(request,response); 
23

あなたは、通常、HTML出力を生成するサーブレットを使用しないでください。通常はJSP/ELを使用します。 out.writeを使用し、HTMLコンテンツをストリーミングするための団体は悪い習慣とみなされます。リクエスト属性を使いやすくする。例えば

:たとえば/pageための<url-pattern>にweb.xmlの

protected void doGet(HttpServletRequest request, HttpServletResponse response) { 
    Object data = "Some data, can be a String or a Javabean"; 
    request.setAttribute("data", data); 
    request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response); 
} 

地図。直接アクセスを避けるには、JSPを/WEB-INFに配置してください。次に、JSPで、あなたはスコープの属性にアクセスするにはEL(Expression Language)を使用することができます。

<p>The data from servlet: ${data}</p> 

http://example.com/context/pageでサーブレットを呼び出します。そのような単純な。この方法で、出力とプレゼンテーションをJSPの1か所で制御します。

+0

Qの仕事よりも – pavan

0
getServletConfig().getServletContext() 
    .getRequestDispatcher("/jsp/myfile.jsp").forward(request,response); 

は、それがRequestDispatcher RDを返すことができません、VOIDタイプです。

+0

あなたは他の質問に答えていますか? – SiKing

+0

@SiKingこれは上記のhttp://stackoverflow.com/a/1824967/188107に答えるコメントです。 FWIWは、編集がより適切であるとはいえ、わずかに有用なコメントでもあります。私はそれを報告しようとしましたが、それは論争を起こしました... – musiKk

関連する問題