こんにちは、大学時代にプログラミングを始め、現在はエンジニアをしているuhablog(ウハブログ)です。
今回の記事ではJavaのstatic変数を有効活用する方法について解説していきます!
この記事から始まっているServletを使ってTodoアプリを作成する中でstatic変数を使ってみます。
具体的にはそれぞれのjspやServletでパラメータを受け渡す際に文字列を直接書いていますが、それをまとめたクラスを作成します。
Parametersクラスの作成
まずstatic変数を定義するクラスを作成します。
srcフォルダ内にconstantパッケージを作成します。
その中にParameters.javaを作成します。中身は次のようになります。
package constant;
public class Parameters {
/**
* Todoのidをやりとりするパラメータ
*/
public static final String TODO_ID = "todoId";
/**
* Todoの内容をやりとりするパラメータ
*/
public static final String TODO = "todo";
/**
* Todoの期限をやりとりするパラメータ
*/
public static final String TIME_LIMIT = "timeLimit";
}
今まで作成してきたTodoアプリではjspからServletに値を渡す際inputタグ内のname属性に文字列を直接書き、Servletではそこで書かれた文字列と同じ文字列を書いていました。
これでも問題はないのですが、タイピングミスでうまくパラメータの受け取りができなかったりとめんどくさい事になります。
しかしクラスを作成し、static変数で定義しておく事でこういったミスを防げるようになります。
list.jspの変更
まずはlist.jspを変更します。
jspファイルの上部に次のimport文を追加して先ほど作成したクラスを使用できるようにします。
<%@ page import="constant.Parameters" %>
jspファイル下の方にformがあります。
こちらの中身を以下のように変更します。
<form action="insert-servlet" method="post">
<label>Todo: </label><input type="text" name="<%=Parameters.TODO %>"><br>
<label>Limit: </label><input type="date" name="<%=Parameters.TIME_LIMIT %>"> <br>
<input type="submit" value="Todoを登録する">
</form>
注目するのはinputタグ内のname属性の値です。
これまでは「name="todo"」「name="timeLimit"」と記述していました。
しかしこれらの文字列を先ほど作成したParametersクラスにstatic変数として宣言しましたので、これを利用します。
InsertServletの変更
InsertServletのdoPostメソッド内で送られてきたパラメータを受け取る箇所があります。
それを次のように変更します。
// リクエストパラメータのname属性がtodoの値を受け取る
String todo = (String) request.getParameter(Parameters.TODO);
// リクエストパラメータのname属性がtimeLimitの値を受け取る
Date timeLimit = Date.valueOf(request.getParameter(Parameters.TIME_LIMIT));
こちらで注目するのはgetParameterメソッドに渡している変数です。
これも変更前は「getParameter("todo")」「getParameter("timeLimit")」と直接文字列を記述していました。
これをParametersクラスで定義したstaticメソッドを使用します。
まとめ・次回予告
今回はWebアプリを作成していく過程でstatic変数を活用する方法を解説しました。
文字列を直書きしてパラメータの受け渡しを行なっていたところをstatic変数をまとめてもつクラスを作成する事でタイピングミスを減らしたりすることができます。
挫折せずにプログラミングを学ぶためには?
挫折せずにプログラミングを学ぶために必要なこと
僕はプログラミングで挫折した経験があります。
それは周りに聞ける人がいなく、一人でエラーと戦っていたからです。
Freeksは月額10,780円という破格の値段で、現役エンジニアに質問する環境を手に入れることができるプログラミングスクールです。
次のような悩みを少しでも抱えていたら、まずは無料カウンセリングを受けてみてください。
申込みは1分でできます。学習する環境にお金を使うというのは良い自己投資になります。
>>Freeksの無料カウンセリングはこちら
【関連記事】Freeks評判、口コミ