JSP的9个内置对象-session

来源:互联网 发布:秦国 知乎 编辑:程序博客网 时间:2024/06/05 11:40
session代表一次用户会话,其含义是:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开为止,这个过程就是一次会话。
session通常用于跟踪用户的会话信息,如判断用户是否登录系统,或者在购物车应用中,系统是否跟踪用户购买的商品等。
session里的属性可以在多个页面的跳转间共享。一旦关闭浏览器,即session结束,session里的属性将全部清空。
session对象的两个常用方法如下:
setAttribute(String attName, Object attValue): 设置一个session属性
getAttribute(String attName):返回一个session属性的值。

下面演示了一个模拟购物车应用。shop.jsp是商品陈列页面,页面里有一个表单,表单里包含3个复选按钮,用于提交想购买的物品。其代码如下:

<%@ page contentType="text/html; charset=gb2312" language="java" %><!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”><HTML><BODY><FORM METHOD=POST ACTION="ProcessBuy.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="buy"></FORM></BODY></HTML>
其运行结果截图如下:


ProcessBuy.jsp页面处理以上表单。利用购物车系统可以反复购买,只要不关闭,购买的物品信息就不会丢失。ProcessBuy.jsp的代码如下:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" %><%//从session对象中取出Map<String,Integer> itemMap=(Map<String,Integer>) session.getAttribute("itemMap");//如果Map对象为空,则初始化Map对象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();//将book对应的数量加1itemMap.put("book",num1+1);}else if(item.equals("computer")){int num2=itemMap.get("computer").intValue();itemMap.put("computer",num2+1);}else if(item.equals("car")){int num3=itemMap.get("car").intValue();itemMap.put("car",num3+1);}}//将itemMap对象放到session中session.setAttribute("itemMap",itemMap);%><!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”><HTML><BODY>The things you choose:<br>book:<%=itemMap.get("book")%><br>computer:<%=itemMap.get("computer")%><br>car:<%=itemMap.get("car")%><br><a href="shop.jsp">choose again</a></BODY></HTML>
选中shop.jsp页面中的所有复选框,截图如下:

点击buy按钮后,页面自动跳转到ProcessBuy.jsp,显示用户已选中的各类商品数量。截图如下:


点击“choose again“按钮,跳转回shop.jsp页面,用户可以接着选择要购买的商品。之前选择的商品在关闭浏览器之前都不会消失(关闭页面也不会消失)。截图如下:


这一次,选中前两个复选框book和computer,点击buy按钮,结果截图如下:





原创粉丝点击