こんにちは。株式会社ゼネットの新人の峯です。
今回は、自分自身が新人研修で詰まった部分であるgetParameterとgetAttributeの違いについて図で分かりやすく説明していこうと思います!
1. はじめに
本記事はJava初心者向けの記事となります。
getParameterとgetAttributeの違いやイメージが持てない人は参考にしてみてください!
2. getParameterとgetAttributeの違い
簡単に説明すると、
getParameter は、JSPで入力や設定をした値を、Servletで受け取るためのメソッドです。
getAttribute は、Servletで保存した値をJSPで受け取るためのメソッドです。
getParameterをもう少し詳しく...
JSPのform属性で指定したServletに遷移をする際に、JSP内で入力や設定をした値が入っているリクエストパラメータというものを送信します。
その中の値を受け取るためにgetParameterを使用します!
JSP内で
と書くと、
表示される画面は、
となります。
身長、体重を入力し、「診断する」ボタンを押すと、
入力された値がServletに送信されます。
Servlet内で
と書くと、JSP内のテキストボックスに入力されたものをServletで受け取ることができます!
JSP内のname属性で指定した名前とgetParameterのカッコの中の名前を合わせてください!合わせないと値が受け取れません!
getAttributeをもう少し詳しく...
getAttributeは、Servletで保存した値をJSPで受け取るために使用します!
まずServlet内でsetAttributeというメソッドを使用し、リクエストスコープという保存場所に値を保存します。
その後JSPに遷移し、JSP中でgetAttributeを使用することで、リクエストスコープに保存された値を受け取ることができます!
Servlet内では
と書きます。
その後、
のメソッドで結果表示用のJSPに遷移します。
遷移した後、JSP内で
と書くと、Servlet内でリクエストスコープに保存した値をJSPで取得できます!
こちらもset/getAttributeのカッコの中の名前を合わせてください!
3. おわりに
今回はgetParameterとgetAttributeの違いを図を用いて説明させて頂きました!
もう少し深く理解したい!と思った方は、
「リクエストスコープ」、「リクエストスコープの有効範囲」、「HTTPリクエスト」、「リクエストパラメータ」
という単語から芋づる式で調べていくと理解が深まります!