此例子來源於《輕量級java_EE企業應用與實戰struts2_spring3_Hibernate整合開發》html
能夠根據這個例子加深session與cookie的理解java
shop.jspspring
<%--
Created by IntelliJ IDEA.
User: 無風之浪
Date: 2018/4/1
Time: 20:51
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>選擇物品購買</title>
</head>
<body>
<form action="processBuy.jsp" method="post">
書籍:<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>
processBuy.jsp數組
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
Created by IntelliJ IDEA.
User: 無風之浪
Date: 2018/4/1
Time: 20:53
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
//取出session範圍的itemMap屬性
Map<String,Integer> itemMap = (Map<String,Integer>)session.getAttribute("itemMap");
//若是Map對象爲空,則初始化Map對象
if (itemMap==null){
itemMap = new HashMap<String,Integer>();
itemMap.put("書籍",0);
itemMap.put("電腦",0);
itemMap.put("汽車",0);
}
//獲取上一個頁面的請求參數
String[] buys = request.getParameterValues("item");
//遍歷數組的各元素
for (String item:buys){
if (item.equals("book")){
int num1 = itemMap.get("書籍").intValue();
itemMap.put("書籍",num1+1);
}
if (item.equals("computer")){
int num2 = itemMap.get("電腦").intValue();
itemMap.put("電腦",num2+1);
}
if (item.equals("car")){
int num3 = itemMap.get("汽車").intValue();
itemMap.put("汽車",num3+1);
}
}
//將itemMap對象放到設置成session範圍內的itemMap屬性
session.setAttribute("itemMap",itemMap);
%>
<html>
<head>
<title>new document</title>
</head>
<body>
您所購買的物品:
<br>
書籍:<%=itemMap.get("書籍")%>本
<br>
電腦:<%=itemMap.get("電腦")%>臺
<br>
書籍:<%=itemMap.get("書籍")%>輛
<p><a href="shop.jsp">再次購買</a></p>
</body>
</html>
只要瀏覽器不關閉,購買信息就不會丟失。session範圍內的屬性能夠在多個頁面之間共享。瀏覽器
實驗效果:cookie