会话及其会话技术(三)

用session对象实现网购车

浏览器与服务器建立一次请求与对话的过程。

相关知识点

  1. sesssionID :类似于诊疗卡【session基于cookie来实现的】;
  2. sessionID产生过程:
    1. 浏览器访问Web服务器,Servlet容器会创建一个Session对象和ID属性【Session对象=病历档案;ID=医疗卡】
    2. 客户端后续访问服务器,只传递标识号SessionID,服务器就能定位客户端,并用对应的Session对象服务。
    3. 每个session都有唯一一个sessionID
  3. 获取Session对象: getSession()【可运用HttpSession API 的方法】
  4. session 保存用户名应用:
    1.注册登录后,记住用户状态并多页面显示:Session【会话:有多种请求方式】与cookie实现。
    2.
`public void setAttribute(String name,Object); 
 用法:session.setAttribute("userName","张三丰");

键值方式存储数据

`public Object getAttribute(String name);
用法:String userName=(String)session.getAttribute("userName");

名称获取对应值
**注:getAttribute返回的是Object类型,需强制转换为String,才能输出显示

String userName=(String)session.getAttribute("userName");

3.会话清除与过期【Session存储在服务器端,过多会影响性能】
清理机制:
1.程序主动清楚session;

  • 设置会话失败:session.invalidate();
  • 移除会话的一个属性
`public void removeAttribute(String name);
 用法:session.removeAttribute("userName");

2.服务器主动清除上时间无再次请求的session;

  • 设置会话过期时间:
 public void setMaxInactiveInterval(int interval);

#单位:秒

  • 在Web.xml文件中设置失效时间:
 <session-config>
 	<session-timeout>30</session-timeout>
 </session-config>

#单位:分组 对服务器所有session都设置相同时间失效

实现购物车步骤

  • 利用Java been 封装图书信息类【好处:提高代码重复利用率,封装共性;且Java been要与一个无参构造方法】
    • 属性私有化private【类中有一个属性name】

    • 方法公开化 public,提供公共的setter(属性修改器),getter(属性访问器)【至少包含getName() / setName()中一个】

2.创建数据库模拟类【保存所有图书数据库】

  • LinkedHashMap:保持顺序,进入读出顺序一致【双向链表】,且键允许一个空,值允许多个空。

  • HashMap:不一致,且键值不允许为空
    运用book类的book方法创建对象,用put方法存放数据【往键内放值=键为值的索引】
    3.创建Servlet程序:

  • ListBookServlet:所有可购买
    通过遍历可以点击购买时根据所提供的newURL【读取采购列表】,通过sessionID获取图书
    点击购买时,跳转到PurchaseServlet
    String url="/ “”;【重定向】
    【通过web.xml,找到PurchaseServlet(/PurchaseServlet),找到内部映射名,servlet-class:是servlet-name的类的地址】

  • CartServlet:已经购买
    用pur

  • PurchaseServlet:保存购买信息到Session对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值