您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

会话以及会话管理技术(笔记)

来源:网络整理 浏览:241次 时间:2021-02-25
会话以及会话管理技术

1.会话概述:
什么是会话:从打开浏览器,到访问网页,到最终关闭浏览器,整个过程就是一次会话。
会话的特点:包含多个请求,一次完整的会话针对一个用户。
会话管理技术:
第一种: cookie技术,客户端技术。
第二种: session技术, 服务端技术。

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

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

1.2 Cookie常用的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(60*60*24*7),说明cookie能存活7天;        cookie分类:            第一类:会话级别cookie,浏览器关闭,cookie对象就销毁了。            第二类:持久化cookie,通过setMaxAge这个方法来设置。    5.给cookie设置路径,设置域名:    setPath(路径的url), setDomain(域名);    比如:域名就是服务器名称,比如说: www.baidu.com    6.得到cookie: Cookie[] cookies = request.getCookies();1.3显示用户的上次访问时间:    实现步骤:        1.判断是否是首次访问:如果cookie里面有时间,说明就不是第-次访问。        2.如果是第一次访问,创建cookie, 保存时间,把这个cookie回写到浏览器端。        3.如果不是第一次访问,把时间回写到浏览器,记住当前时间,把时间保存cookie里面。
  1. Session对象
    1.1什么是session τ
    session是一种会话管理技术,session用来保存 会话过程中的数据,保存的数据存储到服务器端。
    session原理:基于cookie实现的,更确切的说是基于会话级别的cookie实现的。

    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 ,0bject obj);
    2.取值:
    0bject obj =getAttr ibute(String key);
    3.移除: removeAttribute(String key);

    总结域对象: request域对象 session域对象 servletContext域对象,作用范围以次变大。            request域对象:作用范围一次请求,通常和转发操作配合使用            session域对象:作用范围一次会话,通常和重定向操作配合使用            servletContext域对象:作用范围整个项目,和重定向、转发操作都可以配合使用。

    1.3 Session超时管理
    session对象是由生命时长,它的默认存活时间是30分钟。
    具体配置找tomcat软件的conf下的web.xml文件,如下:
    <session-config>
    <session-timeout>30</session-timeout>
    </session-config>
    立即销毁session对象: invalidate();

    1.4实现购物车:
    1.创建Book封装图书信息: Book
    2.创建BookDB,模拟数据库,里面保存图书
    3.提供图书的购买页面: ListBookServlet
    4.添加购物车: PurcharseServlet
    5.回显购物车图书信息: CartServlet

    如果浏览器禁用了cookie,咱们的购物车功能就不能实现了,因为session是基 于cookie实现的。解决方案:提示用户开启cookie.

    1.5实现用户登录
    1.创建一个User类,封装用户名和密码
    2.提供一一个首页面,欢迎用户登录: IndexServlet, 提供一个退出的链接 。
    3.提供一个登录的servelt:处理登录请求
    4.提供一个退出的servlet:处理退出首页面的请求。
    登录里面加入验证码:
    得到验证码:参考图片

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com