保存会话数据--Session:

lSession
•Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。

l在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。
lSession和Cookie的主要区别在于:
•Cookie是把用户的数据写给用户的浏览器。
•Session技术把用户的数据写到用户独占的session中。
lSession对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。

session案例
购物车

//首页显示servlet

//获取所有商品信息

List<Goods>list = gService.findAll();

.//打印在浏览器上

String url =response.encodeRedirectURL("/20111025/by.do");

For(Goodsentity:list){

Out.println(entity.getName()+"<a href='"+url+"?id="+entity.getId()+"'>加入购物车 </a>");

}

//Servlet By,do

//获取传递的参数id的值

String rid =request.getParameter("id");

//类型转换

Integer id =Integer.parseInt(rid);

//执行查询

Goods entity =gService.findById(id);

//session中获取carts

HttpSessionsession = request.getSession();

Cookie cookie =new Cookie("JSSSIONID",session.getId());

cookie.setMaxAge(600);

cookie.setPath("/20111025");

response.addCookie(cookie);

List<Goods>carts = (List<Goods>) session.getAttribute("carts");

If(carts==null){

Carts = new ArrayList<Goods>();

session.setAtrribute("carts",carts);

}

Carts.add(entity);

String url =response.encodeRedirectURL("/20111025/list.do");

response.sendRedirect(url);

//list.do

List<Goods>carts = request.getSession().getAttribute("carts");

For(Goodsentity:carts){

Out.println(entity.getName());

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值