サーブレットからパラメータを送信するためにRequestDispatcherを使用しようとしています。
これが私のサーブレットコードです。
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String station = request.getParameter("station");
String insDate = request.getParameter("insDate");
//test line
String test = "/response2.jsp?myStation=5";
RequestDispatcher rd;
if (station.isEmpty()) {
rd = getServletContext().getRequestDispatcher("/response1.jsp");
} else {
rd = getServletContext().getRequestDispatcher(test);
}
rd.forward(request, response);
}
ここに私のjspがあります、値を読むためのコードで – しかしそれはnullを示します。
<h1>response 2</h1>
<p>
<%=request.getAttribute("myStation") %>
</p>
何か提案をありがとう。
より環境に優しい
ベストアンサー
サーブレットでは、次のようにrequest.setAttributeを使用してください。
request.setAttribute("myStation", value);
valueは、後で読みたいオブジェクトです。
そして、request.getAttributeを別のサーブレット/ JSPに後で抽出します。
String value = (String)request.getAttribute("myStation")
または
<%= request.getAttribute("myStation")>
get / setAttributeの使用範囲は本質的に制限されていることに注意してください – 属性はリクエスト間でリセットされます。もっと長く値を保存したい場合は、セッションまたはアプリケーションのコンテキストを使用するか、データベースを使用してください。
クライアントが属性を設定しないという点で、属性はパラメータとは異なります。属性は、開発者があるサーブレット/ JSPから別のサーブレット/ JSPに状態を転送するために多かれ少なかれ使用します。そのため、要求からデータを抽出し、必要に応じてsetAttributeを使用して属性を設定し、RequestDispatcherを使用して要求を内部的に転送し、getAttributeを使用して属性を抽出するにはgetParameter(setParameterはありません)を使用します。
関連記事
- Javaサーブレット内からチャンク応答でHttpトレーラー/フッターを送信する方法
- jmeterで、あるHTTPリクエストから他のHTTPリクエストにパラメータを送信する方法
- domain-name-system - サイトのIPアドレスを変更する最良の方法 - エンドユーザーの観点から?
- HTMLフォームを送信するときにJSPからサーブレットにデータを転送する方法
- java - Struts2のフォーム送信でURLにパラメータを渡す方法
- java - 要求ごとに2つのサーブレット応答を送信する
- ruby-on-rails - (手動でハッシュとしてパラメータを送信するのではなく)FactoryGirlでパラメータを送信する方法?
- HTML - フォーム送信から '送信クエリ'を削除する方法?
転載記事の出典を記入してください: java – サーブレットからパラメータを送信する方法 - コードログ