zenet_logo

-株式会社ゼネット技術ブログ-

Java Servletの基礎:getParameterとgetAttributeの違いを解説

 

 

こんにちは。株式会社ゼネットの新人の峯です。

今回は、自分自身が新人研修で詰まった部分であるgetParameterとgetAttributeの違いについて図で分かりやすく説明していこうと思います!

 

1. はじめに

本記事はJava初心者向けの記事となります。

getParameterとgetAttributeの違いやイメージが持てない人は参考にしてみてください!

 

2. getParameterとgetAttributeの違い

簡単に説明すると、

getParameter は、JSPで入力や設定をした値を、Servletで受け取るためのメソッドです。

getAttribute は、Servletで保存した値をJSPで受け取るためのメソッドです。

 

getParameterをもう少し詳しく...

JSPのform属性で指定したServletに遷移をする際に、JSP内で入力や設定をした値が入っているリクエストパラメータというものを送信します。

その中の値を受け取るためにgetParameterを使用します!

 

JSP内で

bmiInput.jsp

と書くと、

表示される画面は、

入力画面

となります。

身長、体重を入力し、「診断する」ボタンを押すと、

入力された値がServletに送信されます。

Servlet内で

BmiServlet

と書くと、JSP内のテキストボックスに入力されたものをServletで受け取ることができます!

JSP内のname属性で指定した名前とgetParameterのカッコの中の名前を合わせてください!合わせないと値が受け取れません!

 

getAttributeをもう少し詳しく...

getAttributeは、Servletで保存した値をJSPで受け取るために使用します!

まずServlet内でsetAttributeというメソッドを使用し、リクエストスコープという保存場所に値を保存します。

その後JSPに遷移し、JSP中でgetAttributeを使用することで、リクエストスコープに保存された値を受け取ることができます!

 

Servlet内では

BmiServlet

と書きます。

その後、

BmiServlet

のメソッドで結果表示用のJSPに遷移します。

遷移した後、JSP内で

bmiOutput.jsp

と書くと、Servlet内でリクエストスコープに保存した値をJSPで取得できます!

こちらもset/getAttributeのカッコの中の名前を合わせてください!

 

3. おわりに

今回はgetParameterとgetAttributeの違いを図を用いて説明させて頂きました!

もう少し深く理解したい!と思った方は、

「リクエストスコープ」、「リクエストスコープの有効範囲」、「HTTPリクエスト」、「リクエストパラメータ」

という単語から芋づる式で調べていくと理解が深まります!