プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

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)