您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > java.web大学课件 第六章
JavaWeb开发天津师范大学刘洋第六章Servlet会话(Session)编程会话是什么会话的典型应用Servlet的会话编程会话的底层实现方式演示会话的使用会话是什么请求1请求2请求n…….服务器将唯一的会话ID分配给客户端以跟踪用户会话的典型应用网店中的购物车功能用户权限控制跨Servlet/JSP传递参数已授权用户未授权用户请求请求Servlet会话编程HttpSession对象获取request.getSession(booleancreate)HttpSession接口的主要方法voidsetAttribute(String,Object)ObjectgetAttribute(String)EnumerationgetAttributeNames()voidinvalidate()intgetMaxInactiveInterval()voidremoveAttribute(Stringname)voidsetMaxInactiveInterval(intinterval)Servlet会话编程会话结束浏览器关闭主动关闭会话超时会话的底层实现方式CookiesURL重写会话的底层实现方式URL重写当浏览器不接受Cookie时,仍然可以使用Session在链接后面增加jsessionid参数,例如:/servlet/getUser;jsessionid=431D980051204FC8DC3编程实现out.println(ahref=\);out.println(response.encodeURL(“/servlet/getUser));out.println(\User/a);演示会话的使用HttpSessionsession=request.getSession();Integercounter=(Integer)session.getAttribute(counter);if(counter==null){counter=newInteger(1);}else{counter=newInteger(counter.intValue()+1);}session.setAttribute(counter,counter);session.setMaxInactiveInterval(3600);…out.println(h1使用session的演示/h1);out.println(你已经访问了+counter+次.brbr);演示会话的使用if(session.isNew()){out.println(这是一个新建的Session.brbr);}else{out.println(这不是一个新建的Session.brbr);}out.println(jsessionid:+session.getId()+brbr);…out.println(格式转换以后的LastAccessedTime:+newDate(session.getLastAccessedTime())+brbr);…out.println(格式转换以后的CreationTime:+newDate(session.getCreationTime())+brbr);out.println(MaxInactiveInterval:+session.getMaxInactiveInterval()+秒br);演示会话的使用out.println(br使用Session对象的getAttributeNamesbr);Enumerationenumer=session.getAttributeNames();Stringname=null;while(enumer.hasMoreElements()){name=(String)enumer.nextElement();out.println(Sessionname:+name+br);out.println(Sessionvalue:+session.getAttribute(name)+br);}//session.removeAttribute(counter);//session.invalidate();使用会话实现网络购物车实例流程图displayItems.htmAddShoppingCartServletGetShoppingCartServlet显示错误信息提交添加商品请求添加商品成功添加商品失败CartItempublicclassCartItem{privateStringname;privateintquantity;privatedoubleprice;privateStringid;…publicCartItem(Stringid,Stringname,intquantity,doubleprice){this.id=id;this.name=name;this.quantity=quantity;this.price=price;}……publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicdoublegetPrice(){returnprice;}publicvoidsetPrice(doubleprice){this.price=price;}publicintgetQuantity(){returnquantity;}publicvoidsetQuantity(intquantity){this.quantity=quantity;}publicdoublegetSum(){returnthis.quantity*this.price;}ShoppingCartimportjava.util.ArrayList;importjava.util.Iterator;…publicclassShoppingCart{/***保存所有CartItem对象的容器对象。*/privateArrayListCartItemcart;publicShoppingCart(){cart=newArrayListCartItem();}/***返回包括所有已经购物的商品信息的容器对象。*@return当前的items容器对象*/publicArrayListCartItemgetCart(){returncart;}…/***添加一种商品到购物车中,如果这种商品在购物车中已经存在,*那就修改已有的商品的数量,*反之,构造一个新的CartItem对象添加到items对象中。*@paramitem新增的代表这种商品的对象*/publicvoidaddCartItem(CartItemitem){CartItemoldItem=null;if(item!=null){for(inti=0;icart.size();i++){oldItem=cart.get(i);if(oldItem.getId().equals(item.getId())){oldItem.setQuantity(oldItem.getQuantity()+item.getQuantity());return;}}cart.add(item);}}/***从购物车中,删除商品。*@paramid所删除商品的商品编号*@return删除成功,返回true,反之返回false*/publicbooleanremoveCartItem(Stringid){CartItemitem=null;for(inti=0;icart.size();i++){item=cart.get(i);if(item.getId().equals(id)){cart.remove(i);returntrue;}}returnfalse;}/***计算所购所有商品的总价。*@return商品的总价*/publicdoublegetTotal(){IteratorCartItemit=cart.iterator();doublesum=0.0;CartItemitem=null;while(it.hasNext()){item=it.next();sum=sum+item.getSum();}returnsum;}AddShoppingCartServletHttpSessionsession=request.getSession();ShoppingCartcart=(ShoppingCart)session.getAttribute(shoppingcart);if(cart==null){cart=newShoppingCart();session.setAttribute(shoppingcart,cart);}Stringid=request.getParameter(id);Stringname=request.getParameter(name);Stringquantity=request.getParameter(q);Stringprice=request.getParameter(price);…cart.addCartItem(newCartItem(id,name,Integer.parseInt(quantity),Double.parseDouble(price)));…GetShoppingCartServlet…HttpSessionsession=request.getSession();ShoppingCartcart=(ShoppingCart)session.getAttribute(shoppingcart);…printCartItem(out,cart);…privatevoidprintCartItem(PrintWriterout,ShoppingCartcart){ArrayListCartItemitems=cart.getCart();CartItemitem=null;…for(inti=0;iitems.size();i++){item=items.get(i);out.println(tr);out.println(td+item.getName()+/td);out.println(td+item.getPrice()+元/td);out.println(td+item.getQuantity()+/td);out.println(td+item.getSum()+元/td);out.println(/tr);}…}第六章结束
本文标题:java.web大学课件 第六章
链接地址:https://www.777doc.com/doc-4517111 .html