Java

【Java】リクエストスコープとは?取得や保存方法を解説します

リクエストスコープとは

リクエストスコープはリクエスト毎に生成されるスコープ(データの保存領域)で、レスポンスが返されるまで利用可能です。

注意ポイント

よくセッションスコープとごっちゃになりますが、データの保持時間が全然違うので別物として扱いましょう

セッションスコープに関しては次の記事で解説しています。

【Java】セッションとは?セッションを使ったデータ取捨の方法

セッションとは セッションを使ったデータ取捨の方法 1.sessionとは sessionとは、複数のユーザがアクセスするWebアプリケーションで、各ユーザの状態の保存・ユーザの区別を行う機能です。ユ ...

続きを見る

リクエストスコープの取得(保存)

まずは、基本構文から勉強していきましょう。

リクエストスコープを使ってデータの格納や取得、削除などを行うときは基本的に次のようなコードを記載します。

基本構文1

【データを取得してリクエストスコープに保存】

request.setAttribute("属性名(key)","値(value)")

基本構文2

【リクエストスコープから値を取得】

request.getAttribute("属性名(key)")

次に、リクエストスコープを実際に用いたコードを見ていきましょう。

requestSample.java(パラメータを受け渡しを行うjavaファイル)

package requestSample;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
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("/SampleCode")
public class SampleCode extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//➁入力値をリクエストスコープから取得して変数に格納

String name = request.getParameter("name");
String dob = request.getParameter("dob");
String sex = request.getParameter("sex");

//➂リクエストスコープに変数から取出した値を格納
request.setAttribute("name", name);
request.setAttribute("dob", dob);
request.setAttribute("sex", sex);

RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/Sample.jsp");
dispatcher.forward(request, response);

}

}

 

Sample.jsp(Webブラウザに表示する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>

<h1>リクエストスコープのサンプルコード</h1>
<form action="/requestSample/SampleCode" method="get">

<!-- ➀text型で入力項目を作成 -->
氏名:<input type="text" name="name"/><br />
生年月日:<input type="text" name="dob"/><br />
性別:<input type="text" name="sex"/><br />
<input type="submit" value="送信" /><br /><br>

<!-- ➃requestSample.javaから渡されたパラメータを表示する-->
結果<br>
氏名:<%= request.getAttribute("name") %><br>
生年月日:<%= request.getAttribute("dob") %><br>
性別:<%= request.getAttribute("sex") %>

</form>

</body>
</html>

 

上記コードは、次の動作を持つプログラムです。

  • Sample.jspファイルに記載したコードで、でブラウザ上にテキストボックスを表示する※➀
  • テキストボックスに値が入力され送信ボタンが押されると、入力データを取得しリクエストスコープに格納する※➁
  • requestSample.javaファイルに記載されたコードで、リクエストスコープに格納された値を取出す※➂
  • 先ほど取出した値を、画面表示用の変数に格納する※➂
  • Sample.jspファイルに記載したコードで、でブラウザ上に入力データを表示する※➃

 

実行結果

 

画面上に入力ボックスが表紙されます

各テキストボックスに値を入力して、送信ボタンを押します

先ほど テキストボックスに入力した値が、結果に表示されます。

 

 

以上で終わりとなります。お疲れ様でした!

-Java

Copyright© タカログ , 2022 All Rights Reserved Powered by AFFINGER5.