Javaでフォームの値が取得できない?name属性とgetParameterの関係|確認問題の回答例

このページは、Javaでフォームの値が取得できない?name属性とgetParameterの関係の確認問題の回答例です。
問題1:各getParameterの戻り値
| 呼び出し | 戻り値 | 理由 |
|---|---|---|
getParameter("userName") | null | userNameはidであり、送信するnameではない |
getParameter("memberName") | "佐藤" | nameがmemberNameの入力欄に佐藤が入っている |
getParameter("comment") | "" | commentという名前で空文字が送信される |
getParameter("news") | null | 未選択なのでnewsの組が送信されない |
commentの空文字とnewsのnullを区別します。前者は名前と空の値が届き、後者はその名前のパラメータが届いていません。
問題2:佐藤をuserName変数に入れる
String userName = request.getParameter("memberName");
Javaの変数はuserNameのままで構いません。getParameterに指定する文字列を、HTMLのnameであるmemberNameに合わせます。
問題3:チェックを入れた場合
valueが "yes" なので、getParameter("news") はStringの "yes" を返します。value属性を省略すると、選択時にはStringの "on" が返ります。どちらもbooleanのtrueではありません。
問題4:nullと空文字を分ける
String comment = request.getParameter("comment");
if (comment == null) {
System.out.println("commentという名前の値が届いていません");
} else if (comment.isEmpty()) {
System.out.println("commentの値は空文字です");
} else {
System.out.println("commentに文字列が入っています");
}
問題のフォームでは2番目の分岐に入り、「commentの値は空文字です」と出力します。System.out.printlnの出力先はサーバーのコンソールであり、ブラウザの画面ではありません。nullの判定を先に行うので、nullに対してisEmptyを呼ばずに済みます。