【Java】static変数の使い方・活用方法を解説!Webアプリのパラメータ名を定数で定義する

今回の記事ではJavaのstatic変数を有効活用する方法について解説していきます!この記事から始まっているServletを使ってTodoアプリを作成する中でstatic変数を使ってみます。具体的にはそれぞれのjspやServletでパラメータを受け渡す際に文字列を直接書いていますが、それをまとめたクラスを作成します。

その他の機能はこちらにまとめています。

ご質問等あればこちらのTwitterアカウントまでお願いします。

Java x MySQLでWebアプリの作り方が学べるUdemy講座

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があります。こちらの中身を以下のように変更します。注目するのはinputタグ内のname属性の値です。これまでは「name=”todo”」「name=”timeLimit”」と記述していました。しかしこれらの文字列を先ほど作成したParametersクラスにstatic変数として宣言しましたので、これを利用します。

<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>

InsertServletの変更

InsertServletのdoPostメソッド内で送られてきたパラメータを受け取る箇所があります。それを次のように変更します。こちらで注目するのはgetParameterメソッドに渡している変数です。これも変更前は「getParameter(“todo”)」「getParameter(“timeLimit”)」と直接文字列を記述していました。これをParametersクラスで定義したstaticメソッドを使用します。

// リクエストパラメータのname属性がtodoの値を受け取る
String todo = (String) request.getParameter(Parameters.TODO);
// リクエストパラメータのname属性がtimeLimitの値を受け取る
Date timeLimit = Date.valueOf(request.getParameter(Parameters.TIME_LIMIT));

まとめ・次回予告

今回はWebアプリを作成していく過程でstatic変数を活用する方法を解説しました。文字列を直書きしてパラメータの受け渡しを行なっていたところをstatic変数をまとめてもつクラスを作成する事でタイピングミスを減らしたりすることができます。

次はTodoの編集を行えるようにしていこうと思います。

ご質問等あればこちらのTwitterアカウントまでお願いします。

私はプログラミング学習はUdemyで行うのが以下のような理由で圧倒的におすすめです。

  • 動画で好きなときに学べる
  • 一流のエンジニアから教えてもらえる
  • 好きな技術を体系的に学べる
  • 実際に手を動かしながら学ぶことができる
  • セール時であれば1500円〜2000円ほどで購入できる(大半の技術書より安い)
  • 講座自体がアップデートされていくので情報が古くなりにくい

UdemyにはJava x MySQLでWebアプリの作り方が学べるUdemy講座 もあるので興味がある方は一度チェックしてみてください!なおUdemyは頻繁にセールをやっているので、セール時を狙って購入してください!

おすすめの参考書

コメント

タイトルとURLをコピーしました