赞
踩
session对象通常用于跟踪用户的会话信息,如判断用户是否登录系统,或者在购物车应用中,跟踪用户购买的商品等。
示例代码结构
shop.jsp
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Shop</title>
- </head>
- <body>
- <form method="post" action="proccess.jsp">
- Book <input type="checkbox" name="item" value="book" /> <br/>
- Computer <input type="checkbox" name="item" value="computer" /> <br/>
- Car <input type="checkbox" name="item" value="car" /> <br/>
- <input type="submit" value="submit">
- </form>
-
- </body>
- </html>
proccess.jsp
- <%@ page import="java.util.Map" %>
- <%@ page import="java.util.HashMap" %>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <%
- Map<String,Integer> itemMap = (Map<String, Integer>) session.getAttribute("itemMap");
- if( itemMap == null){
- itemMap = new HashMap<String,Integer>();
- itemMap.put("book",0);
- itemMap.put("computer",0);
- itemMap.put("car",0);
- }
- String[] buys = request.getParameterValues("item");
- for (String item : buys){
- if (item.equals("book")){
- int num1 = itemMap.get("book").intValue();
- itemMap.put("book",num1+1);
- }
- if (item.equals("computer")){
- int num2 = itemMap.get("computer").intValue();
- itemMap.put("computer",num2+1);
- }
- if (item.equals("car")){
- int num3 = itemMap.get("car").intValue();
- itemMap.put("car",num3+1);
- }
- }
- session.setAttribute("itemMap",itemMap);
- %>
- <head>
- <title>Process Buy</title>
- </head>
- <body>
- 您所购买的商品<br/>
- book:<%=itemMap.get("book")%><br/>
- computer:<%=itemMap.get("computer")%><br/>
- car:<%=itemMap.get("car")%><br/>
- </body>
- </html>
效果
总结:
session对象代表一次用户会话,session对象是HttpSession实例。
session范围内的属性可以在多个页面跳转之间共享,浏览器关闭后session范围内属性丢失(关闭标签页不会丢)。
session属性值可以是任何可序列化的Java对象。(否则会引发不可序列化异常)
通常存放的是用户会话状态相关的信息。如果仅仅是两个页面之间交换信息,可将信息放入request范围内,通过forward实现即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。