▪️セッションスコープの取得
HttpSession session = request.getSession();
※javax.servlet.http.HttpSessionをimportする
▪️セッションスコープからインスタンスを削除
session.removeAttribute("属性名")
※引数はString型。削除するインスタンスの属性名を引数で指定する。
※属性名は大文字と小文字を区別する。
▪️セッションスコープに保存する
session.setAttribute("属性名",インスタンス)
※第一引数はString型。保存するインスタンスの属性名を指定する。
※属性名は大文字と小文字を区別する。
※第2引数はObject型。保存するインスタンスを指定する。
第2引数にはあらゆるクラスのインスタンスを指定できる。
※すでに同じ属性名のインスタンスが保存されている場合、上書きされる。
▪️セッションスコープからインスタンスを取得する
取得するインスタンスの型 名前 =
(取得するインスタンスの型) session.getAttribute("属性名")
M→一般的なJAVAクラス
V→表示を受け持つJSPファイル。データの取得・更新を行う
C→ブラウザからの応答・要求を受け付けるサーブレット
##セッションスコープ例
▪️Test21Servlet.java
package servlet;
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;
import javax.servlet.http.HttpSession;
import javax.servlet.RequestDispatcher;
import bean.Test21Bean;
@WebServlet("/Test21Servlet")
public class Test21Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Test21Bean t = new Test21Bean();
t.setName("湊");
t.setAge(23);
// HttpSessionインスタンスの取得
HttpSession session = request.getSession();
// セッションスコープにインスタンスを保存
session.setAttribute("t", t);
// フォワード
RequestDispatcher dispatcher = request.getRequestDispatcher("/Test21Jsp.jsp");
dispatcher.forward(request, response);
}
}
▪️Test21Bean.java
package bean;
public class Test21Bean implements java.io.Serializable {
private String name;
private int age;
public Test21Bean() {
}
public Test21Bean(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
▪️Test21Jsp.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="bean.Test21Bean"%>
<%
//セッションスコープからインスタンスを取得![スクリーンショット 2016-02-25 13.43.01.png](https://qiita-image-store.s3.amazonaws.com/0/95187/871a7c0f-3793-0d1b-e24e-4cec9ae4cdf3.png)![スクリーンショット 2016-02-25 13.43.01.png](https://qiita-image-store.s3.amazonaws.com/0/95187/699aaea9-2ada-e7bc-bcd8-11b4c554c334.png)
Test21Bean t = (Test21Bean) session.getAttribute("t");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>セッションスコープ</title>
</head>
<body>
<p>
<%=t.getName()%>さんは<%=t.getAge()%>歳です
</p>
</body>
</html>
##削除してまた保存する例
▪️Test21Servlet.java
package servlet;
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;
import javax.servlet.http.HttpSession;
import javax.servlet.RequestDispatcher;
import bean.Test21Bean;
@WebServlet("/Test21Servlet")
public class Test21Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Test21Bean t = new Test21Bean();
t.setName("湊");
t.setAge(23);
// HttpSessionインスタンスの取得
HttpSession session = request.getSession();
// セッションスコープにインスタンスを保存
session.setAttribute("t", t);
// セッションスコープからインスタンスを削除
session.removeAttribute("t");
session.setAttribute("t", t);
// フォワード
RequestDispatcher dispatcher = request.getRequestDispatcher("/Test21Jsp.jsp");
dispatcher.forward(request, response);
}
}