此例子来源于轻量级 java_EE 企业应用与实战 struts2_spring3_Hibernate 整合开发
可以根据这个例子加深 session 与 cookie 的理解
- shop.jsp
- <%--
- 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" %>
- <title> 选择物品购买 </title>
- </head>
- <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/>
- type="submit" value="购买">
- 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);
- %>
- new document</title>
- </head>
您所购买的物品:
<br>
书籍:<%=itemMap.get("书籍")%> 本
<br>
电脑:<%=itemMap.get("电脑")%> 台
<br>
书籍:<%=itemMap.get("书籍")%> 辆
href="shop.jsp"> 再次购买
只要浏览器不关闭, 购买信息就不会丢失 session 范围内的属性可以在多个页面之间共享
实验效果:
来源: http://www.bubuko.com/infodetail-2546810.html