セッション内蔵オブジェクトJSP学習


1、セッションオブジェクトはユーザーセッションを表します.1回のユーザセッションとは、クライアントブラウザがサーバにリンクしてから、クライアントブラウザがサーバと切断されるまで、このプロセスがセッションです.
2、sessionは通常、ユーザがシステムにログインしているか否かを判断したり、カートアプリケーションにおいてユーザが購入した商品を追跡したりするためにユーザのセッション情報を追跡するために使用される.
3、セッションの範囲内の属性は複数のページ間で共有できます.ブラウザを閉じるとセッションが終了すると、セッション範囲内のプロパティはすべて失われます.
4、sessionオブジェクトはHttpSessionインスタンスであり、2つの一般的な方法を含む:1 setAttribute():session範囲内のattName属性の値をattName属性の値をattValueに設定する
②getAttribute(String attName):セッション範囲内のattName属性の値を返します.
<%@page contentType="text/html;charset=GBK" language="java"  errorPage=""%>
<!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
<title>      </title></head>
<body>
<form method="post" action="24processbuy.jsp">
	  :<input type="checkbox" name="item" value="book"/><br/>
	  :<input type="checkbox" name="item" value="computer"/><br/>
	  :<input type="checkbox" name="item" value="car"/><br/>
	<input type="submit" value="  "/>

</form>

</body>

</html>
<%@page contentType="text/html;charset=GBK" language="java" errorPage=""%>
<%@page import="java.util.*" %>
<%
Map<String,Integer> itemMap = (Map<String,Integer>)session.getAttribute("itemMap");
if(itemMap == null){
	itemMap = new HashMap<String, Integer>();
	itemMap.put("  ", 0);
	itemMap.put("  ", 0);
	itemMap.put("  ", 0);
}
String[] buys = request.getParameterValues("item");
if(buys != null)
for(String item: buys){
	if(item.equals("book")){
		int num1 = itemMap.get("  ").intValue();
		itemMap.put("  ", num1 + 1);
	}else if (item.equals("computer")){
		int num2 = itemMap.get("  ").intValue();
		itemMap.put("  ", num2 + 1);
	}else if(item.equals("car")){
		int num3 = itemMap.get("  ");
		itemMap.put("  " , num3 + 1);
	}
}

session.setAttribute("itemMap", itemMap);
%>
<!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-trasitional.dtd">
<html>
<head>
<title>deal the buy </title>
</head>
<body>
      :<br/>
  :<%=itemMap.get("  ") %> <br/>
  :<%=itemMap.get("  ") %> <br/>
  :<%=itemMap.get("  ") %> <br/>
<a href="23sessionTest.jsp">    </a>
</body>
</html>
5、itemMapはセッションで保証され、itemMapは1回の会話で有効であり、このショッピングシステムは繰り返し購入することができ、ブラウザが閉まっていない限り、購入した物品情報は失われない.
6、2ページの間で情報を交換するだけでなく、セッションの範囲内に入れます.2つのページのために情報を交換する場合は、requestの範囲内に情報を入れ、forwardリクエストすればよい.
セッション自体の目的を考慮すると,通常はユーザセッション状態に関する情報のみをセッション範囲内に入れるべきである.
7、sessionメカニズムは通常クライアントの状態情報を保存するために使用され、これらの状態情報はWebサーバのハードディスクに保存する必要があるため、sessionの属性値が直列化可能でなければならない.そうしないと、直列化不可能な異常を引き起こす.