EngineIT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。getParameterとgetAttributeの違いやJSPからServletへの値の受け渡しJSP/Servlet間でデータを受け渡しする際に利用される「getParameter」や「getAttribute」などは似た感じで混同しやすい部分もあると思うので、それらの違いについて纏めます。前半の(1-1)では「getParameter」についてご紹介し、後半の(1-2)では「getAttribute」についてご紹介します。加えて、理解を深めるためにそれぞれ(例1)~(例3)の3つの例をご紹介していきます。前半:request.getParameterについて●概要getParameter()メソッドはHttpRequestリクエストのパラメータ(ユーザーがform等に入力した値)を取得するためのメソッドです。「パラメータ」というのは、基本的には「クライアント(JSP画面)」⇒「サーバ(Servlet)」に渡されるデータで、具体的には以下のような値を指します。(例)1ユーザーが画面(HTMLの<form>)に入力した値をsubmitボタンでServletに連携2URLのパラメータとして渡される値(例:http://sample.com/servlet?param1=12345)●(例1)JSP(form値をsubmit)⇒Servlet(getParameterで取得)■JSP側formタグ内のtextボックスの値を「IT0994_PassValue」という名前の「Servlet」に連携(HTTPのGETリクエスト)します。value="転送"></form>■Servlet側JSPからリクエストで連携された値をgetParameterメソッドで取得します。request.getParameter("value1");注意点として、getParameterは戻り値がString型となりますので、必要に応じてparseInt等の処理をします。(図111)getParameterのイメージ●(例1)のサンプルプログラムgetParameterでJSP→Servletに渡された値を取得するサンプルは別記事(下記URL)にてご紹介しています。⇒JSPのformからServletに値を連携するサンプルプログラム上記記事では、テキストボックス以外にも「プルダウン」や「ラジオボタン」の値も連携するサンプルを紹介しています。一方でgetAttributeやsetAttributeはサーバサイドで使用する処理で、そのリクエスト内(request)やセッション内(session)で使いまわせる値をset(設定)したりget(取得)したりするためのメソッドです。●(例2)JSP(session.setArribute)⇒Servlet(session.getArribute)JSP内で何らかの値をセッション(session)に保持(session.setArribute)し、それをボタン押下等で起動するServletで取得(session.getArribute)する例です。(String)request.getSession().getAttribute("value2");(例2の具体的な利用シーン例)具体的な例ですと、JSP画面からcsvダウンロードボダン(内部的にはServletを使用)でデータをcsvダウンロードする場合などは、ボタン(type=button)から直接Servletを呼び出す形になりますが、このような場合のJSP⇒Servlet間のデータ連携はユーザーからのイベント(submit)を伴わないため、getParameterではなく、session.setAttributeで値をセットしてsession.getAttributeで値を取得します。●(例3)JSP(form値をsubmit)⇒Servlet(getParameter&setAttribute)⇒JSP(getAttribute)ユーザーがJSP画面(form)に入力してsubmitした値を、Servletにて処理して更に結果画面のJSPに値を持ち回るようなケースです。(String)request.getAttribute("val_3");(例3の具体的な利用シーン例)具体的な例を出すと、入力画面(JSP1)で会員IDを入力してボタンを押下⇒Servletにて会員情報を取得⇒結果画面(JSP2)にて表示、というような処理の場合は会員ID等の値をJSP1⇒Servlet⇒JSP2と持ち回っていく事になると思いますが、そうしたケースで使える方法になります。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。EngineIT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。Reserved.Top。