chaoz的杂货铺

生命有息、学无止境、折腾不止

0%

java-web-会话及其会话技术

1.会话概述:

  • 什么是会话:从打开浏览器,到访问网页,到最终关闭浏览器,整个过程就是一次会话。
  • 会话的特点:包含多个请求,一次完整的会话针对一个用户。

    会话管理技术:

    第一种:cookie技术,客户端技术。第二种:session技术,服务端技术。
    购物车案列:买完商品后,加入购入车,买的商品存到什么对象比较合适?
  • 1.使用request域对象保存商品信息:
    结论:使用request保存商品信息不可以,因为每次发送请求,都会产生一个新的请求对象。
  • 2.使用ServletContext域对象保存商品信息结论:使用Servletcontext对象保存商品信息,可以,但是不合理。
    所以在开发中,保存会话过程中产生的数据,采用会话管理技术,也就是使用cookie和session技术来保存会话过程产生的数据。

    2.Cookie对象

    1.1什么是cookie:

    Cookie是一种会话管理技术,它是用来保存会话过程中产生的数据,然后在浏览器和服务器交互时,会使用cookie里面保存的数据
    注意:首次访问服务器,浏览器不会携带cookie到服务端。

    1.2Cookie常用的api

  • 1.得到cookie对象:Cookie cookie=new Cookie(String key,String value);
  • 2.回写(响应)cookie到浏览器端:response.addCookie(cookie);
  • 3.得到cookie的名称:String key=cookie.getName(),得到cookie的值:String value=cookie.getValue();
  • 4.给cookie设置生命时长:setMaxAge(int sr);比如:cookie.setMaxAge(606024*7),说明cookie能存活7天;cookie分类:
    第一类:会话级别cookie,浏览器关闭,cookie对象就销毁了。第二类:持久化cookie,通过setMaxAge这个方法来设置。
  • 5.给cookie设置路径,设置域名:
    setPath(路径的ur1),setDomain(域名);I比如:域名就是服务器名称,比如说:www.baidu.com
  • 6.得到cookie:Cookie[]cookies=request.getCookies()

3.Session对象

1.1什么是session

session是一种会话管理技术,session用来保存会话过程中的数据,保存的数据存储到服务器端。
session原理:基于cookie实现的,更确切的说是基于会话级别的cookie实现的。

session

1.2 HttpSession API session常用方法:

  • 1.得到session的id(JESSIONID对应的值):getId();
  • 2.设置session的生命时长:setMaxInactiveInterval(int interval)
  • 3.销毁session:invalidate();得到session:HttpSession session=getSession();session域对象:作用范围一次完整的会话(包含多个请求)
  • 1.存值:setAttribute(String key,Object obj);>>>2.取值:Object obj=getAttribute(String key);
  • 3.移除:|removeAttribute(String key)f总结域对象:request域对象 session域对象 servletcontext域对象,作用范围以次变大。

1.3 Session超时管理

session对象是由生命时长,它的默认存活时间是30分钟。
具体配置找tomcat软件的conf下的web.xml文件
立即销毁session对象:invalidate();

喜欢这篇文章?打赏一下作者吧!

欢迎关注我的其它发布渠道