JSP的9个内置对象-session

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对应的数量加1
		itemMap.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按钮,结果截图如下:





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值