今回の記事ではサーブレットとjspの入門者の方に向けて、値を受け渡す方法について解説します。
この記事を読むことで
- jsp → サーブレットに値を受け渡す方法
- サーブレット → jspに値を受け渡す方法
両方の値の渡し方がわかります。
値の受け渡しはWebアプリを開発する際に必須の技術となりますので、ぜひ習得しましょう!
「プログラミングを習得して稼げるエンジニアになりたい!」という向上心のある方にはRaise Techがおすすめです!Raise Techは「最速で稼ぐ」を目的としたエンジニアリングスクールで、徹底的な現場主義・現役講師陣からプログラミングを学ぶことができます!まずは無料説明会
に参加してみましょう!
今回作るWebアプリ
今回はEclipseを使ってWebアプリを作成します。
Eclipseがインストールされていない方は次の記事を参考にインストールしてみてください。
EclipseでWebプロジェクトを作成する方法に関してはこちらの記事を参考にしてみてください。
今回開発するアプリケーションは次のようなものです。
【1】jspで値の入力
まず最初にjspで苗字、名前に加えて年齢の入力を行います。

【2】入力された値の表示
送信ボタンを押すと入力された値をもとに自己紹介を画面に表示します。

処理の流れと値の受け渡し
今回作るWebアプリでは次のように値を受け渡します。

SampleServlet.javaの作成
まず最初にSampleServlet.javaを作成します。
SampleServlet.java
package uhablog;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/SampleServlet")
public class SampleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public SampleServlet() {
super();
}
/**
* jspから値を受け取って、結果を返却する
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8"); // 文字化け防止
String name1 = ""; // 苗字を格納する変数
String name2 = ""; // 名前を格納する変数
String fullName = ""; // フルネームを格納する変数
int age = 0; // 年齢を格納する変数
// jspから送られてきた値を受け取る
name1 = request.getParameter("lastName"); // 苗字の受け取り
name2 = request.getParameter("firstName"); // 名前の受け取り
age = Integer.parseInt(request.getParameter("age")); // 年齢の受け取り
fullName = name1 + " " + name2;
// 次の画面(jsp)に値を渡す
request.setAttribute("fullName", fullName);
request.setAttribute("age", age);
// 次の画面に遷移
request.getRequestDispatcher("/SelfIntroduction.jsp").forward(request, response);
}
}
jspから値の受け取り
重要なのはdoGetメソッド内の処理です。
「request.getParameter」メソッドを使うことで、jspから送られてくる値を受け取ることができます。
引数として指定する文字列は送られてくるjspのフォーム内のname属性と一致させる必要があります。
詳しくは後ほど解説します。
jspへの値の受け渡し
次に値の受け渡しは「request.setAttribute」メソッドを利用します。
第一引数として、データの名前を指定します。
第二引数は渡したいデータを指定です。
jspの作成
続いてjspを作成します。
まずは値を受け渡すInput.jspから作成します。
Input.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>値の入力画面</title>
</head>
<body>
<form method="GET" action="SampleServlet">
<!-- 苗字の入力 -->
苗字:<input type="text" name="lastName"><br>
<!-- 名前の入力 -->
名前:<input type="text" name="firstName"><br>
<!-- 年齢の入力 -->
年齢:<input type="number" name="age"><br>
<!-- 送信ボタン -->
<input type="submit" value="送信"><br>
</form>
</body>
</html>
Input.jspのformはSampleServletに値を送ります。
この画面ではそれぞれ次のような値を渡します。
- lastName:苗字
- firstName:名前
- age:年齢
これらのname属性で指定している値をServlet内の「request.getParameter」メソッドの引数として指定することで特定の値を受け取ることができます。
SelfIntroduction.jsp
次にサーブレットから値を受け取って表示するSelfIntroduction.jspを作成します。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>自己紹介</title>
</head>
<body>
<p>こんにちは!僕の名前は<%= request.getAttribute("fullName") %>です!</p>
<p>年齢は<%=request.getAttribute("age") %>さいです</p>
</body>
</html>
jspで値を受け取る際にはjspファイル内で次のような記述をします。
<%= request.getAttribute("取り出したいデータ名") %>
これによって引数で指定した値を取り出して、画面に表示することができます。
今回はSampleServletで次のような記述をしていました。
request.setAttribute("fullName", fullName);
そのためjsp内で引数に「fullName」を指定することでサーブレットで設定した値を受け取ることができます。
動作確認
ではサーバを起動して、動作確認をしてみましょう。
Eclipseで作成した場合は「http://localhost:8080/プロジェクト名/Input.jsp」にアクセスすると画面が表示されます。

これに値を入力して送信ボタンを押します。

すると次の画面で自己紹介をしてくれます。

まとめ
今回はサーブレットとjspの値の受け渡し方法について簡単なWebアプリを開発しながら解説しました。
まとめると次のようになります。
- jspからサーブレットへの値の受け渡し→formを使って送る
- サーブレットで送られてきた値を受け取る→「request.getParameter」メソッドを使う
- サーブレットから別のjspに値を送る→「request.setAttribute」メソッドを使う
- jspでサーブレットから送られた値を受け取る→「request.getAttribute」メソッドを使う
この記事が少しでもJava学習の参考になれば幸いです。
最後まで読んでいただきありがとうございました。
「プログラミングを習得して稼げるエンジニアになりたい!」という向上心のある方にはRaise Techがおすすめです!Raise Techは「最速で稼ぐ」を目的としたエンジニアリングスクールで、徹底的な現場主義・現役講師陣からプログラミングを学ぶことができます!まずは無料説明会
に参加してみましょう!
コメント