Java サーブレット(基礎編③ フォーム)
■フォーム画面で入力した値をサーブレットクラスで取得、表示する方法
前回の内容はこちら→Java サーブレット(基礎編② サーブレットクラスからJSPファイル呼び出し)
事前準備
前回までに作成していたサーブレットクラス(Login.java)を含むパッケージとJSPファイル(login.jsp)を削除して、初期の状態に戻しておく
①直接フォームにアクセスできるように「WebContent」直下に下記内容のフォームをJSPファイルで作成
今回は名前、年齢、性別を入力し、送信ボタンでサーブレットクラス(Result.java)遷移するフォームを作成
ポイント1:遷移先がサーブレットクラスの為、actionで指定するURLは「プロジェクト名/URLパターン」となる
<form action="/sample/Result" method="POST">
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>フォーム</title>
</head>
<body>
<h1>入力フォーム画面</h1>
<form action="/sample/Result" method="POST">
<p>名前:<input type="text" name="name"></p>
<p>年齢:<input type="text" name="age"></p>
男:<input type="radio" name="gender" value="男性">
女:<input type="radio" name="gender" value="女性">
<p><input type="submit" value="送信"></p>
</form>
</body>
</html>
②送信ボタン押下後に遷移し、入力した値を表示するサーブレットクラス(Result.java)を作成
ポイント1:「response.setContentType()」メソッドでフォームから受けた値の文字コードをUTF-8に変換
response.setContentType("text:html; charset=UTF-8");
ポイント2:「request.getParameter()」メソッドでフォームから受けた値を取得
String name = request.getParameter("name");
String age = request.getParameter("age");
String gender = request.getParameter("gender");
③「form.jsp」を実行し、全ての項目を入力後、送信ボタンを押下
入力した値をサーブレットクラスで取得、表示されていることを確認
※ソースコードをシンプルにする為にNULLチェックを省いているので入力していない項目があるとエラーになる
次回はJavaBeansを解説する→Java サーブレット(基礎編④ JavaBeans)